时间过得真快,转眼我已经工作近两年了(我现在做的事情离代码很远),再次打开博客一看,上一篇文章还停在 2023 年 5 月的《xv6 学习记录》。
最近重新动了写博客的念头,索性先把房子翻新一遍:把博客从 zine 迁移到了 Zola。这篇就当作迁移记录,也算是重新开张的第一篇。
为什么离开 zine
zine 本身没什么不好。当年选它就是因为它是 Rust 写的静态站点生成器,一本“杂志”(zine)的概念也挺有意思,我把自己三年的文章按年份装进 s1、s2、s3 三季期刊里,很有仪式感。
但问题是:
- 项目停止维护了。一个静态站点生成器停止维护,意味着构建环境早晚会出问题;
- 三年过去,当初的很多链接结构(
/s3/5/这种)已经成了历史包袱; - zine 也有一些 bug,懒得修了。
说白了:现在已经是 2026 年,是时候换一栋还在正常维护的房子了。
为什么是 Zola
看了一圈,最后还是选了 Zola,理由很朴素:
- 还是 Rust。单一个二进制文件,不用装 Node、不用管 npm 依赖地狱;
- 模板就是逻辑。Tera 模板写起来像 Django/Jinja2,站点的所有行为都能用模板说清楚,没有黑盒;
- 功能刚好够用。标签(Taxonomies)、RSS、代码高亮(Syntect,构建期内联着色,不需要任何前端高亮库)全都内置;
- 部署简单。GitHub Actions 一把梭,自动构建发布。
某种意义上这也是一种路径依赖:从 zine 到 Zola,换来换去,还是不想离开 Rust 生态。
新博客有什么不一样
- 全文搜索:构建期生成一个 JSON 索引,前端原生 JS 做匹配,中文友好、零依赖;
- 标签 + 归档:文章按标签分类,归档页按年月分组,翻旧文方便多了;
- 昼夜双主题:默认浅色,手动切换深色,刷新不闪烁;
- 代码高亮零 JS:构建期 Syntect 直接生成带颜色的 HTML,打开就是高亮好的。
接下来
三年没写,不是没有东西可写,是懒。
这次就不立什么 flag 了。反正 2022 年总结里立的那些,执行情况大家也看到了(笑)。
写下去就行。