项目复盘 / 进行中

个人网站搭建

2026.09 独立开发 更新于 2026.09.12
Astro / TypeScript / Pagefind / Markdown 仓库

背景与目标

想要一个自己的角落:对外是一张名片,对内是第二大脑。明确三件事:

  1. 个人名片:别人搜到我时,10 秒内知道我是谁、会什么
  2. 知识存储:笔记用纯 Markdown,数据握在自己手里
  3. 项目复盘:每个项目做完都有沉淀,坑不重复踩

技术选型

候选结论
Astro内容优先、构建产物是纯静态、集合 schema 类型安全,最终选择
VitePress文档体验极好,但”个人名片 + 项目卡片”需要较多魔改
Hugo快,但 Go 模板对我的维护成本偏高
Next.js能力过剩,静态内容站用不上 SSR

搜索选了 Pagefind:构建时生成索引,运行时零后端,对中文按字符切分,效果够用。

实现要点

  • 知识库侧边栏由目录结构自动生成:src/content/notes/<分类>/xxx.md,分类就是文件夹名
  • 全站信息集中在 src/config.ts,改一处生效全站
  • 全站星空深色主题:内容优先的阅读对比度,仅保留琥珀点缀色

踩坑记录

  • frontmatter 的 date 忘了写 z.coerce.date(),字符串和 Date 混着排序直接乱掉
  • 中文文件名生成的路由是 URL 编码的,链接要整体用模板字符串拼接,不要手动 encode

经验沉淀

  • 个人站点最大的成本是”维护意愿”:写作路径必须短到”丢一个 md 文件进文件夹”
  • 先跑通最小闭环(写 → 构建 → 部署),再谈样式和功能