构建管线
构建是输入源到静态产物的一次纯函数转换:同源同产物,无副作用。五个阶段顺序执行:
| 阶段 | 输入 | 输出 | 说明 |
|---|---|---|---|
| 源解析 | 本地路径或 git 地址 | Markdown 目录 | git 源克隆到缓存目录后等同本地路径处理 |
| 渲染 | 单个 .md |
内容 HTML | 首行接口标记选择渲染器;remark / rehype 处理,shiki 代码高亮 |
| 拼装 | 内容 HTML + TemplateData | 完整页面 | Header / Footer / Sidebar / Minimap 构建期烘焙进每页 |
| 索引 | 页面集合 | tree.json + 全文索引 |
目录树结构 + 分词索引,供运行期查询 |
| 落盘 | 上述产物 | 输出目录 | 镜像源目录结构,每个 .md 一个页面 |
增量重建
preview 的监听模式以文件为粒度调用同一管线:源文件变化时只重新渲染受影响的页面与索引,未变化页面直接复用已有产物。
确定性
管线不读取时间戳、随机数等非确定输入;同一份源在任何环境构建得到相同产物(页面中显示的构建时间除外)。
