使用環境
Name | Version |
---|---|
Hugo | v0.121.1-extended |
OS | Ubuntu 22.04.3 LTS |
まえがき
Hugoのドキュメントに、Template lookup order
のページがあります。
例えば、layouts/_default
ディレクトリの中にsection.html
とlist.html
があったら、section.html
が優先されると書いてあります。
いろんなパターンがあるので、自由度が高いという利点はあります。
逆に欠点は、ルールを定めておかないと、何故、section.html
とlist.html
が混在しているのだろうか?と悩むことも想定されます。*1
私が定めたルールだと、layouts/_default
ディレクトリの中にsection.html
は設置しないので、最終的には削除することになります。
layouts/ _default ディレクトリ
layouts/_default |
---|
baseof.html |
list.html |
single.html |
Section pages
Section pages
は、section名
ディレクトリ、type
ディレクトリに設置する。
汎用性が高い
content | layouts |
---|---|
content/blog/_index.md |
layouts/blog/list.html |
個別に指定
content | layouts |
---|---|
content/a/_index.md |
layouts/type/demolayout.html |
--- type: type layout: demolayout ---
Single pages
Single pages
は、section名
ディレクトリ、page
ディレクトリに設置する。
汎用性が高い
content | layouts |
---|---|
content/blog/a.md |
layouts/blog/single.html |
個別に指定
content | layouts |
---|---|
content/about.md |
layouts/page/demolayout.html |
--- layout: demolayout ---
あとがき
実は、親Sectionの_index.md
と子Sectionの_index.md
で、表示したい内容が違うケースがありました。
いろんな書き方が出来ることに気づきましたが、挙げたらキリがないので、大まかに書きます。
Front Matter
で、type
やlayout
を記述する複数のパターンFront Matter
に記述しない複数のパターン
混在すると、優先されない場合があるので、無難なルールを考察したわけです。
*1:list.htmlが混在してもスルーされるから不要