タクソノミー変数
Hugo のタクソノミー システムは、タクソノミーと用語テンプレートに変数を公開します。
On this page
タクソノミー用語ページの変数
タクソノミー テンプレートによってレンダリングされたページは .Kind
に taxonomy
が設定され、.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
を使用します。
用語テンプレート
用語テンプレートによってレンダリングされるページは、 .Kind
が term
に設定され、.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>
その他の例については、タクソノミー テンプレート を参照してください。