Hugo 配置参数
Hugo 创建自定义站点参数。
使用 params 键来自定义参数:
baseURL: https://example.org/
languageCode: en-US
params:
contact:
email: info@example.org
phone: +1 206-555-1212
subtitle: Reference, Tutorials, and Explanations
title: Project Documentation
baseURL = 'https://example.org/'
languageCode = 'en-US'
title = 'Project Documentation'
[params]
subtitle = 'Reference, Tutorials, and Explanations'
[params.contact]
email = 'info@example.org'
phone = '+1 206-555-1212'
{
"baseURL": "https://example.org/",
"languageCode": "en-US",
"params": {
"contact": {
"email": "info@example.org",
"phone": "+1 206-555-1212"
},
"subtitle": "Reference, Tutorials, and Explanations"
},
"title": "Project Documentation"
}
在模板中使用 Site 对象上的 Params 方法访问自定义参数:
{{ .Site.Params.subtitle }} → Reference, Tutorials, and Explanations
{{ .Site.Params.contact.email }} → info@example.org键名应使用 camelCase 或 snake_case。虽然 TOML、YAML 和 JSON 允许 kebab-case 键,但它们不是有效的 标识符,在 链接 标识符时无法使用。
例如,您可以这样做:
{{ .Site.params.camelCase.foo }}
{{ .Site.params.snake_case.foo }}但您不能这样做:
{{ .Site.params.kebab-case.foo }}多语言站点
对于多语言站点,在每种语言下创建 params 键:
baseURL: https://example.org/
defaultContentLanguage: en
languages:
de:
languageCode: de-DE
languageDirection: ltr
languageName: Deutsch
params:
contact:
email: info@de.example.org
phone: +49 30 1234567
subtitle: Referenz, Tutorials und Erklärungen
title: Projekt Dokumentation
weight: 1
en:
languageCode: en-US
languageDirection: ltr
languageName: English
params:
contact:
email: info@example.org
phone: +1 206-555-1212
subtitle: Reference, Tutorials, and Explanations
title: Project Documentation
weight: 2
baseURL = 'https://example.org/'
defaultContentLanguage = 'en'
[languages]
[languages.de]
languageCode = 'de-DE'
languageDirection = 'ltr'
languageName = 'Deutsch'
title = 'Projekt Dokumentation'
weight = 1
[languages.de.params]
subtitle = 'Referenz, Tutorials und Erklärungen'
[languages.de.params.contact]
email = 'info@de.example.org'
phone = '+49 30 1234567'
[languages.en]
languageCode = 'en-US'
languageDirection = 'ltr'
languageName = 'English'
title = 'Project Documentation'
weight = 2
[languages.en.params]
subtitle = 'Reference, Tutorials, and Explanations'
[languages.en.params.contact]
email = 'info@example.org'
phone = '+1 206-555-1212'
{
"baseURL": "https://example.org/",
"defaultContentLanguage": "en",
"languages": {
"de": {
"languageCode": "de-DE",
"languageDirection": "ltr",
"languageName": "Deutsch",
"params": {
"contact": {
"email": "info@de.example.org",
"phone": "+49 30 1234567"
},
"subtitle": "Referenz, Tutorials und Erklärungen"
},
"title": "Projekt Dokumentation",
"weight": 1
},
"en": {
"languageCode": "en-US",
"languageDirection": "ltr",
"languageName": "English",
"params": {
"contact": {
"email": "info@example.org",
"phone": "+1 206-555-1212"
},
"subtitle": "Reference, Tutorials, and Explanations"
},
"title": "Project Documentation",
"weight": 2
}
}
}
命名空间
为防止命名冲突,模块和主题开发者应对其模块或主题特定的自定义参数进行命名空间化。
params:
modules:
myModule:
colors:
background: '#efefef'
font: '#222222'
[params]
[params.modules]
[params.modules.myModule]
[params.modules.myModule.colors]
background = '#efefef'
font = '#222222'
{
"params": {
"modules": {
"myModule": {
"colors": {
"background": "#efefef",
"font": "#222222"
}
}
}
}
}
要访问模块/主题设置:
{{ $cfg := .Site.Params.module.mymodule }}
{{ $cfg.colors.background }} → #efefef
{{ $cfg.colors.font }} → #222222