Blog

Brandon Rozek

Photo of Brandon Rozek

Software Developer, Researcher, and Linux Enthusiast.

Hiding Section From Listing in Hugo

Published on

Updated on

In Hugo you can list all the sections using the following code

{{ range .Site.Sections }}
  <li><a href="{{ .Permalink }}">{{ .Title }}</a></li>
{{ end }}

However what if there’s a section that you want to hide for whatever reason? Let us say that you have a section labeled “unlisted” that you want to hide. The directory structure can look like this:

content/
  posts/
  unlisted/
  bookmarks/
// ...

There are two types of hidden that I can think of:

  • You don’t want any pages within unlisted to render at all.
  • You want it to render, but not appear in the section listing

For the first case, Filosophy suggests to rename the section so that it starts with a dot. For example, .unlisted.

For the second case, we need to introduce a page variable to help us choose when to display it. Let us call that page variable hidden. To set it to true, you need to add it to the frontmatter of content/unlisted/_index.md.

---
hidden: true
---

Then replace the listing code with the following:

{{ range .Site.Sections }}
  {{ if not .Params.hidden }}
    <li><a href="{{ .Permalink }}">{{ .Title }}</a></li>
  {{ end }}
{{ end }}
Reply via Email

Have you published a response to this? :