DokuWiki

It's better when it's simple

Gebruikershulpmiddelen

Site-hulpmiddelen


nl:namespaces

Namespaces

Een namespace is vergelijkbaar met een map, zoals pagina's vergelijkbaar zijn met bestanden.

In DokuWiki kun je namespaces gebruiken om pagina's te categoriseren. Voor namen van namespaces gelden dezelfde beperkingen als voor paginanamen.

Bij een standaard DokuWiki-installatie wordt twee namespaces meegeleverd: wiki en playground

Aanmaken van Namespaces

Het is niet nodig om namespaces apart aan te maken; het is zo simpel als een pagina maken met dubbelepunten in de paginanaam.

Het gedeelte van de naam na de laatste dubbelepunt zal de paginanaam worden, terwijl de andere gedeelten namespaces worden. Alle namespaces die worden gebruikt in je paginanaam, maar nog niet bestaan, worden automatisch aangemaakt door DokuWiki.

In DokuWiki worden pagina's op dezelfde manier gemaakt als in elke andere wiki. Maak een link in de tekst naar een niet bestaande pagina, klik deze link aan, en klik op “Maak deze pagina aan”. Zie ook Pagina´ s toevoegen.

Examples:
voorbeeld
.voorbeeld
.:voorbeeld
verwijst naar de pagina “voorbeeld” in de huidige namespace.
:voorbeeldverwijst naar de pagina “voorbeeld” in de basis namespace.
..voorbeeld
..:voorbeeld
.:..:voorbeeld
verwijst naar de pagina “voorbeeld” in de ouder namespace
wiki:voorbeeldverwijst naar de pagina “voorbeeld” in de namespace “wiki”. De namespace “wiki” is geplaatst onder de basis namespace.
ns1:ns2:voorbeeld
:ns1:ns2:voorbeeld
verwijst naar de pagina “voorbeeld” in de namespace ns2. De namespace ns2 is geplaatst onder de namespace ns1; de namespace ns1 is geplaatst onder de basis namespace.
.ns1:ns2:voorbeeld
.:ns1:ns2:voorbeeld
verwijst naar de pagina “voorbeeld” in de namespace ns2. De namespace ns2 is geplaatst onder de namespace ns1; de namespace ns1 is geplaatst onder de huidige namespace.
..ns1:ns2:voorbeeld
..:ns1:ns2:voorbeeld
verwijst naar de pagina “voorbeeld” in de namespace ns2. De namespace ns2 is geplaatst onder de namespace ns1; de namespace ns1 is geplaatst naast de huidige namespace (i.e. beide ns1 en de huidige namespace zijn onder dezelfde ouder namespace, onafhankelijk van waar die ouder namespace geplaatst is de namespacestructuur).
.ns1:ns2:
.:ns1:ns2:
verwijst naar de pagina “start” in de namespace ns2. De namespace ns2 is geplaatst onder de namespace ns1; de namespace ns1 is geplaatst onder de huidige namespace.

(De standaard pagina kan ook anders genoemd worden dan “start” door het wijzigen van de configuratieinstelling startpage.)

:!: Gotcha: De syntax voor relatieve en absolute interne links zijn niet-uniek en erg verwant aan de map- en bestandsconventies.

Paden zijn absoluut als en alleen als zij starten met “/”.

Links zijn absolute als en alleen als zij een “:” voorvoegsel hebben of als ze geen voorvoegsel hebben, maar een tussen (of eind) “:”

Links die zijn relatief tot de huidige namespace beginnen met of “.” of “.:” (“..” of “..:” voor de ouder namespace).

Verwijderen van Namespaces

Wanneer alle pagina's in een namespace zijn verwijderd (zie verwijder een pagina) bestaat deze logischerwijs niet meer. Normaal verwijdert DokuWiki de lege mappen dan ook.

Hoe hernoem je namespaces?

Handmatige aanpak

