配置結構

本文將盡量簡單地介紹 Hugo 的配置結構。

配置格式

雖然 Hugo 支持 TOMLYAMLJSON,不過筆者建議使用 TOMLYAML,因爲 JSON 並不支持註釋。

配置名稱

自 Hugo 0.110.0 版本後,Hugo 將優先使用 hugo.* 配置文件,儘管 config.* 仍起作用,不過筆者建議使用 hugo.* 作爲配置名稱,以與其他項目的配置區分開來。

單配置文件

單配置文件是指在項目根目錄下的 hugo.*

Hugo 也可以通過 --config 參數指定多個配置文件:hugo --config a.toml,b.toml,c.toml

配置目錄

雖然單配置文件簡單便捷,但缺點也很明顯,一旦配置過多,就難以閱讀,在多環境、多語言的情況下更爲糟糕,而配置目錄可以更好地應對這種情況。

 1tree config
 2config
 3├── _default
 4│   ├── hugo.toml
 5│   ├── languages.toml
 6│   ├── menus.en.toml
 7│   ├── menus.zh-hans.toml
 8│   └── params.toml
 9│   └── params.en.toml
10│   └── params.zh-hans.toml
11├── development
12│   ├── hugo.toml
13│   └── params.toml
14├── production
15│   ├── hugo.toml
16│   └── params.toml
17└── staging
18    ├── hugo.toml
19    └── params.toml

如上所示,站點們定義了四種環境:

環境描述
_default默認配置,會被合併到最終的配置中去。
development開發環境,hugo server 默認環境。
staging自定義環境,可以通過 -e staging 加載。
production生產環境,hugo 默認環境。
配置文件描述
hugo.*Hugo 配置文件
params.*參數配置
menus.*菜單配置
languages.*語言配置

Hugo 支持對某一特定語言進行配置,如上所展示的 menus.en.tomlmenus.zh-hans.tomlparams.en.tomlparams.zh-hans.toml

瞭解更多