HUGO
News Docs Themes Community GitHub

Prev

Returns the previous page in a page collection, relative to the given page.

Syntax

PAGES.Prev PAGE

Returns

page.Pages

Hugo determines the next and previous page by sorting the page collection according to this sorting hierarchy:

Field Precedence Sort direction
weight 1 descending
date 2 descending
linkTitle 3 descending
path 4 descending

The sorted page collection used to determine the next and previous page is independent of other page collections, which may lead to unexpected behavior.

For example, with this content structure:

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

And these templates:

layouts/section.html
{{ range .Pages.ByWeight }}
  <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}
layouts/page.html
{{ $pages := .CurrentSection.Pages.ByWeight }}

{{ with $pages.Prev . }}
  <a href="{{ .RelPermalink }}">Previous</a>
{{ end }}

{{ with $pages.Next . }}
  <a href="{{ .RelPermalink }}">Next</a>
{{ end }}

When you visit page-2:

  • The Prev method points to page-3
  • The Next method points to page-1

To reverse the meaning of next and previous you can chain the Reverse method to the page collection definition:

layouts/page.html
{{ $pages := .CurrentSection.Pages.ByWeight.Reverse }}

{{ with $pages.Prev . }}
  <a href="{{ .RelPermalink }}">Previous</a>
{{ end }}

{{ with $pages.Next . }}
  <a href="{{ .RelPermalink }}">Next</a>
{{ end }}

Last updated: January 1, 0001
Improve this page