Navigation Menu

Th' navigat'n menu be automatically created from yer rrrambl'n files.

All configurat'ns opt'ns apply t' all planks but can be changed 'n each page’s front matter.

Expand State o' Nested Sect'ns

Opt'n Front Matter Ye can change how th' theme submenus appear wit' alwaysopen.

If alwaysopen=false fer any given entry, its children will not be shown 'n th' menu as long as it be not necessary fer th' sake o' navigat'n.

Th' theme generates th' expand state based on th' follow'n rules:

  • all parent entries o' th' active plank includ'n their vis'ble sibl'ns be shown regardless o' any sett'ns
  • immediate child entries o' th' active plank be shown regardless o' any sett'ns
  • if not overridden, all other first level entries behave like they would have been given alwaysopen=false
  • if not overridden, all other entries o' levels besides th' first behave like they would have been given alwaysopen=true
  • all vis'ble entries show their immediate child entries if alwaysopen=true; this proceeds recursively
  • all remain'n entries be not shown
alwaysopen = false
alwaysopen: false
{
   "alwaysopen": false
}

Expander fer Nested Sect'ns

Opt'n Front Matter Set collapsibleMenu=true t' add an expander fer submenus. This shows submenus as collaps'ble trees wit' a click'ble expander.

collapsibleMenu = true
collapsibleMenu: true
{
   "collapsibleMenu": true
}
Arrr

Us'n this opt'n may slow down yer build process, especially wit' many planks.

We’ve seen builds tak'n 2 minutes wit' 1000+ planks, an' over 30 minutes wit' 5000+ planks.

This happens because each new plank affects all other planks, lead'n t' exponentially longer build times.

Order'n Sibl'n Menu Entries

By Weight

Cap'n Hugo provides a simple way t' handle order fer yer planks by sett'n th' weight front matter t' a number.

+++
title = 'My page'
weight = 5
+++
---
title: My plank
weight: 5
---
{
   "title": "My page",
   "weight": 5
}

By Other

Opt'n Front Matter Us'n th' weight fer sort'n can get cumbersome if ye, fer example, just want t' sort alphabetically. Each time ye add a new plank 'n th' set o' planks, ye may have t' renumber some or all o' them t' make space fer th' new plank.

ordersectionsby = 'linktitle'
ordersectionsby: linktitle
{
   "ordersectionsby": "linktitle"
}

Custom Title fer Menu Entries

By default, th' Relearrrn theme will use a page’s title front matter fer th' menu entry.

Front Matter But a page’s title has t' be descriptive on its own while th' menu be a hierarchy. Use linkTitle t' shorten th' text o' th' menu entry.

For example fer a plank named install/linux.md

+++
linkTitle = 'Linux'
title = 'Install on Linux'
+++
---
linkTitle: Linux
title: Install on Linux
---
{
   "linkTitle": "Linux",
   "title": "Install on Linux"
}

Add Ay'con t' a Menu Entry

Front Matter In th' plank front matter, add a menuPre t' insert any HTML code before th' menu label. Ye can also set menuPost t' insert HTML code after th' menu label.

Th' example below uses th' GitHub ay'con.

+++
menuPre = '<i class="fab fa-github"></i> '
title = 'GitHub Repo'
+++
---
menuPre: '<i class="fab fa-github"></i> '
title: GitHub Repo
---
{
   "menuPre": "\u003ci class=\"fab fa-github\"\u003e\u003c/i\u003e ",
   "title": "GitHub Repo"
}

Title wit' icon Title wit' icon

Dis'ble Sect'n Planks

Ye may want t' structure yer planks 'n a hierarchical way but don’t want t' generate planks fer those sections? Th' theme got ye covered.

T' stay wit' th' initial example: Suppose ye want first-chapter/first-page appear 'n th' sidebar but don’t want t' generate a plank fer it. So th' entry 'n th' sidebar should not be click'ble but should show an expander.

For this, open content/first-chapter/first-page/_index.md an' add th' follow'n front matter

+++
collapsibleMenu = true

[_build]
  render = 'never'
+++
---
_build:
  render: never
collapsibleMenu: true
---
{
   "_build": {
      "render": "never"
   },
   "collapsibleMenu": true
}