Om een handmatig een namespace te hernoemen moet je:

  • Hernoem de mappen die de namespace vertegenwoordigen in:
    • data/pages
    • data/media (als deze bestaat)
  • Verwijder de metadata voor deze namespace onder data/meta
  • Verwijder revisiegegevens voor de namespace onder data/attic (of verplaats die ook naar de nieuwe map als je de ouder versies wilt bewaren)

Bijvoorbeeld, op een Unix-systeem, kun je:

  • mv /dokuwiki_base/data/pages/oude_namespace /dokuwiki_base/data/pages/nieuwe_namespace
  • mv /dokuwiki_base/data/media/oude_namespace /dokuwiki_base/data/media/nieuwe_namespace
  • rm -Rf /dokuwiki_base/data/meta/oude_namespace
  • verwijder: rm -Rf /dokuwiki_base/data/attic/oude_namespace
    of verplaats: mv /dokuwiki_base/data/attic/oude_namespace /dokuwiki_base/data/attic/nieuwe_namespace

Merk op dat het nodig kan zijn de oude_namespace en/of nieuwe_namespace woorden te encoderen als zij een niet-Latijns tekenset gebruiken (bijv: Grieks, Russisch, etc).

  • Corrigeer (door ze te bewerken) alle links naar de pagina's onder de verplaatste namespace (je kunt deze ontdekken door voor het verplaatsen van de namespace dit te onderzoeken met backlinks van elke pagina).
  • Blader langs elke pagina in de nieuwe namespace. Dit zal alle missende index informatie en metadata aanmaken voor de pagina's in de verplaatste namespace.

Hoewel, je houdt nog een boel rommel op allerlei plaatsen. Bijvoorbeeld in data/changes.log, verschillende bestanden in de cache (inclusief de .idx bestanden etc). Als het mogelijk is kun je starten met een schone situatie op de volgende manier (weer uitgelegd voor Unix), maar wees gewaarschuwd: dit zal betekenen dat alle historische informatie (bijv. recente wijzigingen) verdwijnt:

  • cat /dev/null > /dokuwiki_base/data/changes.log
  • rm -Rf /dokuwiki_base/data/attic/*
  • rm -Rf /dokuwiki_base/data/cache/?
  • rm -Rf /dokuwiki_base/data/cache/*.idx
  • rm -Rf /dokuwiki_base/data/cache/purgefile
  • Blader langs elke pagina van je Wiki.

DISCLAIMER: I begrijp dat dit gecompliceerd is (misschien heb ik ook nog een paar dingen vergeten die je ook moet doen). Alles bij elkaar is dit omslachtig. Je kunt ook een paar plugins gebruiken die beschikbaar zijn om de index voor de complete wiki (opnieuw) op te bouwen, de hele cache weggooien en/of oude wiki revisies dus vermijden dat je dit handmatig moet doen.

Plugin aanpak

Je kunt ook een door derden gemaakte plugin PageMove gebruiken om pagina's te verplaatsetn van de oude namespace naar de nieuwe. Raadpleeg alsjeblieft de documentatie om te zien of dit past bij je situatie. Opmerking - de PageMove plugin werkt niet en is op dit moment afgekeurd

Een nieuw alternatief is de editx plugin.

Namespace standaardverwijzingen

Het is mogelijk om naar een standaard bestand in een namespace te verwijzen door de linkid te eindigen op een dubbelepunt: [[foo:bar:]]. Naar welke pagina de link verwijst is afhankelijk van het bestaan van bepaalde bestanden. Voor [[foo:bar:]] worden de volgende pagina's gecontroleerd:

foo:bar:$conf['start']
foo:bar:bar
foo:bar

De pagina's worden gecontroleerd in die volgorde en naar de pagina die het eerste gevonden wordt verwezen. Auto-meervoud verwijzen wordt niet gedaan voor deze links.

nl/namespaces.txt · Laatst gewijzigd: 2015-03-17 14:05 door 217.111.210.43

Tenzij anders vermeld valt de inhoud van deze wiki onder de volgende licentie: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki