Table of Contents
Navigator Auto Theme and Plugin
1. Plugin Layer — "Navigatorlabels" 🎨
This layer provides data and logic to the theme. The folder navigatorlabels must be place in the plugins directrory on your wiki. It will be automatically recognized once you put it there.
Conceptually, the plugin does not render UI.
Here's how it works:
✔ plugin.info.txt
Identity + metadata.
Tells DokuWiki the plugin exists, its name, version, author, and base folder.
✔ syntax.php
Hides the AUTOINDEX marker.
This is the engine that:
- detects “AUTOINDEX”~ (or the custom marker)
- removes it from page output
- signals to the helper/theme that the page contains the marker
This is the “invisible switch” that powers the whole autoindex system.
✔ helper.php
Provides data to the theme.
This is the bridge between plugin and theme.
It exposes:
$this->getConf('label_topics')
$this->getConf('label_latest')
$this->getConf('label_oldest')
$this->getConf('label_az')
$this->getConf('marker_autoindex')
The theme calls this helper to get the vocabulary for the top bar. Buttons can be added.
✔ conf/default.php
Default values for all labels + marker.
$conf['label_topics'] = 'Topics' $conf['label_latest'] = 'Latest' $conf['label_oldest'] = 'Oldest' $conf['label_az'] = 'A–Z' $conf['marker_autoindex'] = '~ ~AUTOINDEX~ ~'
All these labels can be renamed in the Admin Settings. Avoid renaming AUTOINDEX if you already used it in previous articles as that action would break the indexing of past start-pages.
✔ conf/metadata.php
Defines which settings appear in the Configuration Manager.
This is why the admin can change the following without adding a local language file:
Topics Latest Oldest A–Z
✔ AUTOINDEX marker
The use of this file is the reason the plugin is treated as a Configuration Plugin without the need for a language folder.
2. Theme Layer — Navigator Top Bar 🎨
This layer renders the UI and uses the plugin’s data previously discussed.
These files live in the Navigator theme (alpha codename Matumbo).
Let’s walk through them.
🌿 navigator_topbar.php
The visual template for the top bar.
This file outputs the HTML for:
the Topics button the Latest / Oldest / A–Z sort buttons the dropdown panel any icons or separators
It does not contain logic — only markup.
🌿 tpl_functions.php
The brain of the top bar.
This is where the theme:
loads the helper plugin retrieves labels retrieves the marker checks whether the page contains the marker decides whether to show the top bar calls navigator_topbar() and navigator_topics_list()
This file is the integration point between plugin and theme.
🌿 script.js
Client‑side behavior.
Handles:
opening/closing the topics panel toggling sort order animating UI elements any keyboard or click interactions
This is the “feel” of the top bar.
🌿 autolistNavigator.php
Autoindex logic.
This file:
scans the namespace builds the list of pages applies sorting (latest, oldest, A–Z) outputs the list to the dropdown panel
It is the “engine” behind the Topics panel.
🌿 main.php
Main template wrapper.
This is the theme’s core layout file.
It decides:
where the top bar appears how it interacts with the header how the page content flows around it
🌿 tpl_header.php
Header template.
This file:
includes the top bar includes the logo, search, breadcrumbs sets the visual hierarchy
It’s the “frame” around the top bar.
🌿 detail.php
Detail view template. Used when viewing media or special pages.
It ensures the top bar behaves correctly even outside normal wiki pages.
3. How Everything Flows Together 🎨
Here’s the full pipeline:
Modular architecture means each file carries a single, clear responsibility — a small part of a larger conversation. I’m grateful for the opportunity to shape this system.
Allowing administrators to rename the Top Bar buttons gives them the freedom to adjust language or terminology on the fly, without committing to a full multilingual setup. The admin panel remains in English, the quiet lingua franca of programming, while the public vocabulary can adapt to the needs of each wiki.
And at the heart of it all — the reason this theme exists — Navigator offers an automatic, topic‑based listing of articles. It’s a simple way to build information systems quickly, while keeping DokuWiki’s core simplicity untouched.
Tony de Araujo
4. Credits 🌿
Navigator stands on the shoulders of the DokuWiki community. Elements of the template structure, including `detail.php`, trace back to the work of Andreas Gohr and Anika Henke, whose clarity and craftsmanship shaped the foundation on which this theme was built.
The idea of an autoindex marker echoes earlier community experiments, though the implementation here is entirely new.
Everything else — the architecture, the vocabulary, the rhythm of the Top Bar — was designed specifically for Navigator.
Navigator is offered in the same spirit: a small contribution to the shared craft of making quiet, durable tools.



