15分钟,大概介绍下新的博客引擎和主题。
博客换了新引擎 zola (getzola/zola),主要看中构建速度非常快,对比无缓存的 hugo 能达到几十倍的速度。
新主题是 anemone ,但是原主题太粗糙了我自己进行了很多魔改。
- 加入 categories 这个 taxonomy 模板
- 加入 katex 支持
- 加入 mermaid 支持
- 加入 giscus 支持
- 加入自定义 footer 文本
- 调整 header 导航条
- 调整 tags 页的样式,tag 的字体大小和文章数关联
- 一些 bug 修复
原来的 hugo 文章 frontmatter 里有很多字段和 zola 是不匹配的,特别是 categories/tags/date/lastmod 这几个我用到了的。
处理方法是写了一个 python 脚本,读取 frontmatter 内容并解析,然后调整成 zola 的格式。
说道为什么突然开始看构建性能了,其实一直是有关注的,特别是我把博客构建迁移到自己的 vps 上之后,使用 drone ci 进行自动构建和发布。
在调试 drone ci 的时候就注意到了 hugo 的 cpu 和内存使用特别高,但我本机跑就快的一批,但一直没时间去优化。呃,也不是没时间,就是懒得动。
这两天忽然想起来博客构建慢的一批,于是就考虑迁移 drone 到家里闲置的树莓派上,树莓派不能白用电不干活对吧。
结果迁移上去后发现,hugo 构建依然要分配至少 3 个核心,才能在 4 分钟构建完不超时,比在腾讯云的 2C2G 轻量应用服务器上的表现还垃圾。
我这才想起来去查了一下树莓派 4b 的性能,对比居然被 intel 赛扬 j4125 这颗工控机上常见的低端 u 吊打了,n100 干脆能达到树莓派 4b 的 4 倍性能...
哭了。
擦擦眼泪继续折腾。
试了下在 r7 5700x + 固态盘上构建,无缓存差不多要 20 多秒,基本达到不可接受的程度,我文章都才 100 多篇,这点内容就要 20 多秒了我没法接受。于是又捡起了以前玩过一次的 zola ,在 5700x 平台测试是 build 要 800ms 不到,树莓派 4b 平台是 7s 的 build 时间。
考虑到自己建的 gitea 服务器一是没什么内容,二是受限于服务器的下行带宽,开始 clone 的时候基本就访问网页都困难了。于是又把 drone 切换到 gitee 环境,clone 时间从 2 分钟降低到 15s 内。
至此基本就达到预期了,个人体验是非常满意,但老文章有些细节,主要是 katex 公式渲染是有问题的,需要之后处理。
还有个坑是 zola build 的时候会显示未知的语法 mermaid,这个不影响 mermaid.js 渲染。