建一个能写十年的博客

少一点运行时依赖,多一点可迁移的内容,让发布流程保持简单可靠。

一本摊开的工作笔记,旁边放着铅笔、尺子和三张研究素材。
一本摊开的工作笔记,旁边放着铅笔、尺子和三张研究素材。

一个个人博客真正困难的部分,通常不是把第一页做出来,而是几年以后仍然愿意打开编辑器,写下一篇新文章。

如果发布过程很脆弱,每次升级都需要修一堆依赖,写作会逐渐变成维护软件。这个站点选择 Astro、Markdown、GitHub 和 Cloudflare Pages,核心理由不是新,而是简单。

内容要能离开框架

文章保存在普通的 Markdown 或 MDX 文件中。标题、日期和主题放在文件开头,正文仍然是可直接阅读的纯文本。

---
title: 一篇新文章
publishedAt: 2026-08-21
tags: [工程, 笔记]
---

从这里开始写正文。

即使未来换掉整个生成器,这些文件仍然可以被其他工具读取。MDX 允许在文章里使用边注等小组件。只使用 Markdown 的文章则拥有最强的可迁移性,可以按需要选择。

默认不向浏览器发送脚本

博客的主要动作是阅读。静态 HTML 已经足够完成这件事,所以页面不需要先下载一套应用运行时才能显示正文。

这样做带来几个直接结果:

必要的交互仍然可以单独加入,但它应该先说明自己解决了什么问题。

发布应该只剩一次推送

文章写完后,执行检查并推送到 GitHub。Cloudflare Pages 读取仓库,运行构建命令,再把生成的 dist 目录发布出去。

生产分支只需要两项配置:

Build command: npm run build
Build output:  dist

每个分支还可以拥有独立的预览地址。改动先在真实网页里读一遍,再合并到主分支,这比在编辑器里猜测排版可靠得多。

给未来留一个清楚入口

所有经常修改的信息都应该集中起来。站点标题、作者、描述和仓库地址放在 src/config.ts,文章放在 src/content/posts。新增内容不需要理解整个项目。

长期可用的系统往往不显得聪明。它只是把最常做的事情变得容易,把不常做的事情保持可理解。对博客来说,这已经足够。