[Hugo] レイアウトの指定

Hitoshi Arakawa | 2024/12/07 Sat 04:31

Hugo で作成したサイトのテーマを変更することにした。

すると旧テーマで作成したブログページのレイアウトが、一般ページ用のレイアウトになってしまう。新テーマのブログ用のレイアウトにならない。

その原因が分かった。

該当のブログページの Front Matter に type: post と指定されているからだった。これらは WordPress から Hugo に移行したページであり、WordPress からの変換時にそれらの Front Matter に type: post と自動的に記述されたようだ。

参考:
WordPress から Hugo への移行(1)サンプルページの表示まで|荒川仁志
https://note.com/hitoshiarakawa/n/n173b0f492f10

Hugo ではデフォルトでは content ディレクトリーのディレクトリ名が type として指定されるが、自分で type を指定したい場合は Front Matter で記述する。type の種類によって表示のレイアウトが変わる。新レイアウトでは /content/blog 以下にブログ記事のファイルが保存されているので、試しに type: blog としたらちゃんとブログ用のレイアウトに変更された。あるいは type: ~ の行ごと削除すればデフォルトでブログレイアウトになる。

(ただ Front Matter に記述する layout という項目と type の違いは何だろう。これはまだよく分かっていない。)

とりあえず過去の記事すべてにおいて、type: post と書かれた行をすべて削除することにした。

参考:
Hugo の記事ファイルのフロントマターで使用するレイアウトを制御する (type, layout) - まくまく Hugo ノート
https://maku77.github.io/p/m2n8rbu/

コンテンツタイプ · Go & Hugo ドキュメント v5.3
https://juggernautjp.info/content-management/types/

Hugoで始める静的サイト構築入門 静的サイトジェネレーターで作る自作サイト 技術の泉シリーズ (技術の泉シリーズ(NextPublishing)) | meganii | 工学 | Kindleストア | Amazon
https://amzn.to/4ia04JH