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