collections.Sort
KEY
在按升序排序切片時是可選的,否則是必需的。在排序切片時,使用字面值 value
來代替 KEY
。以下是範例。
ORDER
可以是 asc
(升序)或 desc
(降序)。默認排序順序為升序。
排序切片
以下範例假設此站點配置:
hugo.
params:
grades:
- b
- a
- c
[params]
grades = ['b', 'a', 'c']
{
"params": {
"grades": [
"b",
"a",
"c"
]
}
}
升序排序
使用以下任一語法將切片元素按升序排列:
{{ sort site.Params.grades }} → [a b c]
{{ sort site.Params.grades "value" "asc" }} → [a b c]
在上述範例中,value
是代表切片元素值的 KEY
。
降序排序
將切片元素按降序排列:
{{ sort site.Params.grades "value" "desc" }} → [c b a]
在此範例中,value
是代表切片元素值的 KEY
。
排序映射
以下範例假設此站點配置:
hugo.
params:
authors:
a:
firstName: Marius
lastName: Pontmercy
b:
firstName: Victor
lastName: Hugo
c:
firstName: Jean
lastName: Valjean
[params]
[params.authors]
[params.authors.a]
firstName = 'Marius'
lastName = 'Pontmercy'
[params.authors.b]
firstName = 'Victor'
lastName = 'Hugo'
[params.authors.c]
firstName = 'Jean'
lastName = 'Valjean'
{
"params": {
"authors": {
"a": {
"firstName": "Marius",
"lastName": "Pontmercy"
},
"b": {
"firstName": "Victor",
"lastName": "Hugo"
},
"c": {
"firstName": "Jean",
"lastName": "Valjean"
}
}
}
}
升序排序
使用以下語法將映射對象按升序排列:
{{ range sort site.Params.authors "firstname" }}
{{ .firstName }}
{{ end }}
{{ range sort site.Params.authors "firstname" "asc" }}
{{ .firstName }}
{{ end }}
這將產生:
Jean Marius Victor
降序排序
將映射對象按降序排列:
{{ range sort site.Params.authors "firstname" "desc" }}
{{ .firstName }}
{{ end }}
這將產生:
Victor Marius Jean
第一級鍵移除
Hugo 在排序映射時會移除第一級鍵。
原始映射:
{
"felix": {
"breed": "malicious",
"type": "cat"
},
"spot": {
"breed": "boxer",
"type": "dog"
}
}
排序後:
[
{
"breed": "malicious",
"type": "cat"
},
{
"breed": "boxer",
"type": "dog"
}
]
排序頁面集合
在此範例中,按 .Type
降序排序站點的常規頁面:
{{ range sort site.RegularPages "Type" "desc" }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}