Alphabetical
返回按術語字母順序排序的有序分類法。
Syntax
TAXONOMY.Alphabetical
Returns
page.OrderedTaxonomy
Taxonomy 對象上的 Alphabetical 方法返回 有序分類法,按 術語 字母順序排序。
雖然 Taxonomy 對象是 映射,但有序分類法是 切片,其中每個元素是包含術語和其 加權頁面 切片的對象。
在使用 Taxonomy 方法之前,我們需要獲取一個 Taxonomy 對象。
獲取分類法對象
考慮此站點配置:
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/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"分類法對象,讓我們獲取按術語字母順序排序的有序分類法:
{{ $taxonomyObject.Alphabetical }}要反轉排序順序:
{{ $taxonomyObject.Alphabetical.Reverse }}要檢查數據結構:
<pre>{{ debug.Dump $taxonomyObject.Alphabetical }}</pre>有序分類法是一個切片,其中每個元素是一個對象,包含術語及其加權頁面切片。
切片的每個元素提供以下方法:
- Count
- (
int) 返回分配給術語的頁面數量。 - Page
- (
page.Page) 返回術語的Page對象,用於鏈接到術語頁面。 - Pages
- (
page.Pages) 返回包含分配給術語的Page對象的Pages對象,按 分類權重 排序。要排序或分組,請使用Pages對象可用的任何 方法。例如,按最後修改日期排序。 - Term
- (
string) 返回術語名稱。 - WeightedPages
- (
page.WeightedPages) 返回分配給術語的加權頁面切片,按分類權重排序。上面的Pages方法更靈活,允許您排序和分組。
示例
使用此模板:
{{ range $taxonomyObject.Alphabetical }}
<h2><a href="{{ .Page.RelPermalink }}">{{ .Page.LinkTitle }}</a> ({{ .Count }})</h2>
<ul>
{{ range .Pages.ByTitle }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{ end }}
</ul>
{{ end }}Hugo 渲染:
<h2><a href="/genres/romance/">romance</a> (2)</h2>
<ul>
<li><a href="/books/jamaica-inn/">Jamaica inn</a></li>
<li><a href="/books/pride-and-prejudice/">Pride and prejudice</a></li>
</ul>
<h2><a href="/genres/suspense/">suspense</a> (3)</h2>
<ul>
<li><a href="/books/and-then-there-were-none/">And then there were none</a></li>
<li><a href="/books/death-on-the-nile/">Death on the nile</a></li>
<li><a href="/books/jamaica-inn/">Jamaica inn</a></li>
</ul>