从零搭建个人知识站点:技术选型与完整部署指南#
需求分析——你为什么需要“自己的”站点?#
1.1 常见的写作场景与痛点#
知识记录是痛点。最开始用word写,后来了解到了语雀等在线记录笔记的l工具,用了很久,但是公司网络限制,加上使用起来卡顿,后来就没有再使用了。再后来,了解到了obisidan,非常优秀的笔记记录。但是缺乏在线的能力,知识分享能力稍微弱了一些。
- 短内容(博客/随笔):时间线、标签聚合、RSS订阅是刚需。
- 长内容(书籍/手册/笔记):需要目录层级、侧边栏导航、全文搜索。
- 两者的冲突:博客主题太重(不适合长文档),文档主题太死板(不适合博客)。
1.2 平台化方案 vs. 自建方案j#
| 选择 | 优点 | 缺点 |
|---|---|---|
| 平台化(Medium/知乎/Notion) | 零技术门槛,一键发布,自带流量 | 内容所有权受限,样式定制弱,难以迁移 |
| 自建(本文方案) | 完全掌控内容与样式,可迁移,可扩展 | 需要一定技术基础,初期配置成本 |
| 平台的写作能力若一些,比如后面,我们等typst的html能力成熟了,就可以让ai帮我们开发对应的写作方式。 | ||
| 所以,想要一个自己的站点,可以记录自己写的博客、书籍。知识如果不能分享,那就太寂寞了。 |
第部署方式的选择——服务器 vs. 静态托管#
2.1 自建的两种主流方式对比#
| 方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| VPS/云服务器 | 需要动态功能(数据库、用户系统) | 灵活性最高,可实现复杂功能 | 成本高,需维护服务器安全 |
| 静态网站托管(Vercel/Netlify/Cloudflare Pages) | 纯内容站点(博客、文档) | 免费额度充足,自动构建部署,全球CDN加速 | 仅限于静态内容 |
最开始,我是在腾讯云上部署了一个服务器,hexo的框架,基本上不用自己费心去搭建和管理环境,腾讯的服务器都可以一键部署和使用。但是,每年需要出小几百块的服务器费用,还是挺麻烦的。 再后来,看到静态网站托管的服务,才知道,还可以这样。不用花费,很方便的就可以部署和托管。
2.2 为什么推荐静态托管?#
- 本方案完全生成纯静态HTML,无需数据库,无需后端。
- Vercel/Netlify 支持 Git 自动化部署(push 即发布)。
- 国内用户可考虑 Cloudflare Pages(无需备案,自带全球CDN)。
静态网站生成器(SSG)选型指南#
3.1 主流 SSG 一览#
| 框架 | 语言 | 速度 | 生态 | 适合场景 |
|---|---|---|---|---|
| Hugo | Go | ⚡⚡⚡ | ★★★★☆ | 追求极致构建速度,生态成熟 |
| Zola | Rust | ⚡⚡⚡ | ★★☆☆☆ | Rust爱好者,希望原生支持书籍模式 |
| VuePress/VitePress | JavaScript | ⚡⚡ | ★★★★☆ | Vue技术栈,文档类站点首选 |
| Next.js | JavaScript | ⚡⚡ | ★★★★★ | React技术栈,功能最强大 |
| Astro | JavaScript | ⚡⚡⚡ | ★★★★☆ | 内容驱动,灵活性最高,AI友好 |
3.2 我们为什么选择 Astro?#
astro的主题很丰富,热度很高,很容易找到匹配自己需求的模板。
- 官方主题 Starlight:为长文档设计,开箱即用。
- 社区插件丰富:
starlight-blog(博客)、starlight-obsidian(笔记无缝集成)。 - AI友好:官方有专门的AI辅助开发指南,生态中已有AI深度集成的主题(如
astro-minimax)。 - “岛屿架构”:页面默认是静态的,只有需要交互的部分才加载JavaScript,性能极佳。
第四部分:整体搭建与部署流程(全景预览)#
在开始动手前,我们先了解一下静态网站的工作流程:
- 我们本地准备环境
- 通过模板进行项目初始化
- 然后,在模板的文件夹下,进行内容创作
- 本地预览通过后,把内容推送到github上
- github和服务网站关联,当我们
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 环境准备 │ ──▶ │ 项目初始化 │ ──▶ │ 内容写作 │ ──▶ │ 本地预览 │
│ (Node.js) │ │ (Astro CLI) │ │ (MDX/Ob.) │ │ (npm run dev)│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 持续更新 │ ◀── │ 网站上线 │ ◀── │ 构建部署 │ ◀── │ Git推送 │
│ (写即发布) │ │ (公开URL) │ │ (npm run build)│ │ (git push) │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘plaintext总耗时预估:首次配置约30-60分钟,之后每次写文章只需提交Git即可。
第五部分:详细操作步骤#
5.1 环境准备#
- 安装 Node.js(推荐 v18 或更高)和 npm。
- (可选)安装 Obsidian 笔记软件,用于本地写作。
5.2 创建项目#
npm create astro@latest my-site -- --template starlight
cd my-site
npm installbash5.3 安装博客插件(starlight-blog)#
- 添加博客功能,支持
date、tags、authors等元数据。 - 自动生成
/blog/列表页和 RSS 订阅。
5.4 安装 Obsidian 集成插件(starlight-obsidian)#
- 将本地 Obsidian Vault 映射为网站内容源。
- 解决初始首页冲突问题(删除默认
index.mdx,在Vault根目录创建index.md)。
5.5 配置导航与侧边栏#
- 通过
astro.config.mjs中的sidebar配置控制目录结构。 - 支持多级嵌套,适合长文档组织。
5.6 本地预览与调试#
npm run dev启动开发服务器,修改内容自动热更新。
5.7 部署到生产环境#
- Vercel(推荐):连接GitHub仓库,自动构建。
- 构建命令:
npm run build - 输出目录:
dist/
- 构建命令:
- Cloudflare Pages:适合国内用户,无需备案。
- Netlify:另一主流选择,配置类似。
5.8 内容维护工作流#
- 在 Obsidian 中写作 → 保存 → 推送到 Git → 自动部署。
- 零前端代码,只关注内容本身。
第六部分:其他选择与扩展推荐#
6.1 如果不想用 Astro,有什么替代?#
- Zola + Tanuki 主题:原生支持“博客/书籍”双模式,Rust生态。
- Hugo + Hextra 主题:功能全面,构建速度最快。
- mdBook:极简书籍方案,适合纯粹的文档写作。
6.2 如何进一步扩展?#
- 集成 Typst 支持,用排版语言写书。
- 添加评论系统(Giscus / Utterances)。
- 配置自定义域名。
第七部分:总结与参考链接#
- 核心观点:技术选型不是追求“最强”,而是找到最契合自己工作流的工具。Astro + Starlight 是当前内容创作者的优秀选择。
- 思维转变:把精力放在内容上,让工具服务于写作。
参考链接: