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 }}