· 1 分钟阅读

为什么我的博客是一堆静态文件

朋友问我博客用的什么框架,我说:一个 400 行的 Node 脚本。他沉默了大概三秒。

静态站的取舍

动态 CMS 的好处是"改内容不用碰代码"——登录后台,写,发布。代价是你得养一个数据库、一个运行时、一套安全补丁,以及一个总在半夜挂掉的服务器。

静态站的逻辑正好相反:

项目动态站(WordPress 等)静态站(本站)
服务器VPS + PHP + MySQL免费 CDN
被攻击面插件、后台、数据库几乎没有
每月成本$6 起$0
改样式找主题、改子主题改一个 CSS 文件
写作体验浏览器后台本地 Markdown

对个人博客来说,最后一行是关键:内容本来就在本地。我在编辑器里写 Markdown,node build.mjs,推送,结束。

它是怎么工作的

整个"框架"就是三步:读文件、套模板、写出去。

const posts = loadPosts();              // 读 content/posts/*.md
for (const p of posts) {
  write(`posts/${p.slug}/index.html`,   // 套模板写出去
    layout({ title: p.title, content: renderMarkdown(p.body) }));
}

没有依赖,所以 npm install 都不用跑。Cloudflare Pages 上的构建时间是 4 秒,其中 3 秒是它在装 Node。

那不方便的地方呢

诚实地说:

  1. 不能在手机上写——除非把仓库挂到 GitHub 网页版
  2. 没有评论——需要的话接 Giscus(基于 GitHub Discussions)
  3. 搜索结果没有——文章多了再上 Pagefind
  4. 图片要自己压——没有自动缩略图

这些都是可以按需加上去的,而不是一开始就必须吞下的复杂度。先写起来,比先搭好更重要。

← 返回文章列表