今天在用 Hugo 生成静态页面的时候,遇到了一个小问题 —— 文章的发布日期只要标记为今天,就无法生成该页面。
不过,借助万能的 Google,我还是找到了原因。
Hugo 在生成静态页面的时候,不会生成超过当前时间的文章;而 Hugo 默认采用的是 格林尼治平时 (GMT),比北京时间 (UTC+8) 晚了 8 个小时。也就是说,当北京时间在 08:00 之前,而你又将文章发布日期设在当天时,Hugo 就默认不会生成这个页面。
至于解决方案,有两种方法。一是使用 Hugo 的 --buildFuture
参数,二是在文章的 Markdown 文件中指定时区,下文详细解释一下。
使用 --buildFuture
参数
这是比较简单的方式,你只需要在用 Hugo 生成页面时加上 --buildFuture
参数即可:
hugo --buildFuture
用 Hugo 本地服务器预览页面时,也可以使用本参数:
hugo server --buildFuture
指定文章时区
以本文为例,如果不指定时区,那么 Markdown 文件头的格式是:
---
...
date: 2019-05-12
...
---
指定为 UTC+8 时区的写法是:
---
...
date: 2019-05-12T00:00:00+08:00
...
---
或者也可以用 timezone 指定时区:
---
...
date: 2019-05-12
timezone: UTC+8
...
---
你可以查看 Hugo 的 官方文档 了解更多信息。