Wikipedia:Lua/Modul/PageTree/de

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
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 als shift 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):

Parameter
Wert Ergebnis aktuell
nichts
false
lokale Version »2024-04-02«
Mindest­version Mindestversionsbezeichnung
Datum im ISO-Format

Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.

  • leer, falls Mindestversion nicht erfüllt
  • 2001-01-01 → »2024-04-02«
  • 2099-01-01 → »«
wikidata Versionsbezeichnung der globalen Mutter (d:Q56033297)
  • Versionsbezeichnung auf Wikidata
  • lokal, falls dort keine gefunden
»2024-04-02«
item ID des Wikidata-Items
  • leer, falls nicht definiert
»Q56033297«
~ Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
  • leer, falls aktuell
  • Versionsbezeichnung auf Wikidata, falls ungleich
»«
@ Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
  • leer, falls mit dem richtigen Item verknüpft
  • Item-ID, falls nicht
»Q56033297«
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, * beim path
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 zu start 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:
  • Ein jüngerer stamp überschreibt den älteren.
  • start wird neu zugewiesen.
  • Ein tieferes sub kann erneut gestartet werden.
  • Einträge in pages mit bereits vorhandener Definition werden ignoriert.
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 zu start verlinkt.
shift
Ziel einer Weiterleitung
Wenn mit / beginnend, wird relativ zu start 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 zu start 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 mit list=false markiert, dann ignorieren
  • path – für aktuelle Seite anzeigen, auch wenn sonst mit list=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 Seitennamen
  • args.series – Bezeichner der Struktur an Stelle von 1.
  • args.service – Aktionsart; Name der Funktion
  • args.suite – Pfad zum Modul; hier: Modul:PageTree

Parameter, deren Name mit l beginnt, sind boolean anzugeben.

  • args.hide ist eine table, deren Einträge suppress sind.
PageTree.failsafe( atleast )
Versionsbezeichnung
  1. atleast
    optional
    nil oder Mindestversion
Rückgabewert: string oder false

Allgemeine Bibliothek; nicht eingegrenzt.

Abhängigkeiten[Quelltext bearbeiten]