Hugo:给文章添加 lastmod(上次修改时间)

💡 原文中文,约1700字,阅读约需4分钟。
📝

内容提要

文章讨论了如何在Hugo网站中批量添加lastmod日期,以确保修改文章时lastmod不被更改。通过编写脚本提取每篇文章的Git提交日期并插入到frontmatter中,确保网站构建前后内容一致。最后,作者提交了这些改动并删除了脚本。

🔎

延伸解读

为什么需要手动添加 lastmod

Hugo 默认使用 Git 提交日期作为 lastmod,这会导致批量修改文章时,即使内容未变,lastmod 也会被更新。作者通过手动在 frontmatter 中添加 lastmod 字段,并调整配置使其优先级最高,从而确保 lastmod 只反映实际内容修改。这种做法适合需要精确控制 lastmod 的站点。

脚本实现与操作流程

作者编写了 add-lastmod.sh 脚本,利用 git log 获取每篇文章的最近一次提交日期,并插入到 frontmatter 中。操作时先构建网站备份,再运行脚本,然后重新构建并对比,确保输出一致。最后提交改动并删除脚本,保持仓库整洁。

验证与风险控制

在修改前后分别构建网站,并使用文件对比工具(如 Kompare)检查 public 目录,确认内容完全相同。这避免了因脚本错误导致页面变化。同时,作者在预览中与线上站点对比,进一步确保视觉一致性。这种严谨的验证步骤值得借鉴。

❓

Q&A

如何在Hugo中添加lastmod日期?

可以通过编写add-lastmod.sh脚本,提取每篇文章的Git提交日期并插入到frontmatter中来添加lastmod日期。

为什么需要将lastmod的优先级调至最高?

将lastmod的优先级调至最高是为了确保Hugo使用自定义的lastmod日期,而不是覆盖为Git提交日期。

在添加lastmod之前需要做什么?

在添加lastmod之前,需要先构建网站以进行对比,确保修改后内容一致。

如何确认修改前后网站内容一致?

可以使用文件对比工具,如Kompare,来确认修改前后的public目录内容完全相同。

添加lastmod后如何提交改动?

添加lastmod后,可以使用git diff查看差异,然后执行git add和git commit提交改动。

为什么要删除add-lastmod.sh脚本?

删除add-lastmod.sh脚本是为了保持代码整洁,避免不必要的文件残留。

🏷️

标签

➡️

继续阅读