The navigation between pages and their order is generated from parameters in their front-matter. The Table of Contents is auto-generated by Hugo from our section headings.

Ordering parameters

Date

Blog posts and articles are sorted by date if there is no other parameter available. We can add a weight in the front-matter, if we want them to appear earlier or later in listings like the blog. To fix a posting permanently at the beginning of the blog stream for example we give him and only him the weight: 1.

Weight

The most obvious parameter to order the documentation pages of your site is the page weight. The first page gets the smallest weight number, the second page the next bigger one and so on.

That’s easy, but we shouldn’t use continuous numbering in a growing project. We may want to add new pages and sections or reorder existing ones. With continuous numbering we would need to change all numbers again and again to achieve that. Better to leave ample space in the beginning.

For this project I was expecting roughly hundred documentation pages and chose to leave hundred weights for every documentation section, which has only around 10 pages. The first section page (the section list page) got weight: 100, the first page of the second section weight: 200 and so on. Works fine for me.

There are numerous other options with Hugo to order pages which are not used by Perplex. The effort to adapt the templates for specific use cases won’t be great.

Every content section — blog, docs, articles — has its own page navigation at the end of every single page. The Blog Stream is sorted strictly by date and broken down into chunks of several posts, as soon as there are enough.

Documentation

1
2
3
4
5
6
7
8
menu:
  doc:
    name: Navigation
    parent: page
    pre: switch_right
categories: [Layout]
tags: [Navigation]
weight: 640
1
2
3
4
5
6
menu:
  doc:
    identifier: page
    name: Page Elements
    pre: dashboard_customize
weight: 600

Section Navigation

Table of Contents

Perplex is prepared to style the ToC with entries for the three levels from 2 to 4. You can reduce the depth in the markup configuration.