Skip to main content

タクソノミー変数

Hugo のタクソノミー システムは、タクソノミーと用語テンプレートに変数を公開します。

タクソノミー用語ページの変数

タクソノミー テンプレートによってレンダリングされたページは .Kindtaxonomy が設定され、.Type にタクソノミー名が設定されます。

タクソノミー テンプレートでは、.Site.Page.Section.File 変数、および以下の タクソノミー 変数にアクセスすることができます:

.Data.Singular
タクソノミーの単数形の名前です (たとえば、 tags => tag)。
.Data.Plural
タクソノミーの複数形の名前です (たとえば、 tags => tags)。
.Data.Pages
この分類法に関連する用語ページのコレクション。 .Pages によってエイリアスされる。
.Data.Terms
このタクソノミーに関連する用語とウェイト (重み付けされた) ページのマップ。
.Data.Terms.Alphabetical
このタクソノミーに関連する用語とウェイト (重み付けされた) ページをアルファベットの昇順で並べたマップ。 Data.Terms.Alphabetical.Reverse でソート順を逆にすることができます。
.Data.Terms.ByCount
このタクソノミーに関連する用語とウェイト (重み付けされた) ページのマップ。 ソート順を逆にするには、 .Data.Terms.ByCount.Reverse を使用します。

用語テンプレート

用語テンプレートによってレンダリングされるページは、 .Kindterm に設定され、.Type がタクソノミー名に設定されます。

用語テンプレートでは、.Site.Page.、.Section、および .File 変数に加えて、以下の 用語 変数にアクセスできます。

.Data.Singular
タクソノミーの単数形の名前 (たとえば、tags => tag)。
.Data.Plural
タクソノミーの複数形の名前 (たとえば、tags => tags)。
.Data.Pages
このタクソノミーに関連するコンテンツページのコレクション。 .Pages によってエイリアスされます。
.Data.Term
用語そのもの (たとえば、tag-one)。

任意のテンプレートからタクソノミーデータにアクセスする

site.Taxonomies を使用して、どのテンプレートからでもタクソノミーのデータ構造全体にアクセスできます。 Tこれは、タクソノミー、用語、および各用語に関連する重み付けされたコンテンツページのコレクションのマップを返します。 たとえば、以下です。

{
  "categories": {
    "news": [
      {
        "Weight": 0,
        "Page": {
          "Title": "Post 1",
          "Date": "2022-12-18T15:13:35-08:00"
          ...
          }
      },
      {
        "Weight": 0,
        "Page": {
          "Title": "Post 2",
          "Date": "2022-12-18T15:13:46-08:00",
          ...
        }
      }
    ]
  },
  "tags": {
    "international": [
      {
        "Weight": 0,
        "Page": {
          "Title": "Post 1",
          "Date": "2021-01-01T00:00:00Z"
          ... 
        }
      }
    ]
  }
}

1つまたは複数の識別子を連結するか、1つまたは複数のキーを持つ index 関数を使用して、タクソノミーのデータ構造のサブセットにアクセスします。 たとえば、ニュース カテゴリに関連する加重コンテンツ ページのコレクションにアクセスするには、以下のいずれかを使用します。

{{ $pages := site.Taxonomies.categories.news }}
{{ $pages := index site.Taxonomies "categories" "news" }}

たとえば、以下のコードは、タクソノミーのデータ構造全体を入れ子の順序なしリストとしてレンダリングします。

<ul>
  {{ range $taxonomy, $terms := site.Taxonomies }}
    <li>
      {{ with site.GetPage $taxonomy }}
        <a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
      {{ end }}
      <ul>
        {{ range $term, $weightedPages := $terms }}
        <li>
          {{ with site.GetPage (path.Join $taxonomy $term) }}
            <a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
          {{ end }}
        </li>
          <ul>
            {{ range $weightedPages }}
              <li>
                <a href="{{ .RelPermalink }}"> {{ .LinkTitle }}</a>
              </li>
            {{ end }}
          </ul>
        {{ end }}
      </ul>
    </li>
  {{ end }}
</ul>

その他の例については、タクソノミー テンプレート を参照してください。