Nächste Überarbeitung | Vorhergehende Überarbeitung |
namespaces [22.04.2024 16:41] – angelegt Nikolaus Müller-Büchele | namespaces [01.07.2024 08:36] (aktuell) – [Löschen von Namensräumen] Nikolaus Müller-Büchele |
---|
===== Namensräume ===== | ===== Namensräume ===== |
Namensräume sind | Man kann sich Namensräume ("namespaces") als Ordner und Seiten mit Seitennamen als Dateien darin vorstellen. Namensräume strukturieren also ein Wiki. |
| |
| Namesräume eigenen sicher außerdem immer dann, wenn ein Teil des Wikis abweichende Seitenelemente wie Header, Fußbereich oder Menu haben soll. Auch wenn Sie unterschiedliche Teile eines Wiki für verschiedene Personengruppen zugänglich machen wollen, sind Namensräume zu empfehlen: so können Sie das Wiki in einen öffentlichen Bereich und einen internen Bereich aufteilen. |
| |
==== Erstellen von Namensräumen ==== | ==== Erstellen von Namensräumen ==== |
Man muss Namensräume nicht separat erstellen; einfach eine Seite mit Doppelpunkt erstellen. Der Teil hinter dem letzten Doppelpunkt wird der Seitenname, alle Teile davor sind Namensräume. Alle Namensräume, die im Seitennamen verwendet werden, und noch nicht existieren, werden von DokuWiki automatisch erstellt. | Man muss Namensräume nicht separat erstellen; einfach eine Seite mit Doppelpunkt erstellen. Der Teil hinter dem letzten Doppelpunkt wird der Seitenname, alle Teile davor sind Namensräume. Alle Namensräume, die im Seitennamen verwendet werden, und noch nicht existieren, werden von DokuWiki automatisch erstellt. |
| |
In DokuWiki werden Seiten wie in jedem anderen Wiki erstellt. Dazu erstellt man einfach einen Link auf eine noch nicht existierende Seite, folgt dem Link und klickt auf "Diese Seite erstellen". Siehe dazu auch [[de:page#neue_seite_erstellen|Neue Seite erstellen]]. | Siehe [[pagename#seiten_anlegen|Seite anlegen]]. |
| |
^Beispiele:^^ | ===== Löschen von Namensräumen ===== |
|beispiel|zeigt auf die Seite "beispiel" im momentanen Namensraum.| | |
|:beispiel|zeigt auf die Seite "beispiel" im Hauptnamensraum,.| | |
|..beispiel\\ ..:beispiel\\ .:..:beispiel|zeigt auf die Seite "beispiel" im **parent** Namensraum| | |
|wiki:beispiel|zeigt auf die Seite "beispiel" im Namensraum "wiki" und "wiki" liegt **direkt im Hauptnamensraum**.| | |
|ns1:ns2:beispiel\\ :ns1:ns2:beispiel|zeigt auf die Seite "beispiel" im Namensraum ns2. ns2 liegt unter ns1; ns1 liegt **direkt im Hauptnamensraum**.| | |
|..ns1:ns2:beispiel\\ ..:ns1:ns2:beispiel|zeigt auf die Seite "beispiel" im Namensraum ns2. ns2 liegt unter ns1. ns1 liegt **neben dem akuellen** Namensraum (ns1 und der aktuelle Namensraum sind im gleichen übergeordneten Verzeichnis, wo auch immer in der Seitenhierarchie dieses übergeordnete Verzeichnis liegt.| | |
|.ns1:ns2:|zeigt auf die "startseite" im Namensraum ns2. ns2 liegt unter ns1; ns1 liegt unter dem aktuellen Namensraum.| | |
| |
:!: Achtung: Die Syntax für relative und absolute interne Verweise ist komplexer im Vergleich zu den Konventionen für relative Verzeichnis- und Dateinamen. | Wenn alle Seiten innerhalb eines Namensraums gelöscht wurden (siehe [[https://wiki.ph-freiburg.de/!handbuch/pagename#seiten_loeschen|Seiten löschen]]), dann existiert auch der Namensraum nicht mehr. DokuWiki löscht normalerweise auch das nun leere Verzeichnis. |
| |
Pfade (von Verzeichnis- und Dateinamen) sind nur dann absolut, wenn sie mit "/" beginnen. | ====== Seitennamen und Namensräume ====== |
| |
Namespace-Verweise sind dagegen absolut, wenn sie mit einem ":"-Präfix beginnen oder kein Präfix haben aber mindestens einen oder mehrere ":" dazwischen (oder als Suffix) enthalten. | So kann man sich die Seite mit dem Seitennamen ''a:b:c'' vorstellen: |
| |
Verweise, die relativ zum aktuellen Namensraum sind, können sowohl mit "." als auch mit ".:" (".." oder "..:" für den übergeordneten Namensraum) beginnen. | <file> |
| |
===== Löschen von Namensräumen ===== | root Namensraum (immer vorhanden) |
| | |
| +-- 'a' Namensraum |
| | |
| +-- 'b' Namensraum |
| | |
| +-- 'c' Seite |
| |
| </file> |
| |
Wenn alle Seiten innerhalb eines Namensraums gelöscht wurden (siehe [[de:page#Löschen einer Seite]]), dann existiert auch der Namensraum nicht mehr. DokuWiki löscht normalerweise auch das nun leere Verzeichnis. | Es ist erlaubt, dass ein Namensraum und eine Seite die gleiche Bezeichnung haben. Den Seitennamen ''b:b'' kann man also folgendermaßen auflösen: |
| |
===== Wie kann man Namensräume umbenennen? ===== | <file> |
==== Manueller Weg ==== | |
| |
Um einen Namensraum umzubenennen, muss man: | root Namensraum (immer vorhanden) |
| | |
| +-- 'b' Namensraum |
| | |
| +-- 'b' Seite (auch die Seite ist mit 'b' benannt) |
| |
* Das Verzeichnis umbenennen, das den Namensraum repräsentiert in: | </file> |
* ''data/pages'' | |
* ''data/media'' (falls dies existiert) | |
* Die Metadaten des Namensraums unter ''data/meta'' löschen | |
* Die Speicherdaten des Namensraums unter ''data/attic'' löschen (oder sie ebenfalls entsprechend verschieben, falls man die alten Versionen beibehalten möchte) | |
| |
Beispielsweise könnte man auf einem Unix-Host wie folgt vorgehen: | |
* ''mv /dokuwiki_base/data/pages/old_namespace /dokuwiki_base/data/pages/new_namespace'' | |
* ''mv /dokuwiki_base/data/media/old_namespace /dokuwiki_base/data/media/new_namespace'' | |
* ''rm -Rf /dokuwiki_base/data/meta/old_namespace'' | |
* ''rm -Rf /dokuwiki_base/data/attic/old_namespace'' | |
| |
Es ist zu beachten, dass die Wörter ''old_namespace'' und/oder ''new_namespace'' kodiert werden müssen, falls sie Nicht-Latin-Zeichen enthalten (z.B. Griechisch, Russische etc.). | Gleiche Bezeichnungen von Seiten und Namensräumen führen also nicht zu Konflikten, da DokuWiki den letzten Teil des gesamten Namens (jenen nach dem letzten Doppelpunkt) als Seitennamen nimmt, alle anderen Teile aber als Namensräume interpretiert. |
| |
* Korrigieren Sie alle Verweise (durch Bearbeitung) zu den Seiten, die im //verschobenen// Namensraum liegen (man kann diese vor dem Verschieben ermitteln, indem man die [[de:backlinks|Backlinks]] jeder Seite begutachtet). | * In ''a:b:c'' sind ''a'' und ''b'' die Namensräume, die Seite selbst heißt ''c''. |
| * In ''a:b'' ist ''a'' der Namensraum und ''b'' der Seitenname. |
| |
* Schauen Sie sich jede einzelne Seite im neuen Namensraum an. Dadurch werden die fehlenden Index-Informationen und Metadaten für die Seiten im verschobenen Namensraum erstellt. | |
| |
Dennoch wird immer noch viel Müll übrig bleiben. Beispielsweise in ''data/changes.log'', verschiedene Dateien im Cache (einschliesslich der ''.idx''-Dateien etc.). Wenn möglich, sollte man von einem ''blank state'' wie folgt beginnen (wieder unter Unix). Aber seien Sie gewarnt, dass dies den Verlust aller historischen Informationen (d.h. ''recent changes'') bedeutet: | |
| |
* ''cat /dev/null > /dokuwiki_base/data/changes.log'' | |
* ''rm -Rf /dokuwiki_base/data/attic/*'' | |
* ''rm -Rf /dokuwiki_base/data/cache/?'' | |
* ''rm -f /dokuwiki_base/data/cache/*.idx'' | |
* ''rm -f /dokuwiki_base/data/cache/purgefile'' | |
* Schauen Sie sich jede einzelne Seite ihres Wiki an. | |
| |
DISCLAIMER: Zugegeben, diese Vorgehensweise ist kompliziert (und möglicherweise habe ich einige Dinge vergessen oder durcheinander gebracht, die Sie ebenfalls beachten sollten). Alles in allem ist es reichlich umständlich. Man kann dafür auch eine Reihe von [[de:plugins|Plugins]] verwenden, die für den (Neu-)Aufbau des Suchindex des kompletten Wiki, für das Löschen des gesamten Cache oder der alten Wiki-Revisionen existieren, um so zu vermeiden, es manuell tun zu müssen. | |
| |
==== Weg über ein Plugin ==== | |
| |
Man kann das Plugin [[plugin:Move]] verwenden, um jede einzelne Seite vom alten Namensraum in den neuen zu verschieben. Bitte lesen Sie die Dokumentation, ob dies ihren Anforderungen entspricht. | |
| |
| |