Blog复活

今天花了半天的时间重新又把 Blog 做了出来

写在前面

虽然已经很久没有写过 Blog 了,但是确实还是想要有一个时不时能写点东西的地方。所以把 Blog 重新捡起来的想法很早就有了,只是一直没有什么动力去做而已。今天突然有动力了就今天把事情做出来了。

旧 Blog 的处理

全部废弃

以前用的 Hexo 和各种配置都是四五年前搭出来的了,很多细节早就忘了,也不是很想处理这种半吊子的情况。所以就直接放弃以前所有的东西,重新选择新的东西,构建新的流程。

以前写的东西在本地还是会给自己留一份的,但是不会再放到新的 Blog 上了。毕竟最近的一篇都是 3 年前的事了。

为什么选择 Hugo 和 FixIt

首先还是想用静态 Blog 系统,不想再搞 WordPress 或者是 Ghost 之类的东西了,搞起来麻烦,而且后序的工作流程也跟我现在的习惯接不上。

不想搞 Hexo 是因为怕跟以前的配置出冲突,然后出现犄角旮旯的 Bug 一找找一天。虽然 Hexo 有两个挺吸引我的主题 nexmoestellar

不用 Jekyll 是因为搜了一圈它的主题,感觉都没什么很好看的。

最后就是 Hugo 了。FixIt 算是一眼看对上眼了,而且这一脉的主题里它的功能算是最多的了。

理想的工作流

用 Obsidian 写作,之后把文章扔进 VSCode 里调整 Front-Matter。本地测试通过后就静态生成,然后 push 到 GitHub 上,再用 GitHub Action 把 public 文件夹通过 rsync 同步到自己的 VPS 上。

这样之后可以通过多端同步的 Obsidian 写作,使用 GitHub 当中转也可以多端本地生成。

安装与调整

安装流程没什么好说的,照着 FixIt 的教程做就行。

就是在安装 Dart Saas 的时候顺便试了一下 WingetUI,发现真的挺好使的。

FixIt 用的是 Git 子模块的方式安装的,这到后面给自己挖了一个暗坑。

配置也没什么好说的,就用 FixIt 的 toml 文件覆盖默认的,然后看着里面的配置按自己的需求改就行。

这里面有很多地方是配置网站图标的地方,本来想 AI 生成一个的,但是又懒得搞,就从 GBC 里 486 登场的那一集里截了一张图拿来用了。

本来一开始还想顺便把打赏打开,毕竟就传两张二维码的事情,但想了一下还是算了,毕竟自己也产不出特别有营养的内容。

评论系统是看了好几个,但是都嫌麻烦就索性不搞了。

几个解决的痛点

本地图片

由于懒得用图床,而且也想保证图片不炸,所以本地图片是我倾向的方案。

Hugo 里可以在每次新建文章的时候,不直接建 md 文件,而是建立一个文件夹,然后在文件内建立一个index.md作为文档内容。这样做的好处就是,我可以直接把图片复制到这个文件夹下面就行了,也不用管路径什么的,后面生成的时候就可以带着本地的图片了。

友链

虽然最后一个友链也没配

从 FixIt 的archetypes文件夹里把friends.md扔到自己的content\friends\下重命名为index.md后,就可以通过在data/friends.yml里添加修改数据来生成如下图的友链卡片了。

alt text

生成速度

Hugo 的生成速度确实是比 Hexo 要快的,我这边基本每次生成都在 100ms 以内。

部署

本地的 Git 初始化以后,push 到一个 private 的 GitHub 仓库。

在自己的 VPS 上配置一个专门的用户用于 GitHub Action 把数据同步过来。生成 SSH 密钥,用 GitHub Secret 的方式保存在 GitHub 里。其他的地址和端口什么的也都用这种方式保存。

具体的 GitHub Action 的写法,参考了这篇文章。这里面用的东西都比较老了,记得更新一下版本号。然后把它用 GitHub Action 生成 public 的部分去掉之后就满足我的需求了。

之后把 VPS 的 nginx 的配置改一下,本地静态生成后 push 上来以后,就可以看见新的 Blog 了。

我这里还出了一个额外的问题,因为我配置完 nginx 后的 push 的版本,是我从 GitHub 上 clone 下来测试多端生成的版本。一开始生成的时候,生成的页面不全。后面发现是自己忘了执行git submodule init初始化 Git 子模块和git submodule update更新获取 Git 子模块,导致本地没有主题的文件,进而生成的页面不全。

结尾

整体来讲虽然陆续碰到一下小问题,但是整个流程还是挺顺利的,基本一下午就部署出来了。

虽然 GitHub Action 在非公开的仓库上每月只有 2000 分钟的执行时间,但对我来讲完全够用了,毕竟我不可能每个月 push 2000 次吧?

希望这次能多写一些东西吧。

0%