Fandom

Wikia Deutschland

Kommentare11

HTML-Elemente mit variablem Inhalt per 'verbatim'-Tag und Parserfunktion 'int'

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.

Die im folgenden beschriebene Lösung habe ich im englischen Kirby-Wiki entdeckt. Dort wird damit auf der Seite Kirby's Epic Yarn eine Playlist verschiedener Musiktitel erstellt.

Problem

Die Wikisyntax unterliegt im Vergleich zu HTML ein paar Einschränkungen, was das Erstellen von Elementen angeht. Bei einigen Elementen, wie zum Beispiel Tabellen, ist es jedoch möglich, die entsprechenden HTML-Tags zu verwenden. Bei anderen Elementen ist diese Möglichkeit jedoch nicht gegeben, da der Editor sie herausfiltert bzw. in einfachen Text umwandelt.

einfache Lösung

Der Tag verbatim erlaubt es, den Inhalt einer Seite im Namensraum MediaWiki am Parser vorbei in eine Seite einzufügen. Insbesondere bedeutet das, dass auf diese Weise HTML-Syntax in eine Seite eingefügt werden kann, wodurch alle Elemente erzeugt werden können. Es sollte dabei jedoch beachtet werden, dass mit dieser Möglichkeit kein schädlicher Code eingefügt werden darf. Das kann zum globalen Bann des Accounts führen (siehe die entsprechende Hilfeseite im englischen Community-Wiki).

Der Nachteil dieser Lösung ist, dass die so eingefügten Elemente nicht variabel sind, sondern immer gleich. Bei einem Twitter-Feed stört das nicht, da der Code dafür immer der gleiche ist. Möchte man aber Elemente einfügen, deren Inhalt geändert werden können soll, z.B. einen img- oder marquee-Tag, so ist das damit nicht möglich.

erweiterte Lösung

Die Parserfunktion int fügt ebenfalls den Inhalt von Seiten des Namensraums MediaWiki ein, dient aber (eigentlich) zur Übersetzung der jeweils enthaltenen Systemnachricht (siehe Hilfeseite der MediaWiki-Software). Im Zusammenhang mit dem beschriebenen Problem interessant ist, dass dieser Funktion Parameter übergeben werden können. Durch das Anlegen entsprechender MediaWiki-Seiten wird es damit möglich, HTML-Elemente mit variablem Inhalt zu erzeugen, deren Erstellung der Parser normalerweise verhindern würde.

Beispiel

Da dieser Blog-Beitrag aufgrund dieser Frage entstanden ist, beschreibe ich im folgenden, wie ein marquee-Element erstellt werden kann.

In diesem Beispiel erstelle ich ein Element mit folgender Struktur Form:

<marquee behavior="" width="" height="" direction=""></marquee>

Dazu müssen die folgenden MediaWiki-Seiten mit dem angegebenen Inhalt angegeben werden. Ich habe die entsprechenden Seiten hier im Wiki schon erstellt, um das Funktionieren des Beispiels demonstrieren zu können. Die Zeilenumbrüche des Inhalts der letzten MediaWiki-Seite habe ich nur der besseren Lesbarkeit wegen eingefügt. Sie sollten beim Erstellen der MediaWiki-Seite nicht übernommen werden.

Name der MediaWiki-Seite einzufügender Inhalt
MediaWiki:MarqueeOpen
<marquee behavior="
MediaWiki:MarqueeEndOpen
">
MediaWiki:MarqueeClose
</marquee>
MediaWiki:MarqueeWidth
" width="
MediaWiki:MarqueeHeight
" height="
MediaWiki:MarqueeDirection
" direction="
MediaWiki:InsertMarquee
<verbatim>MarqueeOpen</verbatim>$1
<verbatim>MarqueeWidth</verbatim>$2
<verbatim>MarqueeHeight</verbatim>$3
<verbatim>MarqueeDirection</verbatim>$4
<verbatim>MarqueeEndOpen</verbatim>$5
<verbatim>MarqueeClose</verbatim>
Wie unschwer zu erraten ist, sind $1 bis $5 die Parameter, die das Verhalten und den Inhalt des Elements beeinflussen. Die Eingabe von
{{int:InsertMarquee|scroll|100px|100px|right|Beispieltext}}

würde dann dieses Ergebnis haben:

scroll100px100pxrightBeispieltext

Hinterlasst Kritik, Fragen und/oder Verbesserungsvorschläge in den Kommentaren oder auf meiner Nachrichtenseite. Gegebenenfalls werde ich den Beitrag dann entsprechend überarbeiten.

Auch bei Fandom

Zufälliges Wiki