最近在使用 Hugo 生成博客文章的时候,发现有一篇新写的文章无法生成,而其他博文都可以成功渲染,非常奇怪。

经过比较和查找,觉得问题可能出在文章 front matter 的 date 书写格式上, 当时date 没有写时区信息,只写了年月日和时分秒信息,具体写的是 2020-01-10 23:48:25。后面在加上了时区信息, date 变成了 2020-01-10 23:48:25+0800。然后使用 hugo 重新生成博客, 果然新写的文章可以显示在博客里面了,由此确定是博文的日期格式问题。

原因

确定了原因,在网上经过一番搜索,发现了根源,原来 Hugo 是否会渲染一篇博文需要依赖博客的发布时间。如果一个博文的发布时间比当前 Hugo 认为的当前时间还要晚,也就是 Hugo 认为博文的发布时间在未来,那么 Hugo 默认不会渲染该篇博文。前面没有写时区的博文,就是被 Hugo 认为发布时间还未到,所以没有渲染。

解决方法

要解决这个问题,可以强制 Hugo 渲染发布时间在未来的博文,有两个办法。第一个是在config.toml 中加入以下设置

buildFuture = true

第二个方法是在 hugo build 博客的时候,加上 --buildFuture 选项。

参考