Dokuwiki basiert auf PHP, das Plugin wäre entsprechend ebenfalls PHP.
Ich stelle mir das so vor: Man gibt eine Seite an, z.B. c:navigation.
Die Seite kann beliebigen Text enthalten. Die Seite parsen wir nach Dots ( " *" ) und Links. Links in einem Kapitel kommen in ein Array, Unterkapitel werden weiter eingerückt, so dass eine Liste entsteht. Links, die nicht eingerückt sind können im Design nach Bedarf verbraten werden.
Code: Alles auswählen
[[c:Start|Home]] <- Dieser Link wird immer eingefügt und dieser Text wird immer ignoriert.
* [[Einleitung]]
* [[Seite 1]]
* [[Seite 2]]
* [[Bla]]
* [[Foo]]
* [[Bar]]
Wir brauchen also eine passende Datenstruktur und einen Parser, um die Navigation aufzubauen.
Als nächsten Schritt müssen wir rausfinden, wie wir Navigation in die Seiten bekommen. Auch hier möchte ich lieber automatisch vorgehen und eine Navigation anhand des Seitentitels in die Seite einfügen lassen.
Wird eine Seite gerufen, so wird geprüft, ob für diese Seite oder dessen Namensraum eine Navigation vorgesehen ist, die dann an die Seite angehängt wird.
Für den Namensraum c:* wäre die Navigation c:navigation zuständig, diese wird geparst und geguckt, ob die aufgerufene Seite in c:navigation verlinkt wird. Wenn ja, wird die Navigation entsprechend eingefügt, ansonsten werden lediglich die Standardlinks (hier Home) eingefügt.
Ich möchte die Navigation in einer Datei lagern, damit bei einer Änderung im Aufbau oder im Design nicht alle Wiki-Seiten angefasst werden müssen.
Soweit mein Plan. Ich werde dafür die Tage ein zweites Wiki auf dem Server installieren, damit wir was zum Spielen haben.
Soweit meine Gedanken zum ersten Schritt. Ideen, Kritik und fertige Sourcecodes willkommen