本文將盡量簡單地介紹 Hugo 的配置結構。
雖然 Hugo 支持 TOML、YAML 和 JSON,不過筆者建議使用 TOML 或 YAML,因爲 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 默認環境。 |
--disableFastRender 和 --renderToDisk。| 配置文件 | 描述 |
|---|---|
hugo.* | Hugo 配置文件 |
params.* | 參數配置 |
menus.* | 菜單配置 |
languages.* | 語言配置 |
Hugo 支持對某一特定語言進行配置,如上所展示的 menus.en.toml、menus.zh-hans.toml、params.en.toml 和 params.zh-hans.toml。
languages.* 和 params.*.* 中更改 hb* 和 hugopress* 相關的配置。