設定ファイル(hugo.toml

サイトの設定はhugo.tomlに記述します。 設定の形式はTOML / YAML / JSONが利用できます。 僕はTOMLを好んで使っています。

注意

v0.110からデフォルトの設定ファイル名がhugo.tomlに変更されました。 しばらくはconfig.tomlも使えるようですが、hugo.tomlに変更することが推奨されています。 詳しくはhugo.toml vs config.toml - Hugoドキュメントを参照してください。

設定ファイルしたい(--config

$ hugo --config 設定ファイル
$ hugo --config 設定ファイル1,設定ファイル2,設定ファイル3

--configオプションで設定ファイルを指定できます。 設定ファイルは複数指定できる。

設定ファイルを分割したい(/config/

/config/環境名/以下に設定ファイルを分割して配置できます。 デフォルトの設定は/config/_default/に配置します。

設定項目はConfiguration directoryにあるとおりです。

以下に書き出してみましたが、Hugoのデフォルト(=ビルトイン)の設定でよい場合は、 ファイルを作成する必要はありません。

/config/_default/
hugo.toml
build.toml
cache.toml
cascade.toml
deployment.toml
frontmatter.toml
imaging.toml
languages.toml
markup.toml
mediatypes.toml
menus.toml
minify.toml
module.toml
outputformats.toml
outputs.toml
params.toml
permalinks.toml
privacy.toml
related.toml
security.toml
server.toml
services.toml
sitemap.toml
taxonomies.toml

Blowfishの場合

Blowfishテーマの設定ファイルのセクションでは、次のように設定ファイルを分割しています。

/config/_default/config.toml
/config/_default/languages.ja.toml # 言語関係の設定
/config/_default/menus.ja.toml     # ナビゲーションの設定
/config/_default/params.toml       # テーマ独自の設定

多言語サイトにする場合、設定ファイル名も言語ごとに作成できます。

用途別に設定したい(--environment

1$ hugo -e 環境名
2$ hugo -e gitlab  # デフォルト + GitLab Pagesの設定
3$ hugo -e production   # デフォルト + 公開設定

--environmentオプションで、用途別に設定を切り替えることができます。 設定ファイルは/config/環境名/ディレクトリの以下に配置します。 デフォルトは/config/_default/ディレクトリです。

上記のサンプルでは、次のような設定ファイルの配置を仮定しています。

/config/_default/hugo.toml    # デフォルト設定(ステージング用)
/config/gitlab/hugo.toml      # GitLab Pagesに公開する設定
/config/production/hugo.toml  # 本番環境に公開する設定

ローカルでの開発(やステージング環境)では/config/_default/、 GitLab Pagesでの構築時は/config/gitlab/、 本番環境に公開する場合は/config/production/の設定ファイルに切り替えて適用されるようにしています。

テーマごとに設定したい

この機能を使うと、テーマごとの設定を共存させることができます。 Hugoのテーマ作成はとても自由度が高く、テーマ間の互換性はほぼありません。

お気に入りのテーマを探す過程で、設定ファイルを毎回書き換えるのは面倒です。 次のように、テーマごとに設定ファイル環境を作成すると、その手間がぐっと抑えられます。

/config/_default/hugo.toml    # 実行: hugo server
/config/blowfish/[...].toml   # 実行: hugo -e blowfish server; Blowfishテーマ
/config/ananke/[...].toml     # 実行: hugo -e ananke server; Anankeテーマ

リファレンス