个人知识管理通常始于零散的文件和笔记。将其迁移到静态站点上,可以获得版本控制、全文搜索和跨设备同步的能力。
目录结构设计
内容按主题分类存储在 src/content/ 下:
src/content/├── blog/ # 长文、教程、模块手册│ ├── post-1.md│ └── post-2.mdx├── projects/ # 项目文档和作品说明│ ├── index.mdx│ └── project-name/├── vibe/ # 短记录和生活碎片│ ├── 2026-05-28-morning.md│ └── quick-note.md└── about.mdx # 关于页面每个目录对应一个路由,索引文件 index.mdx 用于介绍该栏目。
分类与标签系统
Astro Content Collection 支持通过 schema 定义字段类型:
export const blog = defineCollection({ type: 'content', schema: z.object({ tags: z.array(z.string()), series: z.string().optional(), draft: z.boolean().default(false), }),});标签用于文章归档,系列(series)适合关联主题相关的多篇内容。
全文搜索配置
Pagefind 为所有 Markdown 文件生成索引。在 site.toml 中调整搜索行为:
[config.search]enabled = trueshortcut = "mod+k"placeholder = "Search notes..."maxResults = 6搜索结果会高亮关键词,并显示每篇文章的标题、摘要和发布日期。
RSS Feed 与内容分发
Astro 提供 RSS 插件自动为博客生成 feed:
export default { integrations: [ rss({ site: 'https://yourdomain.com/', output: '/rss.xml', }), ],};这允许读者通过 Feedly、Inoreader 等工具订阅你的内容更新。
Sitemap 自动生成
站点地图帮助搜索引擎发现新页面:
export default { integrations: [ sitemap({ filter(page) { return !page.includes('/draft'); }, }), ],};内容复用策略
同一主题的内容可以出现在多个栏目中:
- 博客 - 深度解析,适合教程和详细说明
- Vibe - 碎片思考,适合简短笔记和即时记录
- 项目文档 - 技术实现细节,适合代码相关说明
这种分层方式让读者可以选择他们想要的内容粒度。
迁移建议
如果你从其他平台迁移内容:
- 将旧文章转换为 Markdown 格式
- 保留原始发布日期作为
datefrontmatter 字段 - 使用 Pagefind 重新索引所有历史内容
- 设置 301 重定向保持外部链接有效
Comments
Quiet notes for this article.