决定一篇文章何时可见的前置字段

Hugo 发布选项决定哪些页面进入产物

Hugo 在构建运行时判断哪些页面应当渲染。文章元数据提供发布时间与草稿状态,项目配置和命令参数提供包含规则,构建时钟提供判断所用的时间。生成目录一旦部署,在下次产物替换之前不会自行变化。因此,日期走到午夜不等于触发发布;没有写 draft: true 的文件,也不会自动被当成草稿。这两个边界决定了排期内容能否按预期上线。 元数据和构建选项分别起作用 在默认规则下,标记为 draft: true 的页面不进入产物;发布时间在未来的页面也会被排除,已经过了失效时间的页面同样如此。Hugo 根据 front matter 配置解析各类日期,显式的 publishDate 可以不同于页面显示的 date。对必须精确到某个边界的排期,应使用包含时区的完整时间戳,避免本机和构建服务器把同一个日期解释为不同时间。 --buildDrafts 包含草稿,--buildFuture 包含未来内容,--buildExpired 包含已失效内容,短选项分别是 -D、-F 和 -E。这些开关处理不同条件:一篇发布时间尚未到达的草稿,需要同时允许草稿和未来内容才能提前进入产物。项目配置或环境配置也能启用相同行为,所以只看文章里的标记不足以判断实际发布结果,还必须检查本次构建的有效选项。 本站明确设置了 buildFuture: true,用于保留包含未来日期文章的既有公开目录。因此,本站这些文章的日期不是保密截止时间,也不能用 Hugo 的默认排期规则推断它们尚未公开。修改发布策略之前,需要把配置和预期 URL 清单一起比较,否则关闭一个看似普通的开关,就可能让大量已经存在的地址消失。介绍默认机制与解释本站事实,应当采用各自对应的证据。 预览产物仍然可以被公开 预览开关只改变输出包含什么,不会给产物增加禁止部署的属性。如果流水线上传了用 -D -F 生成的目录,草稿和未来页面一样可以被访问。因此,预览应使用独立输出位置,正式发布则根据计划中的选项重新构建。Git 发布标签只是标识源码历史,既不会改变 Hugo 的包含规则,也不能证明某个生成目录已经经过审阅。交付记录需要关联源码版本、构建选项和实际产物。 按时发布还需要在发布时间之后执行新的构建与部署。反过来,把已经公开的页面重新标记为草稿,也不会撤回服务器上的旧 HTML 或缓存副本。需要重建、替换被服务的产物,再检查公共地址。Hugo 通常不会自动删除输出目录里的所有遗留文件,因此独立的新目录或合适的清洁构建,是证明被排除页面确实不存在的必要步骤。导航里不显示链接,远不足以证明内容已经下线。 ...

三月 18, 2028 · 2 分钟 · XB Field Notes
一行 HTTP 状态与响应头的终端输出,旁边是一个变暗的状态仪表盘。

可读的证据优先于仪表盘

当论断必须经受审计时,选择可核验的句子而不是彩色面板。

八月 18, 2026 · 1 分钟 · XB Field Notes
两只分别标注新鲜度与校验的钟,之间是一个 ETag。

缓存校验是两只钟,不是一项新鲜度设置

缓存的连贯性取决于你让哪一对条件显式化。

八月 14, 2026 · 1 分钟 · XB Field Notes
一个没有脚本通道的浏览器窗口,CSP 列出 script-src 'none'。

零 JavaScript 静态站是可辩护的选择

没有 script-src 不是缺口,而是一道有可测量契约的边界。

八月 13, 2026 · 1 分钟 · XB Field Notes