Count
Count
方法在 Taxonomy
物件中回傳給定的 詞彙 所關聯的 加權頁面 數量。
在我們可以使用 Taxonomy
方法之前,我們需要先捕捉 Taxonomy
物件。
捕捉一個 Taxonomy 物件
考慮以下的網站配置:
hugo.
taxonomies:
author: authors
genre: genres
[taxonomies]
author = 'authors'
genre = 'genres'
{
"taxonomies": {
"author": "authors",
"genre": "genres"
}
}
以及這個內容結構:
content/
├── books/
│ ├── and-then-there-were-none.md --> genres: suspense
│ ├── death-on-the-nile.md --> genres: suspense
│ └── jamaica-inn.md --> genres: suspense, romance
│ └── pride-and-prejudice.md --> genres: romance
└── _index.md
要從任何範本中捕捉 “genres” 的 Taxonomy
物件,請使用 Site
物件上的 Taxonomies
方法。
{{ $taxonomyObject := .Site.Taxonomies.genres }}
在渲染其頁面時,要捕捉 “genres” 的 Taxonomy
物件,請使用頁面的 Data
物件上的 Terms
方法:
layouts/_default/taxonomy.html
{{ $taxonomyObject := .Data.Terms }}
要檢查資料結構:
<pre>{{ debug.Dump $taxonomyObject }}</pre>
雖然 Alphabetical
和 ByCount
方法提供了更適合範圍遍歷的資料結構,但您也可以直接從 Taxonomy
物件渲染按類別加權的頁面:
{{ range $term, $weightedPages := $taxonomyObject }}
<h2><a href="{{ .Page.RelPermalink }}">{{ .Page.LinkTitle }}</a></h2>
<ul>
{{ range $weightedPages }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
{{ end }}
在上面的範例中,第一個錨點元素是指向該類別頁面的連結。
計算加權頁面數量
現在,我們已經捕捉到「genres」分類物件,接下來讓我們計算「suspense」這個詞彙所關聯的加權頁面數量:
{{ $taxonomyObject.Count "suspense" }} → 3