Navigatie in MediaWiki

(opgelet: meer scratchpad voor mezelf dan wat anders — ik zou hier eigenlijk eens een heel lang document moeten over maken)

Ik werk graag met MediaWiki.

MediaWiki is de software waarop Wikipedia draait, en een mens moet maar kijken naar Wikipedia om te zien dat er serieus complexe dingen te maken zijn met MediaWiki.

We gebruiken het al jaren bij Gentblogt, onder meer voor redactieplanning. En ik gebruik het ook al jaren op het werk, voor documentatietrajecten en stijlgidsen en handleidingen allerhande. A little elbow grease, a basic template or two and some transclusions go a long way, zeg ik dan meestal als er een opleiding moet gegeven worden over hoe die MediaWiki werkt met navigatie en dingen.

Neem bijvoorbeeld dat er een stuk documentatie is dat er zo uitziet:

1. Proloog
1.1. Welgekomen
1.2. Deze handleiding gebruiken
1.3. Afspraken
2. Hardware
2.1. De computer
2.2. Toetsenbord en muis
2.3. Monitors

2.9. Kabels
3. Software
3.1. OS
3.2. Office
3.3. Grafisch

Pakweg twee hoofdniveaus, onder elk item van niveau 2 zouden er nog redelijk wat pagina’s kunnen zitten, en die structuur ligt eigenlijk niet echt vast: er kan vanalles veranderen, dus er mag niet al te veel manueel werk aan zijn om een navigatie op te stellen.

Het eerste dat ik doe, is een template maken voor een navigatiedoosje, dat ik meestal rechtsboven elke pagina zet . Bij Gentblogt is het een eenvoudige lijst van maanden en jaren en een kleine legende:

Screen shot 2011-05-03 at 23.17.23.png

Bij Adhese is het een navigatie in een structuur zoals in het voorbeeld, waarvan telkens één van de dingen op niveau 1 opengeklapt is, en de dingen onder dat niveau zichtbaar zijn in het menu:

Screen shot 2011-05-03 at 23.21.18.png

De template noem ik meestal Navbox; erin staat iets als:

<div style=”width:300px; float:right; background-color: #eee; border: 1px solid #999; padding: 1.0em; margin: 0 0 1.0em 1.0em;”>{{{1}}}</div>

Ik zet op elke pagina die navigatie moet meekrijgen het volgende:

{{navbox|navigatie-inhoud}}

…en waar in de template {{{1}}} staaat, wordt die vervangen door navigatie-inhoud. Ik zou dat kunnen hardcoden, natuurlijk, maar aangezien die navigaties nogal de neiging hebben om regelmatig te veranderen, zet ik op alle pagina’s onder “2. Hardware” niet iets als

{{navbox|
1. Proloog
2. Hardware
2.1. De computer
2.2. Toetsenbord en muis
2.3. Monitors

2.9. Kabels
3. Software

}}

…maar wel iets in de zin van

{{navbox|{{:Hardware nav}}}}

{{:Hardware nav}} bevat de navigatie die op alle Hardware-pagina’s moet komen, en is een aparte pagina die getranscludeerd wordt in de navigatiebox.

Maar wacht! Het wordt nog leutiger. Want op de Hardware nav-pagina zet ik niét dit:

1. Proloog
2. Hardware
2.1. De computer
2.2. Toetsenbord en muis
2.3. Monitors

2.9. Kabels
3. Software

…maar wel iets als

1. Proloog
2. Hardware
{{:Hardware items}}
3. Software

Waarom? Omdat de lijst van dingen op niveau 2 onder Hardware niet alleen in de navigatie gebruikt worden, maar bijvoorbeeld ook op de hoofdpagina van Hardware, en in een sitemap, die er zo kan uitzien:

1. Proloog
{{:Proloog items}}
2. Hardware
{{:Hardware items}}
3. Software
{{:Software items}}

