Wikipedia:Lua/Modul/PageTree/de
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
WerkelnAlle Funktionen (ausgenommen failsafe) 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:
light lineup list lazy stamped suppress
- check
- Überprüfe alle Einträge (auf Existenz der Seite), sofern ein Linkziel.
- Parameter:
linked
– Ist jede Weiterleitung alsshift
deklariert? - path
- Stelle Pfad zum aktuellen Eintrag dar, nebst jeweiligen Schwestereinträgen in vorgegebener Ordnung.
- Parameter:
lazy segment
- subpages
- Stelle Abfolge der Unterseiten dar.
- Parameter:
subpager
– Abfolge an die benannte Vorlage übergeben. - tree
- Stelle alle Einträge als Baumstruktur in vorgegebener Ordnung dar.
- Parameter:
list lazy segment stamped suppress
- failsafe
- Versionsbezeichnung (lokal):
2018-09-13
- Optionaler Zusatzparameter:
1
– Mindestversionsbezeichnung oderwikidata
- Rückgabewert:
- Leer, falls Mindestversionsbezeichnung nicht erfüllt
- Versionsbezeichnung (auf Wikidata registriert:
2018-09-13
beiwikidata
) oder lokal falls dort keine gefunden
Parameter beim Funktionsaufruf
Werkeln- 1
- Bezeichner der Struktur
- Pflichtparameter
- lazy
- Verwende neutraleres Aufzählungszeichen.
- Vorgabe:
#
in Gesamtdarstellungen,*
beimpath
- Neutraler:
*
bzw.:
- level
- Keine Unterseiten zeigen.
- Vorgabe: Unterseiten zeigen.
- light
- Gesamtzusammenstellung
all
ohne Präfix zeigen. - Vorgabe: Präfix voranstellen.
- lineup
- Gesamtzusammenstellung
all
fortlaufend ohne Aufzählungszeichen zeigen. - Vorgabe: Aufzählung, eine Zeile pro Eintrag.
- linked
- Weiterleitungen (
shift
) zeigen. - Vorgabe: Keine Weiterleitungen zeigen.
- list
- Alles auflisten.
- Vorgabe: Mit
list=false
gekennzeichnete Seiteneinträge in Strukturen nicht zeigen. - segment
- Pfad
path
an alternativem root-Element beginnen. - Wenn mit
/
beginnend, wird relativ zustart
ausgewertet. - stamped
- Zeitformat, für Parserfunktion
#time
usw. - suppress
- Unterdrücke die Anzeige von Seitennamen, die dieses pattern erfüllen.
- subpager
- Name einer Vorlage für Unterseiten.
subpager=Subpage
Parameter, deren Name mit l
beginnt, sind gesetzt, wenn ihnen eine 1
zugewiesen wird.
Definition einer Struktur
WerkelnEs wird die Definition in einem Untermodul erwartet, dessen Strukturbezeichner an Modul:PageTree/
angehängt wird.
Format des Untermoduls
Werkeln- 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
WerkelnEin 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
/
. - less
path
– keine tieferliegende Ebene mehr zeigen.- Vorgabe: zeigen.
- list
- Anzeige standardmäßig unterdrücken, sofern Darstellung nicht mit list abgefordert.
- Vorgabe: zeigen.
- Zuweisung:
list=false
- loose
- Verwaistes root-Element kennzeichnen.
all
– falls auch mitlist=false
markiert, dann ignorierenpath
– für aktuelle Seite anzeigen, auch wenn sonst mitlist=false
markiert.subpages
– für aktuelle Seite nicht anzeigen, wenn nicht auf ein deklariertes root-Element zurückgehend.
- Vorgabe: Element zeigen.
- Zuweisung:
loose=true
- index
- Numerische Sortierfolge.
- Vorgabe: alphabetisch nach Seitenname bzw. Linktitel.
Funktionen für Lua-Module
WerkelnEs gibt zwei Funktion zu Test- und organisatorischen Zwecken:
- 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
Parameter, deren Name mit l
beginnt, sind boolean anzugeben.
args.hide
ist eine table, deren Einträgesuppress
sind.
- p.failsafe(atleast)
-
- atleast
optional
nil oder Mindestversion oder Wert für"wikidata"
- atleast
- Rückgabewert: string oder false
Verwendung
WerkelnAllgemeine Bibliothek; nicht eingegrenzt.