文章
为什么我把博客从 Hugo 换到了 Astro
不是因为 Hugo 不好,而是我的内容从「一堆文章」变成了四类结构完全不同的东西。
这篇是示例文章,用来展示文章页的排版、分类、以及搜索索引抓取的范围。
换栈的真实原因
Hugo 完全能跑一个博客,而且跑得比 Astro 快得多。我换的原因是内容结构变了:
| 内容类型 | 字段 | Hugo 的处境 |
|---|---|---|
| 经验文章 | 分类、标签、摘要 | 很合适 |
| 更新公告 | 项目、版本、类型 | 能写,但没法按项目聚合 |
| 连载小说 | 卷、章号、状态 | series 能用,但要自己写顺序逻辑 |
| 游戏展示 | 状态、技术栈、试玩地址 | 没有对应概念 |
四套字段意味着四套模板逻辑。Hugo 的 frontmatter 没有 schema,字段写错了不会报错,只会安静地少一个入口。
这个站真正吃的亏
不是性能,是错误的可见性。
# 本来想写 categories
category: ['经验']
在 Hugo 里,这一行会被忽略,文章正常生成,然后它从分类页上彻底消失。等你想起来找它,已经是三个月后了。
Astro 的 Content Collections 会在构建时直接告诉你:
✗ posts/xxx.md: categories: Required
取舍
我确实失去了一些东西:
- 构建从 0.3 秒变成了十几秒
- 依赖从 1 个二进制变成了
node_modules - 主题从 400 个变成了「自己写」
但换来了四类内容各自清晰的模型,以及一套会在出错时拦住我的闸门。对这个规模的站点,这笔交易是划算的。
如果你只是写文章,Hugo 仍然是更好的选择。别为了「先进」付维护成本。