Vorlage:WikilinkWeg
Dies ist die Vorlage „WikilinkWeg“. Sie wandelt einen Wiki-Link im Format [[:Seitenname|Seitenname]] in einfachen Fließtext um (im Beispiel also: Seitenname). Diese Vorlage hat dieselbe Funktion wie {{PAGENAME}}, kann aber in Vorlagen eingesetzt werden, um auch Variablen wie {{{Variable}}} in Fließtexte zu wandeln. Sie sollte im folgenden Format genutzt werden:
{{WikilinkWeg|Zeichenkette}}
Der Parameter "Zeichenkette" ist der umzuwandelnde Wiki-Link.
Beispiele
Zeichenkette vorher | Kommentar | Ergebnis WikilinkWeg |
---|---|---|
[[xxx]]
→ xxx |
Ein simplier Wikilink
→ Die Linkklammern werden entfernt |
{{ WikilinkWeg | [[xxx]] }}
→ xxx |
[[xxx|yyy]]
→ yyy |
Ein Wikilink mit Alternativtext
→ Linkklammern und Alternativtext werden entfernt |
{{ WikilinkWeg | [[xxx|yyy]] }}
→ xxx |
[[zzz:xxx|yyy]]
→ yyy |
Ein Wikilink mit Namespace und Alternativtext
→ Linkklammern, Namespace und Alternativtext werden entfernt |
{{ WikilinkWeg | [[zzz:xxx|yyy]] }}
→ xxx |
[[:zzz:xxx]]
→ zzz:xxx |
Ein typischer Kategorie-Link mit zwei Doppelpunkten
→ Alles bis zum hintersten Doppelpunkt wird entfernt (sowie die Linkklammern) |
{{ WikilinkWeg | [[:zzz:xxx]] }}
→ xxx |
[[xxx/sub]]
→ xxx/sub |
Ein Wikilink auf eine Unterseite
→ Linkklammern werden entfernt, Haupt-, Unterseite und Slash bleiben stehen |
{{ WikilinkWeg | [[xxx/sub]] }}
→ xxx/sub |
[http://www.irgendwo.de/ Irgendwo]
→ Irgendwo |
Ein typischer externer Link mit Alternativtext
→ Das Ergebnis ist unbrauchbar, da die Funktion alles bis zum letzten Doppelpunkt entfernt |
{{ WikilinkWeg | [http://www.irgendwo.de/ Irgendwo] }}
→ //www.irgendwo.de/ Irgendwo |
[[:Vorlage:WikilinkWeg|WikilinkWeg]] | Ein Link auf diese Vorlage hier
→ Alles muss raus, was nicht Seitentitel ist :-) |
{{ WikilinkWeg | [[:Vorlage:WikilinkWeg|WikilinkWeg]] }}
→ WikilinkWeg |
Quellcode kommentiert
<!-- Entferne alle Zeichen von links bis einschließlich dem letztmalig auftretenden Doppelpunkt ":" --> {{#vardefine: Zeichenkette | {{#explode: {{{1}}} | : | -1 }} }} <!-- Entferne alle Zeichen von links bis einschließlich der letztmalig auftretenden öffnenden Eckklammer "[" --> {{#vardefine: Zeichenkette | {{#explode: {{#var:Zeichenkette}} | {{!(}} | -1 }} }} <!-- Entferne alle Zeichen bis zum Ende ab der erstmalig auftretenden Pipe "|" --> {{#vardefine: Zeichenkette | {{#explode: {{#var:Zeichenkette}} | {{!}} | 0 }} }} <!-- Entferne alle Zeichen bis zum Ende ab der erstmalig auftretenden schließenden Eckklammer "]" --> <!-- Gebe diese verbleibende Zeichenkette zurück --> {{#explode: {{#var:Zeichenkette}} | {{)!}} | 0 }}