2 分钟阅读
为什么我把博客做成了纯静态的
一台小服务器、几页 Markdown,和一个几乎不需要维护的写作系统。
这个博客没有数据库,没有登录后台,也不需要我每天关心服务器负载。它只是几页提前生成好的 HTML,安静地躺在 Nginx 的目录里。
对个人博客来说,这可能是最舒服的形态。
三个足够用的部件
整个站点只由三部分组成:
- Astro 负责把 Markdown 和页面模板编译成静态 HTML;
- Markdown 文件 是全部内容的来源,放在 Git 里就能随时回滚;
- Nginx 只做一件事:把文件发给访问者。
没有运行时服务,也就没有进程崩溃、数据库连接失败或者依赖升级带来的意外。服务器甚至不需要安装 Node.js,构建可以在自己的电脑上完成。
const posts = (await getCollection('blog', ({ data }) => !data.draft)).sort(
(a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf(),
);
需要发布新文章时,流程也很简单:新建一个 .md 文件,填好标题和日期,构建,上传。整个过程不到一分钟。
放弃了什么
静态站点不是没有代价。
- 没有浏览器里的写作后台,文章必须在本地写;
- 评论、点赞这类需要持久化状态的功能,要么接入第三方,要么自己加服务;
- 每次修改都要重新构建和部署。
但这些东西,恰好都不是我现在需要的。个人博客最重要的功能是持续地写,而不是把产品功能清单填满。
一个更小的承诺
选择静态方案,也是在给自己一个更小的承诺:不需要维护一整套系统,只要维护一个写作习惯。
服务器一年花不了多少钱,构建只需要几秒钟。剩下的时间里,我唯一要做的,就是打开编辑器,把想法写下来。
这听起来朴素,但已经足够。