分类法
Syntax
SITE.Taxonomies
Returns
page.TaxonomyList
就概念而言,Site
对象上的 Taxonomies
方法返回如下的数据结构:
分类法 a:
- 术语 1:
- 页面 1
- 页面 2
- 术语 2:
- 页面 1
分类法 b:
- 术语 1:
- 页面 2
- 术语 2:
- 页面 1
- 页面 2
[['分类法 a']]
'术语 1' = ['页面 1', '页面 2']
[['分类法 a']]
'术语 2' = ['页面 1']
[['分类法 b']]
'术语 1' = ['页面 2']
[['分类法 b']]
'术语 2' = ['页面 1', '页面 2']
{
"分类法 a": [
{
"术语 1": [
"页面 1",
"页面 2"
]
},
{
"术语 2": [
"页面 1"
]
}
],
"分类法 b": [
{
"术语 1": [
"页面 2"
]
},
{
"术语 2": [
"页面 1",
"页面 2"
]
}
]
}
例如,在一个书评网站上,您可以创建两个分类法,一个用于体裁,另一个用于作者。
通过以下站点配置:
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
概念上,分类法的数据结构如下:
authors:
- achristie:
- 无人生还
- 尼罗河谋杀案
- ddmaurier:
- 牙买加客栈
- jausten:
- 傲慢与偏见
genres:
- suspense:
- 无人生还
- 尼罗河谋杀案
- 牙买加客栈
- romance:
- 牙买加客栈
- 傲慢与偏见
[[authors]]
achristie = ['无人生还', '尼罗河谋杀案']
[[authors]]
ddmaurier = ['牙买加客栈']
[[authors]]
jausten = ['傲慢与偏见']
[[genres]]
suspense = ['无人生还', '尼罗河谋杀案', '牙买加客栈']
[[genres]]
romance = ['牙买加客栈', '傲慢与偏见']
{
"authors": [
{
"achristie": [
"无人生还",
"尼罗河谋杀案"
]
},
{
"ddmaurier": [
"牙买加客栈"
]
},
{
"jausten": [
"傲慢与偏见"
]
}
],
"genres": [
{
"suspense": [
"无人生还",
"尼罗河谋杀案",
"牙买加客栈"
]
},
{
"romance": [
"牙买加客栈",
"傲慢与偏见"
]
}
]
}
要列出 “悬疑” 图书:
<ul>
{{ range .Site.Taxonomies.genres.suspense }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
Hugo 渲染结果如下:
<ul>
<li><a href="/books/and-then-there-were-none/">无人生还</a></li>
<li><a href="/books/death-on-the-nile/">尼罗河谋杀案</a></li>
<li><a href="/books/jamaica-inn/">牙买加客栈</a></li>
</ul>