hugo/docs/content/en/methods/page/Pages.md
2023-12-04 15:24:01 +01:00

2.5 KiB

title description categories keywords action
Pages Returns a collection of regular pages within the current section, and section pages of immediate descendant sections.
related returnType signatures
methods/page/RegularPages
methods/page/RegularPagesRecursive
page.Pages
PAGE.Pages

The Pages method on a Page object is available to these page kinds: home, section, taxonomy, and term. The templates for these page kinds receive a page collection in context.

Range through the page collection in your template:

{{ range .Pages.ByTitle }}
  <h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
{{ end }}

Consider this content structure:

content/
├── lessons/
│   ├── lesson-1/
│   │   ├── _index.md
│   │   ├── part-1.md
│   │   └── part-2.md
│   ├── lesson-2/
│   │   ├── resources/
│   │   │   ├── task-list.md
│   │   │   └── worksheet.md
│   │   ├── _index.md
│   │   ├── part-1.md
│   │   └── part-2.md
│   ├── _index.md
│   ├── grading-policy.md
│   └── lesson-plan.md
├── _index.md
├── contact.md
└── legal.md

When rendering the home page, the Pages method returns:

contact.md
legal.md
lessons/_index.md

When rendering the lessons page, the Pages method returns:

lessons/grading-policy.md
lessons/lesson-plan.md
lessons/lesson-1/_index.md
lessons/lesson-2/_index.md

When rendering lesson-1, the Pages method returns:

lessons/lesson-1/part-1.md
lessons/lesson-1/part-2.md

When rendering lesson-2, the Pages method returns:

lessons/lesson-2/part-1.md
lessons/lesson-2/part-2.md
lessons/lesson-2/resources/task-list.md
lessons/lesson-2/resources/worksheet.md

In the last example, the collection includes pages in the resources subdirectory. That directory is not a section---it does not contain an _index.md file. Its contents are part of the lesson-2 section.

{{% note %}} When used with a Site object, the Pages method recursively returns all pages within the site. See details.

{{% /note %}}

{{ range .Site.Pages.ByTitle }}
  <h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
{{ end }}