系列 · 建站记

为什么自己搭

2026-10-29约 1 分钟建站静态站点

从旧站说起

旧博客(blog.gcbo.fun)是 2025 年年中搭的:Trilium 管内容,Next.js 负责呈现, 中间靠 API 缝合。用着没什么大毛病,但它终究是个动态服务——要跑 Node、要管 进程守护,Trilium 那头的笔记和页面之间也永远隔着一层转换逻辑。

这次想换个活法:内容就是文件,构建完就是 HTML,扔到任意静态托管上就完事。 没有服务要挂,没有依赖要追,过几年回来打开还能用。

为什么选 Astro

选型时最后定了 Astro,理由很实际:

  • 内容就是文件。一篇 .mdx 一篇文章,git 管着,任意编辑器能写;
  • 默认零运行时,产物是纯 HTML,页面不背框架 JS;
  • 页面怎么写,框架不管。这一点最合口味——下一篇会讲,我只给这个站 立了三条规矩。

至于为什么不是 Hugo、Hexo 这类纯生成器:我想在文章里直接用组件,比如开篇 那篇 hello 里的章节标题就是正文里 import 来的 SectionHead。mdx 的灵活度 对我是刚需。为什么不是 Next.js SSG:旧站就是 Next.js,太自由了,自由到每个 页面都可以有自己的写法,写到后面自己都记不住哪套是哪套。

只留一条规矩

新站只保留一条强约束:路径决定 URL。src/content/ 的目录树就是站点树, 也是构建产物的镜像——文件放哪,地址就在哪。

其余全部自由。规矩少一点,写得下去的可能性就大一点。