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 (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
Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung
- sicherzustellen, dass eine von einer Vorlage oder einem Modul benötigte Funktion in der lokalen Kopie eines Bibliotheksmoduls vorhanden ist, und ggf. auch in einer erforderlichen Mindestversion;
- die globale Aktualisierung und Verknüpfung von Modulen über Wikidata zu verwalten.
Die Failsafe-Schnittstelle liegt sowohl auf Ebene der Vorlagen wie auch in direktem Lua-Zugriff vor.
Die Funktionen sind im Einzelnen (nicht alle werden bereits überall in vollem Umfang unterstützt):
Wert | Ergebnis | aktuell |
---|---|---|
nichtsfalse
|
lokale Version | »2024-04-02« |
Mindestversion | Mindestversionsbezeichnung Datum im ISO-Format Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
|
|
wikidata
|
Versionsbezeichnung der globalen Mutter (d:Q56033297)
|
»2024-04-02« |
item
|
ID des Wikidata-Items
|
»Q56033297« |
~
|
Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
|
»« |
@
|
Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
|
|
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false ; andernfalls die angegebene Zeichenkette.
|
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.
- 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
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
/
. - 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.
Allgemeine Hinweise zur Einbindung von Modulen
Eine Einbindung erfolgt jeweils im Format
{{#invoke: PageTree |
Funktionsname | Wert1 | Wert2 | NameX=Wert … }}
Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.
Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=
Wert gearbeitet werden.
Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.
Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer die Vorlage:Dokumentation/Lua in der Dokumentationsseite eingebunden werden.
- Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
- Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
- Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.
Zu weiteren Informationen siehe Hilfe:Lua.
Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.