Oh, wacht, ‘t is nog niet gedaan. Omdat gelijk welke boomstructuur meestal toch maar dingen onvindbaar maakt, zorg ik ervoor dat er altijd een index van alle pagina’s beschikbaar is. Gelukkig is dat doodeenvoudig, met MediaWiki: gewoon in de navbox-template, die dus op elke pagina met navigatie gebruikt wordt, een categorie-ding toevoegen. En ervoor zorgen dat dat enkel bij include gebruikt wordt, natuurlijk, zodat alle pagina’s met een navigatie in een categorie “A-Z” terechtkomen. .

Dat geeft dan, allemaal in echte wikisyntax gezet:

Alle pagina’s onder Hardware

{{navbox|{{:Hardware nav}}}}
Inhoud van de pagina, yada yada.

Template:Navbox

<div style=”width:300px; float:right; background-color: #eee; border: 1px solid #999; padding: 1.0em; margin: 0 0 1.0em 1.0em;”>{{{1}}}</div>
<includeonly>[[Category:A-Z]]</includeonly>

Hardware nav

{{T|[[Proloog]]}}
{{T1|[[Hardware]]}}
{{:Hardware items}}
{{T|[[Software]]}}

Hardware items

* [[De computer]]
* [[Toetsenbord en muis]]
* [[Monitors]]
...
* [[Kabels]]

Ah, euh, ja. Die {{T|…}} en {{T1|…}} zorgen voor een iets meer propere navigatie. Ik zou kunnen degelijke dingen doen met css, maar ik ben lui en dus doe ik het met templates:

T

<div style=”font-size: 1.2em; border-bottom: 1px solid #ccc; padding-bottom: 0.2em; margin-bottom: 0.5em;”>{{{1}}}</div>

T1

<div style=”font-size: 1.2em; “>”’{{{1}}}”’</div>>

…en dat geeft dus dat ding van hierboven. En een propere A-Z-lijst. En een navigatie die voldoende flexibel is en haar werk doet.

Volgende keer (ha, wie houd ik voor de zot?) meer over sub-subnavigatie, over hoe een taxonomie op te zetten met categorieën en templates, over strategieën voor discussie (on-wiki of niet? anoniem of niet? in-line of niet of een combinatie van wel en niet?), over versiebeheer en archivering, over workflows, rechten en authenticatie, over meertaligheid, en over advanced templating met condities en gerief.

En dan was er ook nog die cursus hoe krijg ik een werkende wiki ingeburgerd in mijn niet-wiki-georiënteerd bedrijf/instelling/overheid/groepuscule en natuurlijk ook nog de cursus hoe past zo’n ding in document management en intranetten en al of nog de cursus hey ik wil van change management doen en dink. Tjaha.

Elders over misschien hetzelfde

19.07.2013: 11% | 25.03.2013: Op zoek naar volk | 28.01.2013: Evaluatie | 06.01.2013: Einde vakantie, begin 2013 | 28.12.2012: De laatste | 20.12.2012: Een dagje Amsterdam | 15.12.2012: Vergaderingen, vergaderingen | 14.12.2012: Feestje! | 16.08.2012: Eerste werkdag | 12.04.2012: Echappée belle

One Comment

  • Heel interessant en net op het goede moment. Ik ben namelijk bezig met de implementatie van Wikimedia als kennisdatabank binnen mijn departement.
    Ik kijk al uit naar de volgende artikelen!

Zeg uw gedacht

Vriendjes

<insert standard disclaimer>

Alles wat hier staat is mijn eigen opinie. Het wordt niet nagelezen of goedgekeurd door mijn werkgever voor het on-line komt, en ik bied geen enkele garantie voor kwaliteit of correctheid.

Mijn werkgever is het niet noodzakelijk eens met wat ik schrijf, en het spreekt vanzelf dat hij dan ook op geen enkele wijze aansprakelijk kan zijn voor wat ik hier publiceer.