Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
PageTree
– Modul zur Darstellung und Verwaltung hierarchisch strukturierter Wiki-Seiten.
Aus ein und derselben Seitendefinition können unterschiedliche – konsistente – Darstellungen generiert werden:
- Aufgeklappter Pfad zu einer aktuellen Seite, wie er in Linkboxen gezeigt wird, nebst Schwestereinträgen
- Liste aller Seiten
- „Sitemap“ mit der vollständigen Baumstruktur
Die Seitenstruktur wird über ein entsprechendes Untermodul definiert.
Funktionen für Vorlagen
Alle Funktionen haben einen unbenannten Pflichtparameter mit dem Bezeichner der Struktur. Weitere benannte Parameter können angegeben werden.
Der Rückgabewert ist eine Zeichenkette entsprechend Anforderung und aktuellem Seitennamen; auch leer oder Fehlermeldung.
- all
- Liste alle Einträge als (nicht-hierarchische) Liste in alphabetischer Ordnung auf.
- Parameter:
list lazy
- check
- Überprüfe alle Einträge (auf Existenz der Seite), sofern ein Linkziel.
- Parameter:
linked
– Ist Weiterleitung alsshift
deklariert? - path
- Stelle Pfad zum aktuellen Eintrag dar, nebst jeweiligen Schwestereinträgen in vorgegebener Ordnung.
- subpages
- Stelle Abfolge der Unterseiten dar.
- Parameter:
template
– Abfolge an die benannte Vorlage übergeben. - tree
- Stelle alle Einträge als Baumstruktur in vorgegebener Ordnung dar.
- Parameter:
list lazy
Parameter beim Funktionsaufruf
- 1
- Bezeichner der Struktur
- Pflichtparameter
- lazy
- Verwende neutraleres Aufzählungszeichen.
- Vorgabe:
#
in Gesamtdarstellungen,*
beimpath
- Neutraler:
*
bzw.:
- level
- Keine Unterseiten zeigen.
- Vorgabe: Unterseiten zeigen.
- linked
- Weiterleitungen (
shift
) zeigen. - Vorgabe: Keine Weiterleitungen zeigen.
- list
- Alles auflisten.
- Vorgabe: Mit
list=false
gekennzeichnete Seiteneinträge nicht zeigen. - template
- Name einer Vorlage für Unterseiten.
template=Subpage
Parameter, deren Name mit l
beginnt, sind gesetzt, wenn ihnen eine 1
zugewiesen wird.
Definition einer Struktur
Es wird die Definition in einem Untermodul erwartet, dessen Strukturbezeichner an Modul:PageTree/
angehängt wird.
Format des Untermoduls
- Das Untermodul muss die Bedingungen von mw.loadData() erfüllen.
- Es ist eine table zurückzugeben.
Die folgenden Komponenten können in der table geliefert werden:
- stamp
- Datum/Uhrzeit gemäß ISO 8601
- start
- Präfix; ersetzt führenden
/
in Seitennamen - sub
- Bezeichner eines Unter-Untermoduls relativ zum momentanen Untermodul; ohne führenden
/
- Das Unter-Untermodul wird im Anschluss nach genau gleichen Regeln importiert.
- Für wiederholte Deklarationen gilt:
- pages
- Liste von Seiten-Einträgen als table – jeweils gemäß Seiteneintragsformat
Format eines Seiteneintrags
Ein Seiteneintrag kann auf eine von drei Arten in der table pages
enthalten sein:
- Zeichenkette
"Seitenname"
- Benanntes Element mit weiteren Einzelheiten
["Seitenname"] = { detailA= ... }
- Ein benanntes Element muss statt der Zeichenkette mit dem Seitennamen den Wert
true
enthalten. Dies ist das root-Element.
- table mit Einzelheiten; Seitenname ist
seed
-Element.{ seed="Seitenname", detailA= ... }
Jeder Seitenname darf nur genau einmal in einer table pages
auftreten.
Jeder Eintrag kann die folgenden Eigenschaften enthalten:
- seed
- Seitenname als Zeichenkette; oder
true
beim root-Element. - Pflichtangabe
- Wenn fehlt, aber benanntes Element, wird der Bezeichner des Elements benutzt.
- Wenn Element keine table, sondern Zeichenkette, dann wird diese als Seitenname benutzt.
- Wenn mit
/
beginnend, wird relativ zustart
verlinkt. - shift
- Ziel einer Weiterleitung
- Wenn mit
/
beginnend, wird relativ zustart
verlinkt. - show
- Angezeigter Linktitel
- Vorgabe: Letztes Unterseiten-Segment; oder sonst Seitentitel ohne Namensraum.
suffix- Zusätzlicher Text nach der verlinkten Seite
- super
- Oberseite in der Hierachie; Zeichenkette oder
true
. - Wenn mit
/
beginnend, wird relativ zustart
verlinkt. - Vorgabe: nächste Oberseite vor
/
. - list
- Anzeige standardmäßig unterdrücken, sofern Darstellung nicht mit list abgefordert.
- Vorgabe: zeigen.
- Zuweisung:
list=false
- index
- Numerische Sortierfolge.
- Vorgabe: alphabetisch nach Seitenname bzw. Linktitel.
Funktionen für Lua-Module
Es gibt eine Funktion zu Testzwecken:
- p.test(args)
args
sind die Argumente, die sonst beim#invoke
angegeben werden würden. Zusätzlich können (müssen) enthalten sein:args.self
– verwenden als aktuellen Seitennamenargs.series
– Bezeichner der Struktur an Stelle von 1.args.service
– Aktionsart; Name der Funktionargs.suite
– Pfad zum Modul; hier:Modul:PageTree
Verwendung
Allgemeine Bibliothek; nicht eingegrenzt.
Bekannte Anwendungen:
- Modul:PageTree/Hilfe: – Hilfe-Namensraum
- Modul:PageTree/WP:Technik – Technik-Seiten