引言

使用Hexo搭建静态博客

本人的需求为:

  • Blog网站,为静态页面

  • 可以搭建在服务器上(或者,GithubPages)

  • 可以完全读取Markdown格式的文件,方便备份与查看

WordPress虽然功能强大,方便用宝塔面板一键部署,但它终究是富文本编辑器,读取markdown文件还需要引入新的非官方插件,并且有语法严格、导入图片难等问题,而且其导出格式无法被其它应用读取,遂使用了一款可以以markdown文件为默认格式的Hexo框架。

前期准备

  1. 一台远程Cent OS云服务器,可以用过ssh连接,并部署好宝塔面板

    本例使用阿里云服务器 系统为 Linux CentOS 7.9 64位

  2. 开发机内装有 Node.js 环境以使用 npm 包管理器,查看是否已安装可以在控制台输入

    npm -version

    本例中 npm 版本为9.5.0

  3. 本地的Markdown笔记软件,如Typora(需要购买激活)或 VS Code,并设置好插入新图片在.\{filename}目录中。

  4. 合适的截图工具,Quicker或QQ均可,可以将图片通过剪贴板的方式粘贴到编辑器中。

  5. 开发机内装有git环境

搭建本地网站

配置Hexo环境并应用新主题

我们的目标是:配置本地Hexo环境,并在本地建立博客网站。

以下命令行以 Windows 11 的 Powershell 为例。

  1. 首先创建一个新目录(本例为D:\blogs),然后搭建并初始化hexo环境,这里需要连接GitHub,注意网络通畅性:

    npm install hexo-cli -g
    hexo init blog
  2. 更换主题为 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
  3. 测试能否正常运行

    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,就可以看到一个初始化成功的页面。

上传博客文件

  1. 首先,重新hexo cleanhexo g二连

  2. 然后使用宝塔面板等ftp工具,将public 文件夹下所有的文件转移到www/wwwroot/${站点}

  3. 刷新浏览器界面,可以看到一个搭建好的博客!