个人博客的核心是文字。首页、文章页和归档可以提前生成,让浏览器打开页面时直接得到完整内容。
把工作放在构建阶段
本地构建负责读取文章、整理元数据和生成页面。服务器只需要把 HTML、CSS、JavaScript 和 JSON 文件交给浏览器。
// 浏览器读取已生成的静态索引
const response = await fetch('/search-index.json');
const articles = await response.json();
const matches = articles.filter(article =>
article.title.includes('设计')
);
交互留在浏览器
主题切换、分类筛选和搜索,不一定需要服务端接口。它们可以从页面或静态索引取得信息,然后在本地完成操作。
保持内容可访问
即使关闭脚本,文章正文与站内链接仍然应该可用。把基础阅读建立在 HTML 上,再用 JavaScript 改善交互。
维护简单的边界
每次更新文章,重新构建并替换站点文件。内容与样式一起发布,避免页面和搜索索引来自不同版本。
一个小站的完整感,往往来自每一个入口都有真实去处、每一种状态都被认真考虑。