这个站点本身就是个例子。让我说说为什么选 Zola。
个人站的本质矛盾
我对个人站的诉求其实有一组互相拉扯的需求:
- 写得舒服:用 Markdown,本地编辑器,不要登录任何 Web 后台
- 样子长得对:自定义到我满意为止,不被模板绑架
- 跑得快:访客打开是瞬时的
- 维护成本低:我不想为了一个博客天天升级运行时
- 东西是我的:内容、样式、域名都在我能控制的地方
托管服务(Notion、Substack、Medium)能满足 1,但 2/5 妥协; 传统 CMS(WordPress、Ghost)能满足 1/2,但 4 灾难(每次升级都是事故); 自建后端能满足 2/5,但 4 永远在你头顶悬着剑。
静态站点生成器是这组矛盾的最少违约解: 内容是文本,构建是离线,部署是丢一堆 HTML 到任意 CDN —— 然后忘了它。
为什么是 Zola
Hugo、Jekyll、Astro、Eleventy 都能干这件事。我选 Zola 的理由:
1. 单一二进制,无运行时依赖
Zola 用 Rust 写,编译成一个静态可执行文件。
不需要装 Node、Ruby、Python,不需要 npm install 等十分钟。
到一台新机器,下载一个 13MB 的文件,就能开始用。
这件事在五年后会变得越来越重要 —— 因为五年后我已经忘了任何关于 Node 版本管理的细节。
2. 构建快得不需要琢磨
我测过:千篇文章规模的站点,Zola 全量构建是秒级的。
这意味着 zola serve 期间的修改 → 看到效果,是亚秒级反馈。
反馈循环短,是工作流是否真的舒服的核心指标。
3. 内置了我会用的所有东西
- Sass 编译
- 语法高亮(Syntect,内置 Solarized 等好几个主题)
- 全文搜索索引
- 多语言
- Taxonomies(标签、分类)
- RSS / Atom feed
这些 Hugo 也有,但 Zola 的 API 表面更小 —— 文档一晚上能读完。
4. 没有插件系统
这听起来像缺点,其实是优点。 没有插件系统意味着没有插件腐烂: 不会出现「这个站点能不能跑,取决于五年前某个开发者还有没有在维护他的 GitHub repo」。 所有功能都是 Zola 自己保证的,由 Zola 自己升级。
对个人站这种「一次搭好用十年」的项目,这是最重要的属性。
不推荐 Zola 的情况
老老实实说:
- 你需要复杂的交互组件(购物车、评论、实时数据) —— 用 Astro / Next.js
- 你已经在 Hugo 生态里有大量主题资源 —— 不必换
- 你只是想最快开始写 —— 用 Notion 或 Substack,等真的不够用了再说
但如果你的目标是: 搭一个长得像你自己、跑得飞快、十年后还能不动一行代码地继续用的个人站, Zola 是我目前找到的最好答案。
这个站点就是这样搭起来的。 源代码会在打磨得差不多之后扔到 GitHub,欢迎拿去改。