文章

为什么我把博客从 Hugo 换到了 Astro

不是因为 Hugo 不好,而是我的内容从「一堆文章」变成了四类结构完全不同的东西。

约 2 分钟经验工具

这篇是示例文章,用来展示文章页的排版、分类、以及搜索索引抓取的范围。

换栈的真实原因

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 仍然是更好的选择。别为了「先进」付维护成本。