前言

回想起当初技术力不足时搭建博客的尝试,相比每次手动修改页面 Html 内容和相应的超链接,这次采用 Hexo 框架并采用 GitHub Action 自动构建的确是极大的进步。在搭建过程中大大小小的“坑”和解决方案,在此罗列。

搭建过程

准备

在详细比较了 Hexo,Hugo,Jekyll 后,为了追求性能和易用性的平衡,选择了 Hexo 作为最终的方案。不仅是性能高于 Jekyll 的原因,更是因为本地已经具有了 Node.JS 的环境。在考虑之后,放弃了本地上传文件,决定使用 GitHub Action 自动构建。并选择 Anatolo 作为主题。

本地配置

Hexo 本体的配置相对简单,不多赘述。但由于 Anatolo 和其上游主题的缘故,在采用 /blog/ 的子路径搭建博客时,生成的页面存在许多链接错误,需要修改配置文件。

logo_dir: /images/logo@2x.webp

rss: /atom.xml

以上是无需添加 /blog/ 前缀的配置内容,诸如 favicon 等配置均需添加 /blog/ 前缀。

此外,主题默认使用 zh-cn 作为语言代码,并非 zh-Hans 语言代码,需要注意。

GitHub Action 部署

由于 GitHub 的环境更新,官方脚本将会提示警告,修正版本如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
pages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
# If your repository depends on submodule, please see: https://github.com/actions/checkout
submodules: recursive
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.OS }}-npm-cache
restore-keys: |
${{ runner.OS }}-npm-cache
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public

此外,还需注意修改主题目录的 .gitignore 并且删除对 _config.yml 的忽略,或者使用代替配置文件的方法,否则上传到 GitHub 后自动构建无法正常进行。

评论插件

主题内置 GitTalk 的支持,但由于一些原因,此插件在部分地区无法正常使用,暂无解决方案。

后记

经过上述步骤并结合官方文档,一切已经可以正常运行,后续其它插件的配置均有完备的说明,故不再叙述。期望以上的“坑”可以被你所避开,感谢你的阅读。