ビルド設定したい(development / production)

1# config/_default/hugo.toml
2buildDrafts = true
3buildFuture = true
1# config/production/hugo.toml
2buildDrafts = false
3
4[services]
5[services.googleAnalytics]
6ID = "G-測定ID"
$ hugo server --openBrowser    # 開発環境(`_default`)で起動
$ hugo server -e production    # 本番環境(`_default` + `production`)で起動
$ hugo build                   # 本番環境(`_default` + `production`)でビルド

--environment(-e)で、Hugoのビルド環境を変更できます。 デフォルトは開発環境(development)で、config/_default/の設定だけが読み込まれます。 本番環境(production)を指定すると、config/production/の設定が_defaultの設定に上書きされます。

上記サンプルでは2つのことをしています。 1つは下書き記事の扱いで、開発中はbuildDrafts = trueにして下書きもその場で確認できるようにし、 本番ビルドではconfig/production/hugo.tomlのbuildDrafts = falseだけを上書きして、下書きを公開しないようにしています。

もう1つはGoogle Analyticsの計測タグです。 _defaultには設定せず、productionにだけ[services.googleAnalytics]を追加しています。 こうすることで、ローカル開発中のアクセスが計測データに混ざるのを防げます。

開発環境したい(_default / development)

config/_default/は、デフォルトの設定を配置するディレクトリです。 いわゆる「開発環境」の設定で、hugo serverを実行すると、この設定が読み込まれます。

本番環境したい(production)

config/production/は、本番環境の設定を配置するディレクトリです。 hugo buildを実行すると、デフォルトの設定に加えて、この設定が読み込まれます。

$ hugo server --environment production --openBrowser

ローカルで本番環境の設定を確認したい場合は、--environmentオプションで環境名を指定してhugo serverを実行します。

GitLab Pagesにデプロイしたい

1# config/_default/hugo.toml
2baseURL = "https://www.example.com/custom/"
1# config/gitlab/hugo.toml
2baseURL = "https://qumasan.gitlab.io/custom/"
$ hugo build  # URL = https://www.example.com/custom/
$ hugo -e gitlab  # URL = https://qumasan.gitlab.io/custom/

GitLab Pagesは、リポジトリ名によってURLが自動で割り当てられます。 config/gitlab/に置いた設定は、config/_default/の設定を上書きします。

リファレンス