HUGOで独自permalinkを設定したsectionのindexURLの設定方法
HUGOで独自permalinkを設定すると、Sectionのindex(トップ)のURLがディレクトリ名になってしまいます。その場合のSection設定方法をまとめました。
公開日:2020年8月5日
HUGOのPermalinkとSectionの関係
HUGOは、config.tomlでセクション単位のPermalinkを決めることができます。
permalinks:
blog: /b/:year/:month/:day
static: /:slug
}
こう言うやつです。
しかし、これには罠があって、個別ページ(HUGO的には.Kindがpage)にはこのPermalinkルールが適用されますが、indexページ、つまりSetionトップ(HUGO的には.Kindがsection)には適用されません。
上の設定の場合、
/content/blog/_index.md
があった場合に、Setionのトップ(index.html)が生成されますが、
/b/index.html
ではなく、
/blog/index.html
として生成されます。
これでも問題ないと言えばそうなのですが、ディレクトリ階層でパンくずリストを生成している場合などに都合が悪いので、修正が必要です。
SetionトップのURLをPageのPermalinkに合わせる方法
Setionトップの設定は、_index.mdで行うので、そこにurl設定をすれば解決します。
---
title: ブログトップ
PublishDate: "2020-07-27T02:26:45.000Z"
Lastmod: "2020-07-31T12:17:49.000Z"
url: "/b/"
---
Section毎に設定するのはやや面倒な気はしますが、Sectionはそこまでページが多くないので、個別に設定するのが一番の近道です。
なお、この方法で設定しておけば、テンプレートはsection.htmlが適用されます。
他の解決方法としては、「Section名と同じカテゴリ名を設定して、そちらでTaxonomy的に処理する」ことも可能ですが、ビルドが重くなる上にURL的にも重複する可能性が出てくるのでオススメできません。
HUGOで独自permalinkを設定したsectionのindexURLの決め方を見てきました。
この辺りはHUGOの「ファイル構造を前提とする」部分が悪い方向に出てしまっていますが、使い方さえ覚えれば、他の静的サイトジェネレータよりも自由度は高いので、コツを掴めば色々なサイトでHUGOが利用できそうですね。
新着ノート
-
NUXT3
公開日:2023年2月16日
-
NUXT3
公開日:2023年1月30日
新着コード
-
Vue.js
公開日:2022年4月18日
-
Vue.js
公開日:2022年4月13日