
使用Hexo搭建静态博客
引言
使用Hexo搭建静态博客
本人的需求为:
Blog网站,为静态页面
可以搭建在服务器上(或者,GithubPages)
可以完全读取Markdown格式的文件,方便备份与查看
WordPress虽然功能强大,方便用宝塔面板一键部署,但它终究是富文本编辑器,读取markdown文件还需要引入新的非官方插件,并且有语法严格、导入图片难等问题,而且其导出格式无法被其它应用读取,遂使用了一款可以以markdown文件为默认格式的Hexo框架。
前期准备
一台远程Cent OS云服务器,可以用过ssh连接,并部署好宝塔面板。
本例使用阿里云服务器 系统为 Linux CentOS 7.9 64位
开发机内装有 Node.js 环境以使用 npm 包管理器,查看是否已安装可以在控制台输入
npm -version
本例中 npm 版本为9.5.0
本地的Markdown笔记软件,如Typora(需要购买激活)或 VS Code,并设置好插入新图片在
.\{filename}
目录中。合适的截图工具,Quicker或QQ均可,可以将图片通过剪贴板的方式粘贴到编辑器中。
开发机内装有git环境。
搭建本地网站
配置Hexo环境并应用新主题
我们的目标是:配置本地Hexo环境,并在本地建立博客网站。
以下命令行以 Windows 11 的 Powershell 为例。
首先创建一个新目录(本例为
D:\blogs
),然后搭建并初始化hexo环境,这里需要连接GitHub,注意网络通畅性:npm install hexo-cli -g hexo init blog
更换主题为 Snail 主题(不同主题方法可能不同,可以参照主题的官方文档,如果用bash也会稍有不同)
这里我们删除了原有的_config.yml 文件,在倒数第二行替换了一个新的_config.yml同名文件,一些配置有改动
cd blog rmdir .\source\ rmdir .\scaffolds\ rm .\_config.yml rm .\package.json git clone https://github.com/dusign/hexo-theme-snail.git mv ./hexo-theme-snail/snail ./themes mv ./hexo-theme-snail/* ./ npm install
该主题需要额外配置
hexo-wordcount
组件(否则会大篇幅报黄),针对低版本Node.js,可执行命令:npm install hexo-wordcount@2 --save
测试能否正常运行
hexo g
如果能够正常生成不报错,下一步,启动!
hexo s
INFO Start processing INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.
访问
http://localhost:4000
,出现以下页面并无报错信息即成功:
调整Hexo配置
新建文件
如果我们想新建一篇笔记,只需向控制台输入hexo new
命令:
PS D:\blogs\blog> hexo new "blog-building"
那么hexo会告诉我们
INFO Created: D:\blogs\blog\source\_posts\2024-01-07-blog-building.md
尽量不要用中文进行命名,用驼峰或者xxx-xxx均可,文章标题可以在最上部改。
我们用Typora打开这个md文件,就可以编辑了(其实,就是这篇文档)。
编辑完成后重新hexo g && hexo s
,再刷新浏览器页面,就可以查看我们的文档了。
解决markdown文档图片加载问题
然而我们点进去的时候,发现图片是无法加载的:
这是因为 Hexo 在加载文档的时候有自己的naotan逻辑,它不支持markdown自带的读取图片格式,我们需要引入一些插件来解决这个问题,原理可以看这个知乎链接和这个CSDN链接:
首先要对配置文件_config.yml进行配置:将post_asset_folder由false改为true。这步必须做。
然后在控制台输入:
npm install https://github.com/CodeFalling/hexo-asset-image --save
现在应该可以正常查看内容了。
个性化界面
打开根目录的全局_config.yml
文件,开始个性定制。
部署到服务器网站
这里提供一种方便入门操作的方法(命令行界面):
宝塔面板部署站点
打开网站->PHP站点->添加站点,然后输入相关信息:
然后在浏览器输入域名/ip,就可以看到一个初始化成功的页面。
上传博客文件
首先,重新
hexo clean
、hexo g
二连然后使用宝塔面板等ftp工具,将
public
文件夹下所有的文件转移到www/wwwroot/${站点}
中刷新浏览器界面,可以看到一个搭建好的博客!