~/Blog

Brandon Rozek

Photo of Brandon Rozek

PhD Student @ RPI, Writer of Tidbits, 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 }}

Have any questions or want to chat: Reply via Email

Enjoyed this post?

Published a response to this? :