plasmoid
EN

Navigation from folder structure

plasmoid builds the sidebar from your folder layout — there is no separate nav config to keep in sync. A folder is a section; a .md file is an item.

en/
  index.md                  # the home page (not shown in the sidebar)
  getting-started/          # a sidebar section
    installation.md         # an item
    quickstart.md
  reference/
    cli.md
    configuration.md

Structure is read from the default locale; other locales inherit it and fall back per page (see Localization).

Ordering

Two ways to order things, in priority:

  1. Numeric filename prefixes. Prefix a file or folder with NN- to order it: 01-getting-started/, 02-authoring/. The prefix is stripped from the URL and the title — 01-quickstart.md serves at /…/quickstart/.
  2. _category.toml in a section folder, for explicit control.

Without either, items sort alphabetically and sections sort after any that declare an order.

_category.toml

Drop a _category.toml into a section folder to override its title and ordering:

title = "Getting Started"   # else the folder name, titleized
order = 1                   # lower sorts first; missing sorts last
pages = ["install", "quickstart", "first-build"]
  • title — the section’s sidebar heading.
  • order — the section’s position among sibling sections.
  • pages — explicit page order, by slug (filename without the .md extension and without any NN- prefix). Pages you don’t list follow, in default order.

Every field is optional; an empty or absent _category.toml just means “use the defaults”.

Nested sections

Folders nest to any depth. A folder inside a section becomes a collapsible subsection, rendered as a native <details> disclosure — no JavaScript:

en/
  authoring/
    navigation.md
    advanced/                 # a nested subsection
      _category.toml
      nested-sections.md
      assets-and-images.md

Each level takes its own _category.toml for title and ordering, and the URL mirrors the folder path (/…/authoring/advanced/nested-sections/). The collapsed group for the page you’re on — and all of its ancestors — is expanded automatically at build time, so the reader always sees their place in the tree without any state to manage. See the Advanced subsection below for a live example.

Top-level pages

A .md file directly under the locale root (not in a section folder) becomes a loose top-level sidebar item. index.md is special — it’s the home page, not a sidebar entry.

Active state

The sidebar marks the current page with an active class and aria-current="page" so the reader always knows where they are — no JavaScript required. Within a collapsible nested section, the active page’s whole ancestor trail is expanded.

Last updated: 2026-06-22