Hilfe:Dynamic Page List

Aus Wiki-Langen
Version vom 31. Oktober 2015, 22:20 Uhr von Sneusel (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „==Einführung== Mit der Extension '''Dynamic Page List''' (kurz '''DPL''') können automatisch generierte Listen aus Wiki-Artikeln er…“)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Einführung

Mit der Extension Dynamic Page List (kurz DPL) können automatisch generierte Listen aus Wiki-Artikeln erstellt werden. Die Extension sucht je nach vorgegebenen Kriterien Seiten heraus und kann die gewünschten Inhalte dieser Seiten in beliebigem Format wiedergeben. Da die Listen dynamisch aus den Inhalten der jeweiligen Seiten zusammengestellt werden, lassen sich solche Listen nur über das Anpassen der entsprechend verlinkten Wikiseiten verändern.

Im Wiki Aventurica werden diese Listen vielfach verwendet, um Übersichtslisten zu bestimmten Themen zu schaffen oder um die Wartung des Wikis zu erleichtern. Seiten mit DPL-Aufrufen sind automatisch über die Liste aller Links auf DPL auffindbar, sollten aber übersichtlicher in der Kategorie:DPL-Liste zu finden sein. Die aktuelle Version der Extension findet man unter Spezial:Version und das englische Handbuch unter Hilfe:DPL Manual (importiert von semeb.com). Entwickler der Extension ist Algorithmix.

Parser-Methoden

