Hugoテンプレートとは
Hugoで使うテンプレートです。
主な概念
特に間違いやすいのがSectionとTaxonomyです。
Section
いわゆる「フォルダ」による分類です。 Hugo 0.22からセクションの ネストが可能になりました。
Taxonomy
Taxonomyは日本語で「分類法」と訳されます。いわゆる「タグ」による分類です。 デフォルトでは"tags"と"categories"の2つがTaxonomyとして扱われます1。
Termという単語がしばしば出てきますが、 Taxonomyが分類自体を表すのに対し、Term(またはTaxonomy Term)は その分類された1つを表します。例えば、「タグ “Hugo”」はTermになります。
基本構造
テンプレートの基本構造はHugo | Lists of Content in Hugoに書かれている図が最も参考になります。
- Homepage : Section = 1 : n
- Section : Page = 1 : n
- Taxonomy : Term = 1 : n
- Term : Page = 1 : n
以下よく使っているものを挙げます。
Base Template
全てのページのベーステンプレートです。
どのページでもだいたい同じのもの(<head>
など)をこのテンプレートで書き、
異なる箇所だけ{{ define "main" }}
のようにブロック化して、
差分だけ各テンプレートに書くのがおすすめです。
Homepage
サイトのトップページを表します。
List
リストのテンプレートです。以下のようなものが該当します。 Homepageのテンプレートとして使われることもあります。
Taxonomy
Taxonomy(分類法)のページです。 リストのテンプレートを使ってもいいのですが、 このサイトではタグを使っている数の順に並べるために使用しています。
Single Page
単一のページを表します。
Partial
ページの切れ端を表します。 いろんなページでよく使うものは、このテンプレートを使うと使い回しが出来て便利です 。 ただし、見通しが悪くなることもあるので、要注意ですが。
このサイトでは、例えばタグのリストを作成するためにPartial Templateを使用していま す。