collections.Sort
语法
collections.Sort COLLECTION [KEY] [ORDER]
返回
any
别名
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 }}