Eine DPL-Liste kann entweder als Parser-Erweiterung mit <DPL> ... </DPL> oder als Parser-Funktion mit {{#dpl: ... }} erstellt werden. Die Unterschiede zwischen beiden Methoden sind minimal und beziehen sich meist nur auf bestimmte Formatierungen:

  1. Die Parser-Erweiterung erlaubt
    • einfachere Syntax, da keine oder kaum Sonder- und "Ausweich"-Zeichen (¶ | ¦ {{!}} {{!!}}) verwendet werden müssen
    • statt <DPL> ... </DPL> auch <dpl> ... </dpl>
    • das Einfügen von Kommentaren mit #
  2. Die Parser-Funktion erlaubt
    • das Verwenden von Parametern wie andere Vorlagen auch, so können bspw. {{{1}}} oder {{{Text}}} innerhalb des Aufrufs verwendet werden (Beispiel: Vorlage:Vorlage)
    • das Verwenden von Parser-Funktionen und Magic Words, so können bspw. {{#if: ...}} oder {{PAGENAME}} innerhalb des Aufrufs verwendet werden, sodass sich solche DPL-Aufrufe auch als Vorlagen verwenden lassen (Beispiel: Vorlage:Vorlage)
    • das Erstellen von Tabellen aus mehreren DPL-Aufrufen, indem eine Tabelle erstellt wird und jeder DPL-Aufruf nur Tabelleneinträge beiträgt (Beispiel: Wiki Aventurica:Mitarbeiterportal/Wartung/Tsatagskategorie fehlt)
    • die Substitution des DPL-Aufrufs

Substitution

Bei der Substituion eines DPL-Aufrufs wird statt des DPL-Aufrufs auf einer Seite nur die momentane Ausgabe jenes DPL-Aufrufs gespeichert. Das bedeutet, dass nach der Substitution kein DPL-Aufruf mehr vorliegt, sondern nur noch jene Ausgabe des Substitutionszeitpunkts, und Änderungen im Wiki werden nicht mehr auf die Ausgabe übertragen. Obwohl dadurch die Aktualität verloren geht, wird dies aus folgendem Grund genutzt: Da jedes Mal beim Laden einer Seite mit einem DPL-Aufruf dieser Aufruf die gesamte Wiki-Datenbank aufs neue durchsucht um den Inhalt darzustellen, führt dies bei Seiten mit umfangreichen oder komplexen DPL-Listen zu langen Ladezeiten und hoher Serverlast. Um dennoch eine gewisse Aktualität zu gewährleisten werden diese Listen regelmäßig per Roboter neu substituiert. Eine Liste der substituierten DPL-Listen findet sich auf Hilfe:Dynamic Page List/Substitution.

Grundlegende Syntax

Befehlstruktur

In der Parser-Erweiterung muss für jeden Befehl eine neue Zeile begonnen werden, während bei der Parser-Funktion neue Befehle mit | eingeleitet werden. Befehle bestehen aus einem möglichen Parameter (siehe #Liste der Befehle) und dem für den Aufruf gewünschten Wert, welcher hinter ein = geschrieben wird. Beispiel:

Parser-Erweiterung Parser-Funktion Kommentar
<DPL>
   linksto = Yaquirtaler Madawein
</DPL>
{{#dpl:
   |linksto = Yaquirtaler Madawein
}}

Listet alle Seiten, die auf Yaquirtaler Madawein verlinken

Whitespace

Zur Übersicht werden Befehle meistens etwas eingerückt, was aber lediglich der Übersichtlichtkeit des Programmierens dient, da überflüssiger "Whitespace" (Leerzeichen, Einrücken) keine Bedeutung für den DPL-Aufruf hat; als Parser-Funktion sind sogar Zeilenumbrüche belanglos – man könnte also auch {{#dpl: | linksto = Yaquirtaler Madawein }} schreiben.
Dies gilt aber nur für überflüssigen Whitespace, es macht also einen Unterschied, ob man Yaquirtaler Madawein oder YaquirtalerMadawein schreibt, denn nur zusätzliche Leerzeichen wären überflüssig. Im Prinzip gilt hier das gleiche wie für die normale Wiki-Syntax: Sowohl [[Yaquirtaler Madawein]] als auch [[ Yaquirtaler Madawein ]] liefern das Ergebnis Yaquirtaler Madawein.

Sonderzeichen

Sonderzeichen werden innerhalb des DPL-Aufrufs verwendet um bestimmte Formatierungen zu nutzen oder weitere Parser-Funktionen in den DPL-Aufruf einzubinden. Um zu verhindern, dass der Wiki-Parser eingegebene Zeichen sofort umsetzt, werden Ausweichzeichen verwendet, die den üblichen Wiki-Syntax-zeichen sehr ähneln. Falls man beispielsweise alle Zauber, die an der Akademie der Hohen Magie gelehrt werden, auflisten und diese Zauber mit Hilfe der Vorlage:Zauber formatieren will, müsste man folgendes schreiben:

{{#dpl:
  |category = Zauber
  |linksfrom = Akademie der Hohen Magie
  |format = ,\n* ²{Zauber¦%PAGE%}²,,
}}

Dabei entspricht das \n einem Zeilenumbruch in Wiki-Syntax und ²{Zauber¦%PAGE%}² entspricht {{Zauber|%PAGE%}} in Wiki-Syntax; %PAGE% wird im Abschnitt #Variablen erklärt. Soll die Liste nummeriert oder eingerückt sein, dann verwendet man einfach # bzw. : statt *, denn "Zeilenumbruch" plus eines dieser Zeichen ist ja normale Wiki-Syntax:

{{#dpl:
  |category = Zauber
  |linksfrom = Akademie der Hohen Magie
  |format = ,\n# ²{Zauber¦%PAGE%}²,,
}}
{{#dpl:
  |category = Zauber
  |linksfrom = Akademie der Hohen Magie
  |format = ,\n: ²{Zauber¦%PAGE%}²,,
}}
Sonderzeichen Mediawiki-Zeichen Kommentar
« < Erlaubt das Aufrufen einer anderen Parser-Erweiterung (bspw. <progressbar>)
» >
²{ {{ Erlaubt den Aufruf einer Vorlage innerhalb des DPL-Aufrufs; insbesondere ist damit eine DPL-Schleife möglich (bspw. Vorlage:DPL Widersprüchliches)
}}
¦ |
Zeilenumbruch Fügt der DPL-Ausgabe einen Zeilenumbruch hinzu, sodass übliche Wiki-Syntax am Zeilenanfang funktioniert (bspw. um mit * # : ; Listen oder Einrückungen zu erstellen)
\n Zeilenumbruch
{{!}} | Die Vorlagen Vorlage:Vorlage und Vorlage:Vorlage sind ebenfalls als Ausweichzeichen für | und || möglich; sie eigenen sich insbesonders für substituierte DPL-Aufrufe
{{!!}} ||

Variablen

Ein DPL-Aufruf verfügt automatisch über gewisse interne Variablen wie %PAGE% und %TITLE%, wobei diese beiden Variablen {{FULLPAGENAME}} und {{PAGENAME}} des aufgerufenen Artikels entsprechen. Ist bspw. die Seite Hilfe:Erstellen neuer Artikel Teil des DPL-Aufrufes, dann würde der Code [[%PAGE%|%TITLE%]] den Link Erstellen neuer Artikel ausgeben; und mit dem Code [[%PAGE%|Hilfeseite zum Thema "%TITLE%"]] würde der Link als Hilfeseite zum Thema "Erstellen neuer Artikel" erscheinen. Nicht alle Variablen sind stets verfügbar, sondern benötigen unter Umständen einen gewissen Parameter – so ist beispielsweise %CATLIST% (Liste der Kategorien des Artikels) nur verfügbar, wenn der Befehl addcategories = true im DPL-Aufruf geschaltet ist. Zudem lassen sich die Variablen nur im Ausgabe-Teil des DPL-Aufrufs verwenden.

Diese Art der Variablen haben nichts mit den anderen Variablen, wie var oder dplvar, zu tun; diese können aber auch in Kombination mit DPL-Aufrufen genutzt werden.

Variable Kommentar
 %PAGE% Name des Artikels (inklusive Namensraum-Präfix)
 %TITLE% Name des Artikels (ohne Namensraum-Präfix)
 %NAMESPACE% Namensraum des Artikels
 %PAGEID% interne numerische ID des Artikels
 %NR% gegenwärtige Artikel-Nummer innerhalb des DPL-Aufrufs (1, 2, 3, ...)
 %IMAGE% vollständiger Pfad zu einer Datei (entspricht Spezial:Dateipfad, bspw. 5/5d/meinBild.jpg)
 %PAGESEL% Name der Seite, aufgrund welcher der Artikel ausgewählt wurde; Voraussetzung: #linksfrom oder #linksto
 %IMAGESEL% Name der Datei, aufgrund welcher der Artikel ausgewählt wurde; Voraussetzung: #imageused
 %SIZE% Größe des Artikels; Voraussetzung: #addpagesize
 %COUNT% Anzahl wie oft der Artikel angesehen wurde; Voraussetzung: #addpagecounter
 %SIZEFS% Font-Größe in Abhängigkeit von der Artikelgröße (Logarithmus der Quadratwurzel der Größe)
 %COUNTFS% Font-Größe in Abhängigkeit von der Anzahl der Artikelansichten (Logarithmus der Größe)
 %COUNTFS2% wie oben, aber andere Größe (Logarithmus der Quadratwurzel der Größe)
 %EDITSUMMARY% die Änderungs-Zusammenfassung; Voraussetzung: DPL-Aufruf basiert auf Änderungen der Versionensgeschichten
 %REVISION% Name der Änderung des Artikels; Voraussetzung: DPL-Aufruf basiert auf Änderungen der Versionensgeschichten
 %DATE% Datum aus der Abfrage, bspw. lastedit für das letzte Änderungsdatum des Artikels; kann über #userdateformat formatiert werden (siehe #time); Voraussetzung: #addeditdate o.ä.
 %USER% Benutzer, der den Artikel als letztes bearbeitete; Voraussetzung: #adduser
 %CONTRIBUTOR% Benutzer, der einen Beitrag zum Artikel leistete; Voraussetzung: #addcontribution
 %CONTRIBUTION% the number of bytes changed; Voraussetzung: #addcontribution
 %CONTRIB% an asterisk bar to indicate the amount of change; Voraussetzung: #addcontribution
 %CATLIST% durch Kommatagetrennte Links zu allen Kategorien, zu denen der Artikel gehört (Kat 1, Kat 2, Kat 3, ...); Voraussetzung: #addcategories
 %CATBULLETS% Aufzählung aller Kategorien, zu denen der Artikel gehört (inkl. Kategorielinks); Voraussetzung: #addcategories
 %CATNAMES% rein namentliche Aufzählung aller Kategorien, zu denen der Artikel gehört (Kat 1, Kat 2, Kat 3, ...); Voraussetzung: #addcategories
 %EXTERNALLINK% der externe Link, der durch den Befehl linkstoexternal gefunden wurde; Voraussetzung: #linkstoexternal
Variablen für #resultsheader und #resultsfooter
 %PAGES% Anzahl der gefundenen Artikel in der DPL-Ausgabe
 %TOTALPAGES% Anzahl aller gefundenen Artikel, selbst wenn nicht ausgegeben; wird nur im Bedarfsfall errechnet
 %VERSION% die gegenwärtige DPL-Version (siehe auch Spezial:Version)
 %DPLTIME% gibt die Zeit an, die der DPL-Aufruf selbst benötigte (in Sekunden + Millisekunden); nützlich um herauszufinden ob/welcher DPL-Aufruf auf einer Seite lange braucht, falls man lange Ladezeiten bemerkt; Beispiel: 2 (2012/05/18 09:27:43) würde bedeuten, dass der DPL-Aufruf 2 Sekunden der gesamten Ladezeit ausmacht und dass der DPL-Aufruf zu dem in der Klammer angegebenen Zeitpunkt begonnen hat
Variablen um zu #Scrollen
 %FIRSTTITLE%
%FIRSTNAMESPACE%
%LASTTITLE%
%LASTNAMESPACE%
Diese Variablen entsprechen %TITLE% und %NAMESPACE% des ersten bzw. letzten Artikels in der Menge aller ausgegebenen Artikel
 %SCROLLDIR% der Wert der Variable wird durch den URL-Parameter DPL_scrollDir gesetzt (kann also per link auf die Seite mit dem DPL-Aufruf verändert werden); wird an die Scroll-Hilfe-Vorlage weitergegeben, um die Scroll-Ausgabe richtig zu formatieren

Kompatibilität

DPL hat 5 Stufen an Funktionen, wobei die Wiki-Administratoren festlegen bis zu welcher Stufe DPL-Funktionen verfügbar sind. Jeder DPL-Befehl gehört zu genau einer dieser Stufen und ist damit nur verfügbar, falls diese, oder eine höhere, Stufe im Wiki freigeschaltet wurde. Das Wiki Aventurica läuft gegenwärtig mit Funktionalitätsstufe 2 – damit sind die Befehle der Stufen 0, 1 und 2 verfügbar, aber nicht die Befehle der Stufen 3 und 4.

Stufe 0 Stufe 1 Stufe 2 Stufe 3 Stufe 4

erlaubt keine Zusatzfunktionen verglichen mit der Extension:DynamicPageList

ermöglicht eine kleine Menge an Formatierungsbefehlen, welche die Server-Performance nicht beeinflussen

ermöglicht zusätzliche Funktionen, insbesondere der Transklusion von Seiteninhalten

ermöglicht noch mehr Funktionen, wie Regular Expressions und DPL-Aufrufen basierend auf Versionsgeschichten

ermöglicht ein paar weitere Funktionen (wie batch updates), die eher privaten Webseiten als großen Seiten (wie dieser Wiki) nutzen

Liste der Befehle

Links