科技船长 · blog

个人知识管理系统的静态站点实践

533 words 2 min read #Knowledge Management#Organization#Markdown

个人知识管理通常始于零散的文件和笔记。将其迁移到静态站点上,可以获得版本控制、全文搜索和跨设备同步的能力。

目录结构设计

内容按主题分类存储在 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 定义字段类型:

src/content.config.ts
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 = true
shortcut = "mod+k"
placeholder = "Search notes..."
maxResults = 6

搜索结果会高亮关键词,并显示每篇文章的标题、摘要和发布日期。

RSS Feed 与内容分发

Astro 提供 RSS 插件自动为博客生成 feed:

astro.config.mjs
export default {
integrations: [
rss({
site: 'https://yourdomain.com/',
output: '/rss.xml',
}),
],
};

这允许读者通过 Feedly、Inoreader 等工具订阅你的内容更新。

Sitemap 自动生成

站点地图帮助搜索引擎发现新页面:

astro.config.mjs
export default {
integrations: [
sitemap({
filter(page) {
return !page.includes('/draft');
},
}),
],
};

内容复用策略

同一主题的内容可以出现在多个栏目中:

  • 博客 - 深度解析,适合教程和详细说明
  • Vibe - 碎片思考,适合简短笔记和即时记录
  • 项目文档 - 技术实现细节,适合代码相关说明

这种分层方式让读者可以选择他们想要的内容粒度。

迁移建议

如果你从其他平台迁移内容:

  1. 将旧文章转换为 Markdown 格式
  2. 保留原始发布日期作为 date frontmatter 字段
  3. 使用 Pagefind 重新索引所有历史内容
  4. 设置 301 重定向保持外部链接有效

Comments

Quiet notes for this article.