Hugo:补全文章的 ISO 8601 日期

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

内容提要

本文讨论了在使用Hugo构建网站时,如何正确设置文章的日期、时间和时区。建议使用ISO 8601格式以确保日期一致性,并提供了一个脚本示例用于批量修改文章日期,强调在修改前需备份网站。最后,建议删除不必要的时区配置。

🔎

延伸解读

为什么需要补全日期和时区

文章指出,仅设置日期(如 date: '2020-10-02')会缺少时间和时区信息。虽然可以通过全局配置统一时区,但存在隐患:如果在不同时区撰写新文章,仍会沿用旧时区,导致时间错乱。因此,建议在每篇文章中明确写入日期、时间和时区,采用 ISO 8601 格式,如 date: 2020-10-02T00:00:00+08:00,以确保时间一致性。

修改日期前的重要准备

在批量修改文章日期前,必须为所有文章添加 lastmod(上次修改时间)。否则,修改日期后,Hugo 可能会将 lastmod 自动更新为当天,导致所有文章的修改时间变为同一天,失去准确性。此外,建议先构建网站并备份原始输出,以便后续对比验证修改效果。

批量修改脚本与验证流程

文章提供了一个 bash 脚本 use-iso8601-date.sh,用于批量将文章日期转换为 ISO 8601 格式。脚本使用 sed 命令匹配并替换日期字段,自动补全 T00:00:00+08:00。执行前需赋予脚本执行权限,并指定内容目录。修改后,应重新构建网站,使用文件对比工具(如 Kompare)比较修改前后的输出,检查是否有意外改动,例如代码块中的日期也被修改。确认无误后再提交更改。

简化配置与后续清理

补全日期后,建议从 config.toml 中删除不必要的时区配置(如 timeZone = "Etc/GMT-8"),以避免冗余。同时,删除临时脚本和构建的对比目录,保持项目整洁。最后,通过 git diff 查看改动,提交时使用清晰的提交信息,如 'feat: use ISO 8601 date'。

❓

Q&A

Hugo中如何设置文章的日期和时区?

在Hugo中,建议为每篇文章设置日期、时间和时区,格式应为ISO 8601,例如:date: 2020-10-02T00:00:00+08:00。

在修改Hugo文章日期前需要注意什么?

在修改文章日期前,需先添加lastmod(上次修改时间),以防止修改后lastmod变为今天。

如何批量修改Hugo文章的日期?

可以使用脚本use-iso8601-date.sh批量修改文章日期,需在根目录创建该脚本并赋予执行权限。

为什么建议删除Hugo的时区配置?

建议删除不必要的时区配置,以简化设置,避免时区混淆。

如何检查Hugo修改后的日期效果?

建议使用文件对比工具检查修改效果,并在确认无误后提交改动。

Hugo中日期格式的具体示例是什么?

Hugo中日期格式的示例为:date: 2020-10-02T00:00:00+08:00。

🏷️

标签

➡️

继续阅读