独学者Fossa

独学していることなど

Hugo Theme作成を考察する

Hugo
Hugo

使用環境

Name Version
Hugo v0.121.1-extended
OS Ubuntu 22.04.3 LTS

まえがき

gohugo.io

Hugoのドキュメントに、Template lookup orderのページがあります。

例えば、layouts/_defaultディレクトリの中にsection.htmllist.htmlがあったら、section.htmlが優先されると書いてあります。

いろんなパターンがあるので、自由度が高いという利点はあります。

逆に欠点は、ルールを定めておかないと、何故、section.htmllist.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で、typelayoutを記述する複数のパターン
  • Front Matterに記述しない複数のパターン


混在すると、優先されない場合があるので、無難なルールを考察したわけです。

*1:list.htmlが混在してもスルーされるから不要