---
title: 为什么自己搭
desc: 旧站是 Trilium + Next.js，这次换成纯静态的 Astro——记一下选型的考虑。
date: "2026-10-29"
order: 1
tags: [建站, 静态站点]
---

## 从旧站说起

旧博客（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/` 的目录树就是站点树，
也是构建产物的镜像——文件放哪，地址就在哪。

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