项目复盘 / 进行中
个人网站搭建
Astro / TypeScript / Pagefind / Markdown 仓库
背景与目标
想要一个自己的角落:对外是一张名片,对内是第二大脑。明确三件事:
- 个人名片:别人搜到我时,10 秒内知道我是谁、会什么
- 知识存储:笔记用纯 Markdown,数据握在自己手里
- 项目复盘:每个项目做完都有沉淀,坑不重复踩
技术选型
| 候选 | 结论 |
|---|---|
| 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 文件进文件夹”
- 先跑通最小闭环(写 → 构建 → 部署),再谈样式和功能