Files
2026-06-18 16:28:21 +02:00

1.4 KiB

title, description, categories, keywords, params
title description categories keywords params
MainSections Returns a slice of the main section names as defined in your project configuration, falling back to the top-level section with the most pages.
functions_and_methods
returnType signatures
[]string
SITE.MainSections

Project configuration:

{{< code-toggle file=hugo >}} mainSections = ['books','films'] {{< /code-toggle >}}

Template:

{{ .Site.MainSections }} → [books films]

If mainSections is not defined in your project configuration, this method returns a slice with one element---the top-level section with the most pages.

With this content structure, the films section has the most pages:

content/
├── books/
│   ├── book-1.md
│   └── book-2.md
├── films/
│   ├── film-1.md
│   ├── film-2.md
│   └── film-3.md
└── _index.md

Template:

{{ .Site.MainSections }} → [films]

When creating a theme, instead of hardcoding section names when listing the most relevant pages on the front page, instruct users to set mainSections in their project configuration.

Then your home template can do something like this:

{{ range where .Site.RegularPages "Section" "in" .Site.MainSections }}
  <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}