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
[Quelltext bearbeiten]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
[Quelltext bearbeiten]- 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
[Quelltext bearbeiten]Es wird die Definition in einem Untermodul erwartet, dessen Strukturbezeichner an Modul:PageTree/
angehängt wird.
Format des Untermoduls
[Quelltext bearbeiten]- 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
[Quelltext bearbeiten]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.
Funktionen für Lua-Module
[Quelltext bearbeiten]Es gibt zwei Funktionen zu Test- und organisatorischen Zwecken, die in andere Module eingebunden werden können:
local lucky, PageTree = pcall( require, "Module:PageTree" )
if type( PageTree ) == "table" then
PageTree = PageTree()
else
-- Fehlerfall; PageTree enthält Fehlermeldung
return "<span class=\"error\">" .. PageTree .. "</span>"
end
Danach stehen zur Verfügung:
- PageTree.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.
- PageTree.failsafe( atleast )
- Versionsbezeichnung
- atleast
optional
nil oder Mindestversion
- atleast
- Rückgabewert: string oder false
Verwendung
[Quelltext bearbeiten]Allgemeine Bibliothek; nicht eingegrenzt.