Hublog随手记录一些东西

Hugo 时间配置

hugo 默认日期配置

1
2
3
4
5
6
[frontmatter]
  # hugo 会从数组中依次寻找,第一个被找到的时间作为当前属性的时间
  date = ["date", "publishDate", "lastmod"]
  lastmod = [":git", "lastmod", "date", "publishDate"]
  publishDate = ["publishDate", "date"]
  expiryDate = ["expiryDate"]

还要注意,Hugo 对上述内容有一些内置别名: lastmod => modifiedpublishDate => pubdatepublishedexpiryDate => unpublishdate 。以此为例,默认情况下,当你在 front matter 中使用 pubDate 作为前置日期,那么这个值将分配给 .PublishDate .

每项日期的说明

date 和 lastmod 为显示在文章顶部的创建时间和文章底部的最后修改时间

pubDate 和 unpubDate 为公布时间和到期时间,pubDate 之前或 unpubDate 之后的文章不会显示在博客中。

下面是一篇文章中的 front matter :

1
2
3
4
5
6
7
 ---
 titel: "配置 front matter 中的时间"
 pubDate: 2020-03-01
 date: 2020-03-01
 lastmod: 2020-03-01
 unpubDate: 2020-03-05
 ---

参考链接:Hugo配置 - 知乎 (zhihu.com)

获取 git 提交时间

enableGitInfo 默认为 false,如果需要从 git commit 中获取修改时间则需要把这一项改为 true

1
2
# 为每个页面启用 .GitInfo 对象(如果 Hugo 站点由 Git 进行版本控制)。然后,这将使用该内容文件的最后一个 git 提交日期更新每个页面的 Lastmod 参数。
enableGitInfo = true

frontmatter 里面的 lastmod 字段表示『更新时间』的获取方式

一些其他的时间获取方式说明

  • :git 从文件的 git 提交记录获取
  • lastmod 从文件中的 lastmod 字段获取
  • :fileModTime 从文件修改时间获取,下面是一个例子:
1
2
[frontmatter]
  lastmod = ['lastmod', ':fileModTime', ':default']

上面将首先尝试从 lastmod 前言参数开始提取 .Lastmod 的值,然后提取内容文件的修改时间戳。最后一个, :default 在这里应该不需要,但 hugo 最终会在 :gitdatepublishDate 中寻找有效日期。

  • :filename从内容文件的文件名中获取日期。例如, 2018-02-22-mypage.md 将提取日期 2018-02-22 。此外,如果未设置 slugmypage 将用作 .Slug 的值。

参考文档:Configure Hugo | Hugo (gohugo.io)

0%