Hugo 設定檔
設定檔名稱
hugo 的設定檔 hugo.toml
(找不到的話可能叫 config.toml
)
在 hugo v0.109.0 版之前設定檔叫config.toml
,之後才改成hugo.toml
。
新的版本兩種名稱都可以生效,不過官方建議換成hugo.toml
。
設定檔位置
- 單一設定檔
my-project/hugo.toml
Hugo設定檔可以單獨放在專案的任一地方,預設會抓專案根目錄的 hugo.toml
這種方式適合只想有單個設定檔,或是想將設定檔放在非預設位置
可以搭配指令參數--config /path/to/hugo.toml
抓不同位置的設定檔
- 放在 config 資料夾內
Hugo 支援在不同環境下使用不同的設定檔
預設在根目錄的 config 資料夾內可以分環境,如果沒有對應設定,就會套用 _default 裡的預設值
搭配指令參數--configDir /path/to/config
可以抓不同位置的設定資料夾
1
2
3
4
5
6
7
8
|
my-project/
└── config/
├── _default/
│ └── hugo.toml
├── devlopment/
│ └── hugo.toml
└── production/
└── hugo.toml
|
直接執行hugo server
時,會去套用 devlopment 的設定
執行hugo
(相當於hugo build
)時,會去套用 production 的設定
如果這兩種還不夠用,可以在 config 內新增自定的設定資料夾
1
2
3
4
5
6
|
my-project/
└── config/
├── _default/
│ └── hugo.toml
└── myenv/
└── hugo.toml
|
搭配指令參數--environment myenv
可以套用 myenv 資料夾內的設定
設定檔格式
toml, yaml, json 三種格式的設定檔都可以用
轉換的方式在官方文件 Configure Hugo 中可以參考
PS:官方的文件紀錄得很詳細,會讓人覺得難上手,不過善用搜尋會很方便
以本站的設定為例,這邊只有節錄一部分
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 沒錯 toml 可以用註解
baseurl = "https://zonego.tw"
languageCode = "zh-tw"
title = "筆記Zone"
# Theme i18n support
# Available values: en, fr, id, ja, ko, pt-br, zh-cn, zh-tw, es, de, nl, it, th, el, uk, ar
defaultContentLanguage = "zh-tw"
[outputs]
home = ['html', 'rss']
...
|
1
2
3
4
5
6
7
8
9
10
11
12
|
baseurl : "https://zonego.tw"
languageCode : "zh-tw"
title : "筆記Zone"
defaultContentLanguage : "zh-tw"
outputs:
home:
- html
- rss
...
|
切分設定檔案
預設將設定全部集中在 hugo.toml
單一個檔案中
優點是設定只要在一個檔案中搜尋就好,不用翻文件看什麼設定放在哪個檔案
不過設定檔會變很長,編輯器沒有搜尋功能很難找
Hugo 支援將設定檔,用第一層的 key 作為檔名切開,這個功能只有在有用 config 資料夾時才能用
以前面本站的設定 hugo.toml 為例
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 沒錯 toml 可以用註解
baseurl = "https://zonego.tw"
languageCode = "zh-tw"
title = "筆記Zone"
# Theme i18n support
# Available values: en, fr, id, ja, ko, pt-br, zh-cn, zh-tw, es, de, nl, it, th, el, uk, ar
defaultContentLanguage = "zh-tw"
[outputs]
home = ['html', 'rss']
...
|
可以新增一個 outputs.toml 將 [outputs]
範圍內的設定單獨切分一個檔案
1
2
3
4
5
|
my-project/
└── config/
└── _default/
├── hugo.toml
└── outputs.toml
|
內容直接寫[outputs]
下的設定即可
詳細有哪些 key 可以切,請看官方文件
設定檔分類
Hugo支援用資料夾作設定檔分類
例如網站設定不同語言的版本,menu可以有多個設定檔
1
2
3
4
5
6
7
|
my-project/
└── config/
└── _default/
├── hugo.toml
├── outputs.toml
├── menus.en.toml
└── menus.de.toml
|
可以加一層資料夾做分類
1
2
3
4
5
6
7
8
|
my-project/
└── config/
└── _default/
├── hugo.toml
├── navigation/
│ ├── menus.en.toml
│ └── menus.de.toml
└── outputs.toml
|
參考資料