下一个
Syntax
PAGES.Next PAGE
Returns
page.Page
Hugo 通过按照以下排序层次结构对页面集合进行排序来确定 上一页 和 下一页 :
字段 | 优先级 | 排序方向 |
---|---|---|
weight |
1 | 降序 |
date |
2 | 降序 |
linkTitle |
3 | 降序 |
path |
4 | 降序 |
用于确定 上一页 和 下一页 的已排序页面集合独立于其他页面集合,这可能导致意外行为。
例如,使用以下内容结构:
content/
├── pages/
│ ├── _index.md
│ ├── page-1.md <-- front matter: weight = 10
│ ├── page-2.md <-- front matter: weight = 20
│ └── page-3.md <-- front matter: weight = 30
└── _index.md
以及这些模板:
layouts/_default/list.html
{{ range .Pages.ByWeight}}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}
layouts/_default/single.html
{{ $pages := .CurrentSection.Pages.ByWeight }}
{{ with $pages.Prev . }}
<a href="{{ .RelPermalink }}">Previous</a>
{{ end }}
{{ with $pages.Next . }}
<a href="{{ .RelPermalink }}">Next</a>
{{ end }}
当您访问 page-2 时:
Prev
方法指向 page-3Next
方法指向 page-1
要反转 上一页 和 下一页 的含义,您可以将 Reverse
方法链接到页面集合定义:
layouts/_default/single.html
{{ $pages := .CurrentSection.Pages.ByWeight.Reverse }}
{{ with $pages.Prev . }}
<a href="{{ .RelPermalink }}">Previous</a>
{{ end }}
{{ with $pages.Next . }}
<a href="{{ .RelPermalink }}">Next</a>
{{ end }}