Skip to content

Wiki.js sidebar lists only Home — the other seven pages are undiscoverable #5

Description

@PhilippTheServer

After docker compose up -d, the sidebar contains a single entry, Home. The other seven
pages are served correctly and can be reached by typing a URL, but nothing in the interface
links to them, so a reader who does not already know the page names cannot find them.

Wiki.js creates a static navigation list at setup containing only Home, and
wikijs/bootstrap.py never replaces it.

tools/check_wikijs.py did not catch this: it asserts each page returns 200 to an anonymous
request, which is true. Reachable is not the same as discoverable, and the check only tested
the first.

Expected once solved

  1. Every published page appears in the sidebar, in a sensible reading order rather than
    alphabetically.
  2. The navigation is visible to anonymous readers, not only to signed-in users.
  3. Adding or removing a page updates the navigation on the next bootstrap run — no
    hand-maintained list.
  4. tools/check_wikijs.py fails when a published page is missing from the navigation an
    anonymous visitor receives.

Activity

  1. PhilippTheServer commented on Aug 26, 2026

    @PhilippTheServer
    ContributorAuthor

    Fixed in #6 (squash-merged as 78cbc25).

    The sidebar is now rebuilt from the pages that actually exist, in reading order, with the
    home page targeted at / and everything else at its own path. Pages outside NAV_ORDER are
    appended alphabetically, so adding a page needs no list maintenance.

    On why the check missed it: it asserted every page returns 200 to an anonymous request,
    which was true — every page was reachable. Reachable is not discoverable, and only the
    first was being tested. It now decodes the base64 sidebar payload Wiki.js hands the theme
    and fails when a published page is absent from it. Against the reported bug it names all
    seven missing pages; against the fix it passes.

    The sidebar is read from what an anonymous request receives rather than from the admin API,
    so the check reflects what a reader without an account actually sees.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions