テーマ独自の設定をしたい([params] / params.toml)

 1# /config/_default/params.toml
 2colorScheme = "neon"
 3defaultAppearance = "light"
 4autoSwitchAppearance = true
 5enableSearch = true
 6mainSections = ["posts"]
 7
 8[header]
 9layout = "basic"
10
11[footer]
12showMenu = true
13showCopyright = true
14
15[homepage]
16layout = "card"
17showRecent = true
18showRecentItems = 6
19
20[article]
21showDate = false
22showAuthor = true
23showReadingTime = true
24showTableOfContents = true

Hugo本体が知らない、テーマ固有の設定値は[params]セクション(もしくはparams.toml)に書きます。 どんなキーが使えるかはテーマのドキュメントに依存するので、利用するテーマの設定リファレンスを確認してください。

上記サンプルはBlowfishテーマの例です。 Blowfishでは[header] / [footer] / [homepage] / [article] / [list] / [taxonomy] / [term]のように、 ページの種類ごとにサブセクションを分けて表示・非表示を切り替えられるようになっています。

テンプレートしたい(.Site.Params / .Params)

{{ .Site.Params.colorScheme }}
{{ .Site.Params.article.showAuthor }}

サイト全体の[params]は.Site.Params(もしくはsite.Params)でテンプレートから参照できます。 ネストしたセクション([article]など)は.Site.Params.article.showAuthorのようにドットでたどります。

ページ単位のfrontmatterでparamsを上書きした場合は.Paramsで取得できます。

未使用の項目はコメントアウトしておきたい

1[article]
2showDate = false
3# showViews = false
4# showLikes = false
5showAuthor = true

テーマによっては設定可能な項目がとても多く、 デフォルト値のまま使う項目まですべて書き出すと見通しが悪くなります。

変更した項目だけを有効にして、将来使うかもしれない項目は#でコメントアウトしたまま残しておくと、 「その項目が存在すること」と「デフォルトのままであること」の両方が一目でわかります。

リファレンス