先确认内容属于哪里
草稿不应该因为进入目录就自动上线。这里的构建器先读文章元数据,只有明确允许公开的内容才进入页面、全站搜索与订阅源。私有笔记和运维凭据保存在另一个空间,不参与内容构建。
新增文章默认是一份草稿。填好标题、摘要、日期和正文之后,作者再明确选择发布。目录里有文件与网站上有文章,是两个不同的事实。
构建是一份可以检查的答案
一篇 Markdown 会生成正文页、目录、相关文章入口,并进入搜索索引。构建结束之后,校验器核对站内链接、锚点、页面标题以及公开路径。它还确认草稿没有出现在生成结果里。
校验通过只证明这份产物满足当前规则。它不能代替在浏览器里阅读,也不能证明服务器已经收到了新版本。页面是否出现横向滚动、目录是否遮住标题、手机按钮能否点击,都需要独立查看。
发布时只动自己的文件
静态内容发布使用一份路径白名单和文件指纹。先保存将要覆盖的原文件,再将经过校验的产物写入相同目录里的临时文件,最后原子替换单个文件。资源先上线,首页最后更新,减少短暂的不一致。
单文件的原子替换不是整个网站的事务。发布脚本仍然需要检查前后状态,并在失败时恢复本轮修改的文件。网站文件的发布权限也不应扩展成改写代理、证书或系统设置的权限。
恢复也要认得版本
旧版本的恢复脚本需要核对当前指纹。当前站点已经发生了后续更新时,旧脚本应停止,而不是猜测哪些新内容可以覆盖。保留每次发布的原文件、清单和时间,才能按相反顺序恢复。
隔离恢复验证与生产回滚不同。前者把备份文件还原到独立目录并比对字节;后者会改变在线站点。没有真正执行生产回滚,就不应将其记录为生产验证通过。
一份小型发布记录
记录版本、构建与校验结果、修改文件、线上下载指纹和恢复入口已经很有用。私有凭据、原始健康日志以及服务器管理操作,不属于公开的编辑记录。
本站这次内容更新用于验证本地 Markdown 流水线。远端仓库与自动部署权限未明确时,本地流程仍可以独立运行。编辑记录:2026-10-08,初稿公开;后续事实变更会同步更新日期。