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 值(如果存在),否則返回 date、publishdate、pubdate、published、lastmod 和 modified 中的第一個有效日期。
別名
一些 front matter 字段有別名。
| Front matter 字段 | 別名 |
|---|---|
expiryDate |
unpublishdate |
lastmod |
modified |
publishDate |
pubdate、published |
默認 front matter 配置包含這些別名。
標記
Hugo 提供以下 標記 來幫助您配置 front matter:
:default- 默認有序日期字段序列。
:fileModTime- 文件的最後修改時間戳。
:filename- 從文件名提取日期,前提是文件名以以下格式之一的日期開頭:
YYYY-MM-DDYYYY-MM-DD-HH-MM-SSNew in v0.148.0
在
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"
]
}
}
要確定 date 和 publishDate,Hugo 嘗試從文件名提取值,回退到默認有序日期字段序列。
要確定 lastmod,Hugo 查找 front matter 中的 lastmod 字段,回退到文件的最後修改時間戳。