tldr

其实我一直在,只是没更新而已
如你所见,我从底层翻新了博客,并且图片都消失了
具体内容我再鸽一会,没有时间写啊~

正文

大部分静态博客的站长都喜欢使用图床,有时候访问速度会更快,在文章中引用也只需要写上链接即可。而我网站的所有第一方图片都与源码存放在一起,出于某些微妙的保守心理及强迫倾向,我不想在 Git 中管理过多二进制文件,由于 Git 的特性,二进制都以全量替换的方式存在于版本库里,这样就会导致储存库不断膨胀。最重要的一点是,之前为每篇文章找封面、做封面,其实是相当耗费时间的一件事,而且最后出来的封面也很丑。我还在纠结,到底要不要做这些了,明明之前想换 Hugo 却放弃了,部分原因是找到的主题偏极简无法添加封面。倒不是说我对这些失去兴趣了,只是不想让不太重要的事情花费时间太多。总之一晃又是两个月过去了,还是先不添加图片,暂且把文字内容更新一下

在之前的那篇文章中我说过可能不会再升级了,但这次却是完全重建,遵循上次的经验,吸取上次的教训。这回我从一开始就希望以更好的方式重建这个网站

搭建框架

1
2
3
4
5
6
# 在某个空目录里
$ npm install hexo # 局部安装 Hexo
$ mkdir blog
$ cd blog
$ hexo init # 这样框架就搭建好了
# 此时上层目录的 Hexo 环境已经不需要了,这么做避免了全局安装

安装依赖

1
2
3
$ npm install hexo --save  # 再次执行是为了更新 package.json
# 还有一些依赖该安装或更新的,比如 hexo-filter-nofollow,同上
$ npm install hexo-theme-butterfly # 这次我选择用 npm 管理主题,好处是便于 dependabot 自动维护依赖

版本管理

使用 Git

1
2
3
4
$ git init  # 我在安装 Git 的时候就选择了初始默认分支名为 main
$ git commit -m "first commit"
$ git remote add origin https://github.com/user/repo.git
$ git push -u origin main # 加上 -u 参数追踪上游,之后只要 git push 就行

提交签名

每一个 commit 都用 PGP 签名,确保 GitHub 上出现 Verified 标志(尝试成功之后就放弃了,本来就自己一个人,这么做纯粹给自己找麻烦)

1
2
3
$ git config --global user.signingkey 4AEE18F83AFDEB23  # 在 Git 中设置 GPG 签名密钥(提交时用的)
$ git commit -S -m "commit message" # 提交时签名
$ git config --global commit.gpgsign true # 全局设定后不用每次加 -S 参数

参考
GitHub Docs - Generating a new GPG key

持续集成

这次最大的改变,以及我很久没有更新的主要原因:网站缺少持续集成、持续部署的环节。这一直令我很苦恼,从去年搭建好网站我就知道 GitHub Actions 很好用,但一直不太会写配置,这次终于把这件事干了,以后本地写好文章,预览没有问题,推上去,等待几分钟便可以在网页看到最新版的内容,这实在是懒人的福音,体验甚至可以接近动态博客(如果你直接在 GitHub 网页上编辑,那就是动态博客了)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
name: build
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: '16'
- run: npm ci
- run: npx hexo generate
- name: Deploy
run: |
...
# 具体部署方式需要自己决定