辞書: Hugoテンプレート

投稿日:

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のテンプレートとして使われることもあります。

  • Section(例: このサイトだと辞書など)
  • Taxonomy List(例: このサイトだとタグなど)
  • Taxonomy Term List(例: このサイトだとタグ: Hugoなど)

Taxonomy

Taxonomy(分類法)のページです。 リストのテンプレートを使ってもいいのですが、 このサイトではタグを使っている数の順に並べるために使用しています。

Single Page

単一のページを表します。

Partial

ページの切れ端を表します。 いろんなページでよく使うものは、このテンプレートを使うと使い回しが出来て便利です 。 ただし、見通しが悪くなることもあるので、要注意ですが。

このサイトでは、例えばタグのリストを作成するためにPartial Templateを使用していま す。