1. 導入 — この記事でわかること
Hugoの設定ファイル hugo.toml の役割と基本構造、
そして今回の「unsafe 設定事故」から学んだ安全運用のポイントをまとめます。
記事内の長文を折りたたみたかったがdetailタグを直接記述するとビルド警告がでて、生タグが記載できず、その原因が
unsafeだったので、備忘も兼ねてまとめる
2. hugo.toml の基本
- 役割:Hugoサイト全体の設定を記述するファイル
- 配置場所:
config/_default/hugo.tomlが推奨されているが小規模の場合はサイト直下で⭕️ - 複数環境を作って複数tomlでの管理も可能。
- 対応形式:TOML / YAML / JSON(TOML推奨)
- config.tomlとの違い:Hugo 0.110.0以降は
hugo.tomlがデフォルト名 A
3. TOMLの書き方基礎
# コメントは # から改行まで
title = "サイト名"
baseURL = "https://example.com"
hasCJKLanguage = true
[params]
description = "サイトの説明"
- 文字列・数値・真偽値・日付・配列が使える
[table]でテーブル(連想配列)、[[array]]でテーブルの配列を定義
主な設定項目例
baseURL = "https://example.com"
title = "Typo職人の文化資産庫"
theme = ["PaperMod"]
defaultContentLanguage = "ja"
hasCJKLanguage = true
[params]
dateFormat = "2006-01-02"
description = "文化資産化の実験場"
[markup.goldmark.renderer]
unsafe = true
baseURL:公開URLtheme:使用テーマparams:テーマ固有のパラメータmarkup.goldmark.renderer.unsafe:生HTML許可(事故ポイント)
公式サイト
5. 環境別設定
hugo --environment production
hugo --environment staging
config/_default/hugo.toml(共通設定)config/production/hugo.toml(本番用)config/staging/hugo.toml(ステージング用)- 上書きされるのは差分だけなので、共通設定は
_defaultにまとめる
6. よくある落とし穴
unsafeが false でmd記載の生HTMLが消える(今回の事故)- falseのまま運用ならショートコード作成要
mainSections未設定でトップページが空になる- 環境別設定で
baseURLを書き変え忘れる - 便利な設定ファイルだが機密情報は下手に記載しないこと
7. まとめと再利用ポイント
- hugo.toml は「サイトの設計図」
- 環境別設定で安全運用&効率化
- 再利用部品: Goldmark設定テンプレ
- 環境別GA設定例
- バックアップ手順リンク
🗒 メモ
- tomlでなくても自分が慣れているfront matterでも良い!jsonなど。
- 設定値一覧
- 適用テーマで設定値可能項目名は結構ちがう。