HUGO
Menu
GitHub 87548 stars Mastodon

Hugo 配置 front matter

Hugo 配置 front matter。

日期

Page 对象上有四种方法返回日期。

方法 描述
Date 返回给定页面的日期。
ExpiryDate 返回给定页面的过期日期。
Lastmod 返回给定页面的最后修改日期。
PublishDate 返回给定页面的发布日期。

Hugo 根据此配置确定返回的值:

frontmatter:
  date:
  - date
  - publishdate
  - pubdate
  - published
  - lastmod
  - modified
  expiryDate:
  - expirydate
  - unpublishdate
  lastmod:
  - :git
  - lastmod
  - modified
  - date
  - publishdate
  - pubdate
  - published
  publishDate:
  - publishdate
  - pubdate
  - published
  - date
[frontmatter]
  date = ['date', 'publishdate', 'pubdate', 'published', 'lastmod', 'modified']
  expiryDate = ['expirydate', 'unpublishdate']
  lastmod = [':git', 'lastmod', 'modified', 'date', 'publishdate', 'pubdate', 'published']
  publishDate = ['publishdate', 'pubdate', 'published', 'date']
{
   "frontmatter": {
      "date": [
         "date",
         "publishdate",
         "pubdate",
         "published",
         "lastmod",
         "modified"
      ],
      "expiryDate": [
         "expirydate",
         "unpublishdate"
      ],
      "lastmod": [
         ":git",
         "lastmod",
         "modified",
         "date",
         "publishdate",
         "pubdate",
         "published"
      ],
      "publishDate": [
         "publishdate",
         "pubdate",
         "published",
         "date"
      ]
   }
}

例如,ExpiryDate 方法返回 expirydate 值(如果存在),否则返回 unpublishdate

您还可以使用自定义日期参数:

frontmatter:
  date:
  - myDate
  - date
[frontmatter]
  date = ['myDate', 'date']
{
   "frontmatter": {
      "date": [
         "myDate",
         "date"
      ]
   }
}

在上面的示例中,Date 方法返回 myDate 值(如果存在),否则返回 date

要回退到默认日期序列,使用 :default 标记:

frontmatter:
  date:
  - myDate
  - :default
[frontmatter]
  date = ['myDate', ':default']
{
   "frontmatter": {
      "date": [
         "myDate",
         ":default"
      ]
   }
}

在上面的示例中,Date 方法返回 myDate 值(如果存在),否则返回 datepublishdatepubdatepublishedlastmodmodified 中的第一个有效日期。

别名

一些 front matter 字段有别名。

Front matter 字段 别名
expiryDate unpublishdate
lastmod modified
publishDate pubdatepublished

默认 front matter 配置包含这些别名。

标记

Hugo 提供以下 标记 来帮助您配置 front matter:

:default
默认有序日期字段序列。
:fileModTime
文件的最后修改时间戳。
:filename
从文件名提取日期,前提是文件名以以下格式之一的日期开头:

YYYY-MM-DD-HH-MM-SS 格式中,日期和时间值可以用任何字符分隔,包括空格(例如 2025-02-01T14-30-00)。

Hugo 将提取的日期解析为站点配置中定义的 timeZone,如果未定义则回退到系统时区。提取日期后,Hugo 使用文件名的剩余部分生成页面的 slug,但前提是您尚未在页面的 front matter 中指定 slug。

例如,如果您将文件命名为 2025-02-01-article.md,Hugo 将日期设置为 2025-02-01,slug 设置为 article

:git
文件最后修订的 Git 作者日期。要启用对 Git 作者日期的访问,将 enableGitInfo 设置为 true,或在构建站点时使用 --enableGitInfo 标志。

示例

考虑此站点配置:

frontmatter:
  date:
  - :filename
  - :default
  lastmod:
  - lastmod
  - :fileModTime
  publishDate:
  - :filename
  - :default
[frontmatter]
  date = [':filename', ':default']
  lastmod = ['lastmod', ':fileModTime']
  publishDate = [':filename', ':default']
{
   "frontmatter": {
      "date": [
         ":filename",
         ":default"
      ],
      "lastmod": [
         "lastmod",
         ":fileModTime"
      ],
      "publishDate": [
         ":filename",
         ":default"
      ]
   }
}

要确定 datepublishDate,Hugo 尝试从文件名提取值,回退到默认有序日期字段序列。

要确定 lastmod,Hugo 查找 front matter 中的 lastmod 字段,回退到文件的最后修改时间戳。


Last updated: January 1, 0001
Improve this page