Navigator

A Theme for DokuWiki

User Tools

Site Tools


navigator:navigator_labels_plugin

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:

Basic Navigatorlabels Plugin Layout


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).

Loyout for the top bar in the Navigator theme

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:

Navigator theme layout pipeline. How everything flows

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.


navigator/navigator_labels_plugin.txt · Last modified: by editor