Hilfe:Tags
Ein charakteristisches Merkmal derWikitexte sind dieTags. Sie sind denAuszeichnungssprachenXML undHTML entlehnt.
Auf dieser Hilfeseite wird ein vollständiger Überblick zur Anwendung in Wiki-Projekten gegeben. Kurzfassungen finden sich unterHilfe:Textgestaltung.
Eine andere Bedeutung vontags im Wiki wird unterBearbeitungsmarkierung erläutert.
Index
[Bearbeiten |Quelltext bearbeiten]Direkt zum Element:
<!-- -->aabbrAbschnittacronymbbdibigblockquotebrcaptioncategorytreececentercharinsertchemcitecodecolcolgroupcommanddfndddeldivdldtemfontgallerygraphh1h2h3h4h5h6hiddentexthierohriimagemapimgincludeonlyindicatorinputboxinsisindexkbdlangconvertlanguageslimaplinkmapframemarkmathnobrnoincludenowikiolonlyincludepphonospoempreqrbrbcrefreferencesrprtrtcrubyssampscorescriptsectionsmallsourcespanstrikestrongstylesubsupsyntaxhighlighttemplatedatatemplatestylestabletdthtimelinetrtranslatetttvaruulvarwbr
Hilfe zu den im Wikitext gängigen Tags lässt sich auch fast immer erreichen, indem in dasSuchfeld eingegeben wird:h:name
Syntax
[Bearbeiten |Quelltext bearbeiten]Die Syntax entspricht derjenigen von XML und HTML; zwischen beiden Sprachen gibt es minimale Unterschiede.
Ein Tag hat im einfachsten Fall die Form<name>
– nach der öffnenden spitzen Klammer<
steht der Bezeichner. Er soll kleingeschrieben werden, wird aber auch mit Großbuchstaben verstanden. Die schließende spitze Klammer>
beendet das Tag.
Grundsätzlich gibt es mehrere Fälle:
- Anfang und Ende:
Ein Textabschnitt wird von zwei Tags eingeschlossen, die den gleichen Bezeichner tragen. Das abschließende Tag führt zu Beginn einen Schrägstrich:<name>
………</name>
- Dem eingeschlossenen Bereich sollen dadurch bestimmte Eigenschaften zugewiesen werden.
- Die gesamte Einheit aus Anfang, Inhalt und Ende nennt man Element.
- In dieser Form wird es auchbinary genannt.
- Elemente können ineinander verschachtelt sein; allerdings muss ein inneres Element dann vollständig in einem äußeren Element enthalten sein.
- unary tag wie
<references />
(alleinstehend):- Sie haben keinen Inhalt; können aber steuernd wirken.
- In Texten, die auch gelegentlich von Menschen gelesen werden (wie es regelmäßig bei Wikitexten der Fall ist), schreibt man zur besseren Lesbarkeit ein Leerzeichen vor den Schrägstrich, um das Tag sicher und fehlerfrei von derbinary-Variante unterscheiden zu können, z. B. bei
<references />
vs.</references>
. - Grundregel: In HTML sind Elemente, die Inhalte enthalten können, nicht als selbstschließend definiert und in dieser Form unzulässig.
- unary gibt es in erster Linie fürWiki-eigene Elemente.
- Leeres Element (etwa
<div></div>
).- Bei denWiki-Extensionen kann dies immer durch das kürzere und schneller erfassbareunary tag ersetzt werden, wie es auch in XML vorgesehen ist.
- In HTML wird immer noch eine Unterscheidung getroffen zwischen Tags, die nie Inhalt enthalten können(void),[1] und solchen, die prinzipiell Inhalt enthalten könnten, nur jetzt gerade leer sind. Im ersten Fall muss einunary tag verwendet werden, im zweiten Fall(empty) darf keinunary tag benutzt werden. Dies kann insbesondere bei leerem<div> zu Schwierigkeiten führen. Seit Sommer 2016 ist es nicht mehr zulässig,[2] leere HTML-Elemente dieser Art durch ein „selbstschließendes“unary tag in den Quelltext zu schreiben; das gilt ausdrücklich nicht fürMediaWiki-Elemente und nicht fürvoid-HTML.
- Vorlagenprogrammierung:
- Hier können Tags mittels der Funktion
#tag:
der normalen Verarbeitung zunächst entzogen werden.
- Hier können Tags mittels der Funktion
Attribute
[Bearbeiten |Quelltext bearbeiten]Außerdem gilt:
- Innerhalb von Tags sindAttributzuweisungen möglich. Dies gilt allerdings nur für das erste Tag (öffnend oder alleinstehend).
- Sie haben das Format
attribut="Wert usw."
- Attributwerte sollen in
"
(ASCII-Zeichen, Code 3410) eingeschlossen werden (möglich, aber nicht üblich wären auch Apostroph'
als ASCII-Zeichen, Code 3910). Besteht der Attributwert nur aus einer Zahl oder einem einzelnen Wort,[3] würde das notfalls auch ohne Begrenzer verstanden werden. Das ist aber sehr fehleranfällig, und uneinheitliche Formatierung verhindert Suchen/Ersetzen. - Die Namen von Attributen sollen kleingeschrieben werden.
- Innerhalb der Tags dürfen außer dem Namen des Tags und den Attributzuweisungen keine anderen Inhalte stehen.
- Zeilenumbrüche zwischen Attributzuweisungen sind zulässig, um lange Tags mit vielen Attributen übersichtlicher zu gestalten; jedoch keine Leerzeilen.
- Die Zeichen
<
und>
dürfen nicht vorkommen. - Attribute dürfen sich in einem Tag nicht wiederholen.
- Das Attribut-Format wird nicht nur innerhalb von Tags benutzt, sondern etwa auch beiTabellen, wo die Attribute dann in die generierten HTML-Elemente eingefügt werden.
- Einige wenige Attribute sindalleinstehend; es wird ihnen kein Wert zugewiesen und sie lösen durch ihre Anwesenheit einen Effekt aus. Das ist im Wikitext jedoch sehr selten.[4] Genauso wirksam, aber beim Antreffen auf den reinen Namen zu kürzen, wäre
attr=""
oderattr="attr"
. - Attribute, die nicht in einer Positivliste für Wikisyntax hinterlegt sind, werden nicht in das generierte HTML-Dokument übernommen.
Einige häufige Standard-Attribute sind
Ob sie im konkreten Einzelfall auch wirksam sind, hängt vom Tag ab.
class
[Bearbeiten |Quelltext bearbeiten]Die Klassen sind insbesondere wichtig für die Zuordnung vonCSS, wie es projektweit etwa inCSS-Ressourcen definiert ist und auch individuell vereinbart werden kann (Hilfe:CSS).
Achtung: Falls mehrere Klassen angegeben werden, müssen sie durch Leerzeichen voneinander getrennt werden; nicht mit Komma:
class="wikitable float-right"
Eine projektweit definierte Klasse isterror
, mittels der auf allen Seiten Fehlermeldungen (etwa vonVorlagen) aufgefunden und einheitlich formatiert werden können.
Damit lassen sich Fragmente bilden, mit denen sich die Tags direkt verlinken lassen.
- SieheFragmentbezeichner und{{Anker}} für die Verwendung mitten in Texten.
Für den Identifizierer gibt es Regeln:
- Identifizierer müssen mit einem Buchstaben beginnen und dürfen kein
#
enthalten; damit sie sinnvoll verlinkt werden können, auch keine Wiki-Syntax wie<>{|}[]
. - Sie sollten zur besseren Lesbarkeit in allen Situationen nur aus bestimmtenASCII-Zeichen gebildet werden, nämlich:
A-Z a-z 0-9 . - / ( ) , ;
- Identifizierer dürfen sich auf einer Seite nie wiederholen. Sie sollten deshalb so gebildet werden, dass sie kaum als Überschriftentext in Frage kommen.
- Sie sollten möglichst kurz und inhaltlich prägnant sein (Schlagwort), und von Menschen zweifelsfrei interpretiert und unterschieden werden („sprechend“).
- Sie sollten nur verwendet werden, falls beabsichtigt wird, zu dieser Stelle zu springen. Lediglich um eineCSS-Dekoration oder Skripte darauf wirken zu lassen, sollte eine Klasse
class=
mit ggf. nur einem einzigen enthaltenen Element definiert werden. Das vermeidet Konflikte, weil jedeÜberschrift in der Seite ebenfalls automatisch einen Identifizierer gleichen Namens erhält. Damit würde zum einen die Seite wegen mehrfacher gleicher Identifizierer ungültig werden, zum anderen wirkt das CSS dann unbeabsichtigt ebenfalls auf diese Überschrift ein.
style
[Bearbeiten |Quelltext bearbeiten]Während mitclass=
CSS-Formatierungen für alle Elemente gleichzeitig zugewiesen werden, lässt sich mitstyle=
ein einzelnes Element in einem bestimmten Stil darstellen. Dies erfolgt regelmäßig nur in derVorlagenprogrammierung und kann in Artikeln ausnahmsweise benutzt werden; sieheHilfe:CSS.
lang
[Bearbeiten |Quelltext bearbeiten]In der Vorlagenprogrammierung wird gelegentlich das Attributlang=
benutzt. Als Wert ist syntaktisch einSprachcode gemäßISO 639 usw. anzugeben; auch sinngemäße Wiki-Erweiterungen sind möglich.
Es wird dem Element eine menschliche Sprache zugewiesen.lang="fr"
kennzeichnet als französisch,lang="de-AT"
als österreichisch.
Das kann durchScreenreader oder zur Auswahl besonders geeigneterSchriftarten[5] ausgenutzt werden.
Die Verwendung einesXML-Namensraums, alsoxml:lang="it"
, ist weder hier noch anderswo zulässig.
Die Zuweisung wird in Artikeln möglichst nicht direkt verwendet, sondern meist überVorlage:lang undandere.
Schreibrichtung (Projektstandard: von links nach rechts); die Zuweisung wird in Artikeln nicht direkt verwendet, sondern überspezielle Vorlagen.
title
[Bearbeiten |Quelltext bearbeiten]Auf allen sichtbaren Elementen wird der Inhalt alsTooltip dargestellt; in der Regel aber nur auf Desktop-Geräten und nicht auf Mobilgeräten mitTouchscreen. Der Inhalt des Attributs ist einfacher Text ohneMarkup; ein Zeilenumbruch kann mittels
erzeugt werden.
Mit der Zuweisung einer leeren Zeichenkettetitle=""
würde sich der Tooltip umgebender Bereiche unterdrücken lassen.
Diese Funktionalität darf nur unterstützende und keine bedeutungstragende Informationen anbieten, da sie technisch nicht von allen wahrgenommen werden kann und das Publikum auch nicht vermuten kann, dass gelegentlich an einer unscheinbaren Stelle mittels Mauszeiger weiterer Text sichtbar gemacht werden könnte. Insbesondere für laufende enzyklopädische Artikeltexte ist dies nicht geeignet; bei Funktionsseiten und interaktiven grafischen Elementen kann der Leser auf die Möglichkeiten hingewiesen werden.
role
[Bearbeiten |Quelltext bearbeiten]Mittelsrole=
und ggf. gekoppelt mitaria-hidden=
wirdBarrierefreiheit unterstützt. Ein Teil der Elemente wird dabei gekennzeichnet, dass sie besonders wichtig zur Navigation innerhalb desselben Dokuments wären, oder zu inhaltlich eng damit zusammenhängenden anderen Seiten; ein anderer Teil der Elemente wäre für Blinde redundant und verwirrend und belästigt nur, weshalb sie nicht erwähnt würden. Im Quelltext von enzyklopädischen Artikeln wird dies nicht verwendet. SieheARIA zu den Einzelheiten.
Veraltete Attribute
[Bearbeiten |Quelltext bearbeiten]Die nachstehenden Attribute sind nicht mehr zeitgemäß und sollten im Rahmen von Überarbeitungen durch Zuweisungen imstyle= oder eine Klassenangabe ersetzt werden:
align= bgcolor= border= clear= color= height= valign=
Dadurch kommt es auch zu einer einheitlichen Nutzung von CSS statt unterschiedlicher historischer Sonderregelungen, die auf Dauer verwirren. In den meisten Fällen gehört auch das sehr oft überflüssige und heutzutage falsches Layout erzwingendewidth=
dazu. SieheHilfe:CSS, insbesonderebetreffend Tabellen.
Verarbeitungsablauf
[Bearbeiten |Quelltext bearbeiten]- Von der Wiki-Verarbeitung nicht abgefangene und selbst verarbeitete Tags bleiben im Text stehen. Zurzeit ist dafür auch die Aufnahme in eine Positivliste erforderlich; sieheVerbotenes HTML.
- Sie werden somit zum Ausgabe-Dokument weitergereicht, und es sollte sich um gültige HTML-Syntax handeln.
- Die Elemente der Wiki-Syntax (Links, Apostroph usw.) werden ggf. ebenfalls in HTML umgewandelt.
- Bevor dies zum Leser ausgeliefert wird, läuft noch eine FunktionRemexHTML (früher verwendet:HTML Tidy[6]) und versucht, das entstandene Gemenge zu interpretieren und als standardkonformes HTML zu formatieren.
Wiki-Erweiterung
[Bearbeiten |Quelltext bearbeiten]In der deutschsprachigen Wikipedia sind neben derBasis-Wikisyntax die folgenden nur in Wikis gültigen Tag-Bezeichner definiert:
categorytreececharinsertchemgallerygraphhiddentexthieroimagemapincludeonlyindicatorinputboxlangconvertlanguagesmaplinkmapframemathnoincludenowikionlyincludephonospoempreref referencesscoresection(source) syntaxhighlighttemplatedatatemplatestylestimelinetranslatetvar
Die aktuell wirksamen Erweiterungen können aufSpezial:Version nachgelesen werden.
charinsert
[Bearbeiten |Quelltext bearbeiten]Dieses Element ist ausschließlich dafür vorgesehen, Verlinkungen zum Einfügen von Text-Elementen in das Bearbeitungsfeld zu programmieren. Der eingeschlossene Bereich wird umgewandelt in ein Link, das die wikibits-FunktioninsertTags()
aufruft. Derartige Links sind mit sonstiger Wikisyntax nicht möglich.
- mw:Extension:CharInsert (englisch)
nowiki
[Bearbeiten |Quelltext bearbeiten]Im von<nowiki>
……</nowiki>
umschlossenen Bereich hat die Wiki-Syntax keine Wirkung.
- Alternativ kann man auchEntities verwenden, wenn nur wenige Zeichen maskiert werden sollen. Das ist in einem normalen Quelltext jedoch weniger gut lesbar und wäre eher etwas für dieVorlagenprogrammierung.
Mit<nowiki />
alsunary tag wird die Wiki-Verarbeitung unterbrochen; das wird bei Zusammensetzungen mit Wikilinks benutzt, wenn das anschließende Wort nicht als Linktitel dargestellt werden soll:Mondlandung über[[Mond]]<nowiki />landung
.
DieEntities&...;
sind keine Wiki-Syntax, wirken nur auf Zeichen-Ebene und werden durchnowiki
nicht beeinflusst. Eine Quellcode-Wiedergabe, bei der auch Entities wie angegeben sichtbar bleiben, kann mit<syntaxhighlight lang="text">
erreicht werden.
Sollnowiki
zwar im Prinzip Verlinkungen und andere Syntaxelemente unwirksam machen, jedoch zuvorParserfunktionen (undVorlagen) auswerten, lässt es sich für die Vorlagenprogrammierung und interne Dokumentationen mittels der Funktion#tag
darstellen:
{{#tag:nowiki| ... {{PAGENAME}} ... }}
Basis-Syntax
[Bearbeiten |Quelltext bearbeiten]In jedem Projekt werden folgende eingebaute Elemente interpretiert:
hiddentext includeonly noinclude nowiki onlyinclude
Zusätzlich kann jedes Projekt individuell optionale Software-Komponenten zusammenstellen, dieExtensionen („Erweiterungen“); sieheSpezial:Version.
langconvert
[Bearbeiten |Quelltext bearbeiten]Dieses Element hat zwei Pflicht-Attributefrom
undto
, welche Sprachcodes für konvertierbare Variantenderselben Sprache enthalten müssen.
Das gibt es möglicherweise für Serbisch oder Chinesisch; für uns wenig relevant.
HTML-Philosophie
[Bearbeiten |Quelltext bearbeiten]Die in unserem Wikitext erlaubten HTML-Elemente tragen nach zwei Methoden zum dargestellten Text bei:
- Inline-Elemente – sie beeinflussen die Schriftgestaltunginnerhalb einesFließtextes; also dessen Farben, Größe, Schriftart und mehr.
- Block-Elemente – sie arrangieren dasLayout der Seite. Jedes Block-Element lässt sich als ein rechteckiges Zettelchen vorstellen; auf der Seite werden dann vom Browser all diese Rechtecke nebeneinander, selten ineinander und ansonsten untereinander angeordnet.
- Kommentare sind zwar erlaubt, wirken aber nicht auf das generierte HTML-Dokument.
Inline-Elemente
[Bearbeiten |Quelltext bearbeiten]- Das universelle Inline-Element in HTML heißt<span>.
- Dies ist nur sinnvoll, wenn ihm auchAttribute mitgegeben werden.
- Weitere gebräuchliche wären beispielsweise:
<small>
<sub>
<sup>
<code>
- In der Regel treten Inline-Elementepaarig auf, also mit Anfangs- und End-Tag, und erwarten Textinhalt dazwischen.
<br />
ist eine Ausnahme davon, ist Teil des Fließtextes und ebenso das seltene<wbr />
.- Die Wikisyntax steuert bei:
''
und'''
für Kursiv- und Fettschrift sowie alle Verlinkungen.
Innerhalb der Spannweite eines Inline-Elements darfniemals einBlock-Element auftreten; auch nicht das Ende eines Absatzes.
<code>
erlaubt auch keinen Zeilenumbruch, da es nur für Einzelwörter oder kurze Wortgruppen gedacht ist.
Der einfache Text, ggf. streckenweise mit Inline-Elementen besonders formatiert, wird (typischerweise alsFließtext) in einBlock-Element „hineingegossen“.
Block-Elemente
[Bearbeiten |Quelltext bearbeiten]- Das universelle Block-Element in HTML heißt
<div>
. Es wird in der Regel ein Attribut tragen. - Block-Elemente bedürfen in HTML nahezu immer eines Anfangs- und End-Tags; zumindest sofern im Wikitext erwünscht.
- Von den Elementen der Wikisoftware sind Block-Elemente:
- Alle Absätze (etwa durch Leerzeile beendet).
- AlleÜberschriften.
- AlleAufzählungen und Listen und jedes einzelne Element darin.
- AlleTabellen, Tabellenzeilen und einzelne Tabellen-Zellen.
- Vorformatierter Text mit einem Leerzeichen zu Beginn der Zeile.
<pre>
, wodurch ein HTML-Element gleichen Namens maskiert wird.
Block-Elemente können einfachen Text (ggf. streckenweise mit Inline-Elementen formatiert) sowie andere Block-Elemente enthalten.
Sie können zentriert ausgerichtet sein oder für denLayoutfluss adressiert werden; zumindest das Element als Ganzes, etwa die gesamte Tabelle.
Generiertes HTML
[Bearbeiten |Quelltext bearbeiten]Die Basis-Syntax der Wikisoftware generiert letztlich auch immer HTML-Elemente, die in das HTML-Dokument eingefügt werden.
- Meist handelt es sich um Block-Elemente.
- Zu den Inline-Elementen gehören
''
und'''
für Kursiv- und Fettschrift, auch alle Verlinkungen. - Bilder können in beiden Rollen auftreten; standardmäßig sind sie Inline-Elemente, aber mit Parametern etwa als Miniaturbild werden sie zum Block-Element.
<ref>
istinline an der Stelle, wo dasEndnotenzeichen auftritt; die Einzelheiten selbst im Block<references>
sind ein Aufzählungspunkt und somit Teil eines Blockes.<syntaxhighlight>
ist standardmäßig Block-Element, hat aber einen Parameterinline
, der das umkehrt.- Beieingebundenen Seiten (etwa Vorlagen) gilt, was sich aus der Expansion ergibt.
Sinnvolles HTML für Artikel und Seitentexte
[Bearbeiten |Quelltext bearbeiten]Uneingeschränkt auf allen Seiten sinnvoll ist nur ein kleiner Teil an Elementen aus der allgemeinenHypertext Markup Language:
Im laufenden Artikeltext sind ungewöhnliche Formatierungskonstrukte für die anderen Autoren unverständlich und störend; hier sollten sie in allgemein verwendbareVorlagen mit einem sprechenden Namen eingebettet werden. Autoren allgemeiner Artikel sollen imFließtext nicht mit kryptischen Syntaxbasteleien konfrontiert werden.
Bei Tabellen und schematischen Darstellungen im Artikel kann der Einsatz von Farben und besonderer Formate über die Standard-Elemente hinaus erforderlich und sinnvoll sein.
In fremdsprachlichen Textabschnitten (insbesondere in asiatischen Schriften) wäre auch dieRuby-Notation und weitere Schrift-Information vorstellbar mit den Elementen
bdi ruby rb rp rt rtc
– dazu würde auch das zurzeit von der Softwarenicht unterstützterbc
gehören.
Auf einer Positivliste vermerkte HTML-Elemente werden von der Wiki-Software in den Ausgabetext durchgereicht. Bei unbekannten Elementen werden auch die Tags dargestellt und unwirksam; Gleiches gilt für alleausdrücklich verbotenen Elemente. Damit können zwar die meisten HTML-Elemente benutzt werden; es sind aber nicht alle HTML-Elemente im Wikitext wünschenswert und sinnvoll.
Kommentar
[Bearbeiten |Quelltext bearbeiten]- Ein Kommentar beginnt mit der Zeichenkette
<!--
und endet mit der Zeichenkette-->
(auch über Leerzeilen hinweg). - Der Kommentar erscheint nicht auf der dargestellten Seite; er wird auch nicht als Kommentar in die generierte HTML-Seite eingebettet.
- Text zwischen den beiden äußeren Zeichenketten darf weder mit der Zeichenkette
>
oder der Zeichenkette->
beginnen, noch die Zeichenketten<!--
,-->
oder--!>
enthalten, noch mit der Zeichenkette<!-
enden.
Tags sollen innerhalb des Textes eines Kommentars möglichst nicht enthalten sein. Ist dies doch der Fall, so ist unbedingt darauf zu achten, dass die Tags außerhalb der Kommentare weiterhin in sich geschlossene Konstrukte bilden, jedesvoid element (Element in der Form einesunary tag) also mit seinem vollständigen Start-Tag unzerrissen, entweder gänzlich außerhalb oder gänzlich innerhalb eines Kommentars steht, und bei jedem sonstigen Element sowohl der es abgrenzende Start-Tag als auch der es abgrenzende End-Tag gemeinsam entweder gänzlich außerhalb oder gänzlich innerhalb eines Kommentars stehen. - Als Kommentare sind vorgesehen:
- Technische Hinweise für Bots, Skripte und Autoren, etwa
<!--sic! -->
- <!--schweizbezogen-->
- Technische Hinweise für andere Autoren; etwa aufFormatvorlagen oder Parameterwerte,Einbindung dieser Seite durch andere Seiten, Aktualisierung durchBots.
- Kleine Hinweise für andere Autoren zur Formatierung; mögliche Verwechslungen oder kleine Schreib- und Formatfehler im Original; technische Details zu Quellenangaben und Verlinkungen oder sonstige Tücken; Warnung vor unerwünschten Aufblähungen.
- Technische Hinweise für Bots, Skripte und Autoren, etwa
- Allgemeine inhaltliche Hinweise gehören auf dieDiskussionsseite zum Artikel oder für alle Leser sichtbar im Text vermerkt.
Ausführlich siehehier.
- Das Element
<br />
erzeugt einenZeilenumbruchinnerhalb einesTextblocks. - Am Ende von Textblöcken ist
<br />
unwirksam und deshalb überflüssig. Das können beispielsweise sein: einAbsatz, eine Aufzählungsposition, Tabellenzellen oder Bildlegenden. Am Anfang eines solchen Blocks könnte ein Umbruch ebenfalls wirkungslos sein. - Das Element
<br />
hat keine gültigen Attribute, insbesondere nichtclear=
. - Zur Typografie gilt:
- ImFließtext von Artikeln ist ein Abbruch des Leseflusses unerwünscht. Entweder beginnt man einen neuen Gedanken und macht dazu einen neuenAbsatz (durch Leerzeile/n) oder man setzt den Gedankengang in derselben Zeile fort.
- Sinnvoll sind Zeilenumbrüche dort, wo auf begrenztem Raum eine optische Gliederung erfolgen soll: Tabellenzellen und Bildlegenden; auch die inhaltliche Gliederung einer einzelnen Aufzählungsposition (Listenpunkt) ohne Beginn einer weiteren Nummerierung oder eines zusätzlichen Aufzählungszeichens.
- Zwei aufeinanderfolgende Zeilenumbrüche sind in der Regel nicht sinnvoll; hier ist ein Absatz zu machen.
- Das
<br />
kann innerhalb einer Quelltext-Zeile stehen; eine neue Quelltext-Zeile muss nicht begonnen werden. Allerdings erleichtert ein Zeilenwechsel im Quelltext das Behalten der Übersicht für nachfolgende Autoren (außer in Listenpunkten: dort unterbricht jeder Zeilenwechsel die Auflistung/-zählung).- Bei Ansicht des Quelltextes wird dieser besser auf Zeilen aufgeteilt, wennhinter dem
<br />
ein einfaches Leerzeichen steht, bevor dieselbe Quelltext-Zeile fortgesetzt wird. Auf die spätere Darstellung für das Publikum darf das keinen Einfluss haben; aber im Bearbeitungsfeld bleibt<br />
eher als Einheit sichtbar und Zeilenanfang im Quelltext und in der Darstellung beginnen dann ggf. beide am linken Rand.
- Bei Ansicht des Quelltextes wird dieser besser auf Zeilen aufgeteilt, wennhinter dem
- In HTML4 war die Schreibweise nur
<BR>
, anders das<br />
derXHTML-Spezifikation, welches in den nachfolgenden Web-StandardHTML5 gleichberechtigt übernommen wurde. Intern werden alle diese Tags (HTML5-konform) in<br>
umgewandelt. Es ist zwingend einunary tag;<br></br>
sind daher zwei Zeilenumbrüche und keinleeres Element. - Das
<br />
wird unmittelbar an das Ende der Zeile angefügt. Es gehört ebenso zu dieser Zeile wie auch die in Textverarbeitungsprogrammen gelegentlich dargestellteAbsatzmarke ¶ . Darauf könnte auf Wunsch zunächst ein Leerzeichen, eine neue Quelltext-Zeile oder sofort die nächste inhaltliche Zeile folgen:- Am Ende einer Zeile¶
- steht dieAbsatzmarke.
code
[Bearbeiten |Quelltext bearbeiten]Mittels<code>
……</code>
werden im laufenden Text Bereiche inSchreibmaschinenschrift dargestellt. Damit sind Buchstaben deutlich unterscheidbar; etwai I l 1 |
können nicht verwechselt werden. Das ist für Computercode interessant.
- Wikisyntax wird innerhalb des Bereichs ersetzt.
- Mittels
<code>
wird standardmäßig ein Rahmen dargestellt; das Element ist nur für sehr kurze, also einzeilige Schlüsselwörter oder Textsequenzen vorgesehen. Ein Zeilenumbruch ist nicht sinnvoll.Mehrzeilige Textpassagen können mittelsDer Inhalt von<tt>
in Schreibmaschinenschrift dargestellt werden.<code>
mussInline-Fließtext sein; Block-Elemente sind nicht erlaubt. - Wenn ein ganzer Textblock in Artikeln dargestellt werden soll, empfiehlt sich der Einschluss mittels
<syntaxhighlight lang="text">
(oder spezifischere Formate).- Bevor diese Möglichkeit vorhanden war, hatte man
<code>
für solche Zwecke verwendet. - Zurzeit wird der
code
-Bereich auf weißem Hintergrund dargestellt. Das ist normalerweise nicht zu bemerken und wird wohl eines Tages entfallen; geht auch noch auf frühere Einsatzzwecke zurück. - Linktexte sind damit aber leider auch nicht erkennbar, wenn die Ausdehnung von Verlinkung und Code-Block gleich sind. Dafür und bei farbigem Hintergrund muss noch auf
<tt>
ausgewichen werden, oder die<code>
-Tags müssen die vollständige Verlinkung umschließen.
- Bevor diese Möglichkeit vorhanden war, hatte man
- Wenn der Zeilenumbruch in einer kurzen Code-Sequenz vermieden werden soll, lässt sich schreiben:
<code>
……</code>
Längere Sequenzen gehören in einen eigenen Block. - Der Inhalt von
<sub>
und<sup>
mussInline-Fließtext sein; Block-Elemente sind nicht erlaubt. <code>
ist Nachfolger des veraltenden<tt>
.
Mittels<div>
wird ein Element auf derTextblock-Ebene definiert. Ein Textblock beginnt im Regelfall in einer neuen Zeile; ansonsten gehören auch Tabellenzellen und Bildlegenden dazu.
In Artikeln ist außerhalb von schematischen Darstellungen nur eine einzige Verwendung erforderlich:
<div></div>
Damit wird bewirkt, dass nach Einbindung von Bildern oder Tabellen das Seitenlayout wieder über die volle Breite reicht; erforderlichenfalls wird ein Leerraum bis unter das unterste vorangegangene Bild eingefügt.
Es wird auch durch die Vorlage{{Absatz}} eingefügt.[7]
Nicht zulässige und nicht von allen Browsern verstandene Formen sind
<br />
br
ist kein Element auf Textblock-Ebene, wie es für das Seitenlayout erforderlich wäre.
<div />
- Das Schlüsselwort lautet
both
.
- Das Schlüsselwort lautet
<div clear="all" />
clear
ist kein standardisierter Attribut-Name.
<div />
- „Selbstschließende“ Inhaltselemente sind für HTML seit Sommer 2016 nicht mehr zulässig.[2]
Daneben wäre stattboth
auch nochleft
undright
als Schlüsselwort vorstellbar; dies ist aber für die Gestaltung normaler Wiki-Seiten irrelevant (angebrachtesBeispiel).
In derVorlagenprogrammierung werden<div>
-Elemente benutzt, um Textblöcken Klassen und Stile zuzuweisen; das mag auch zu grafischen Darstellungen in Artikeln eingesetzt werden.
small
[Bearbeiten |Quelltext bearbeiten]- Der Text wird eine Stufe kleiner geschrieben. Damit sollte man es im normalen Text bewenden lassen, nur imFormelsatz mittels
<math>
können weitere Verkleinerungen sinnvoll sein. - Oft ist eine kleinere Schrift typografisch aber überhaupt nicht sinnvoll; es könnte genauso gut in normaler Schriftgröße geschrieben und dafür in Klammern gesetzt werden.
- Innerhalb bereits kleiner geschriebener Bereiche ist eine weitere Verkleinerung teils technisch unwirksam (weil je nachSkin nicht relativ zur Umgebung gerechnet wird), teils führt dies dazu, dass Leser mit Augenproblemen den Text nicht mehr lesen können oder Endgeräte die Zeichen nicht mehr unterscheidbar darstellen. Innerhalb von
sub
undsup
, Bildlegenden,ref
sollsmall
nicht benutzt werden. - Generell soll kein wesentlicher, bedeutungstragender Inhalt mittels
<small>
verkleinert werden; nur regelmäßig wiederholte Standard-Texte, deren Bedeutung sich auch erraten lässt, sind für eine starke Verkleinerung geeignet. - Der Inhalt von
<small>
mussInline-Fließtext sein; Block-Elemente sind nicht erlaubt. - Die Wirkung von
<small><small>
ist undefiniert. Es ist nicht festgelegt, ob dies als Verkleinerung der Verkleinerung dargestellt werden soll oder ob es beim Status einer Verkleinerug der Basis-Schrift bleiben soll.
sub sup
[Bearbeiten |Quelltext bearbeiten]Die Elementesub
undsup
bewirken die Tief- und Hochstellung des eingeschlossenen Textes. Dieser wird gleichzeitig kleiner geschrieben. Dabei soll kein zusätzliches<small>
benutzt werden; auch sollen keine anderensub
odersup
enthalten sein. Für solche Fälle (Formelsatz) gibt es<math>
.
Zur Typografie und Zeichenkodierung gilt:
- Die Exponenten für Quadrat und Kubik bei haushaltsüblichen Einheiten (etwa m² und m³) werden nicht mit
sup
geschrieben, sondern mit den einzelnen Zeichen ² (PC-Tastatur:AltGr+2) und ³ (PC-Tastatur:AltGr+3);ANSI 17810 und 17910, auch erreichbar über die Eingabehilfen unter dem Quelltext-Bearbeitungsfeld. - Alle anderen Exponenten werden mit
sup
geschrieben, auch wenn es dafürUnicode-Definitionen gibt. Diese werden jedoch nicht bei allen Lesern dargestellt. - Treten in einer Textpassage Quadrate und andere Exponenten gleichzeitig auf, sind alle Exponenten einheitlich mit
sup
zu formatieren, weil die grafische Darstellung meist etwas abweicht. - Der Inhalt von
<sub>
und<sup>
mussInline-Fließtext sein; Block-Elemente sind nicht erlaubt. - In der musikalischen Notation werden alle hochgestellten Ziffern einheitlich mit
sup
geschrieben. - Die tiefgestellten Indizes werden immer mit
sub
geschrieben, auch wenn es dafür einigeUnicode-Werte gibt. Diese werden jedoch nicht bei allen Lesern dargestellt und fallen auch so klein aus, dass sie von einem nennenswerten Teil des Publikums nicht unterschieden werden können.
Beispiel:T<sub>A</sub><sup>−1</sup>
wird zu TA−1.
HTML außerhalb der Artikel
[Bearbeiten |Quelltext bearbeiten]Für dieVorlagenprogrammierung, bei Funktionsseiten vor allem zu technischen Angelegenheiten und in Diskussionen oder auf Benutzerseiten kommen weitere Elemente in Frage:
Innerhalb von Artikeltexten sind sie nur im Ausnahmefall einzusetzen.
span
[Bearbeiten |Quelltext bearbeiten]<span>
ist ein Universal-Element für beliebige Textformatierungen. Alle anderen Formatierungselemente auf Zeichen-Ebene ließen sich im Prinzip durchspan
ersetzen. Im Unterschied zu<div>
wirkt esinline, das heißtinnerhalb eines Textblocks (Absatzes), und ordnet insbesondere die Attributeclass
,id
,style
einem Textstück zu.
Im Regelfall werden die dadurch entstehenden, zuweilen komplizierten Gebilde nur innerhalb der Vorlagenprogrammierung und auf Funktionsseiten zu technischen Angelegenheiten verwendet.
Mit<pre>
wird ein Block an kodierter Information dargestellt, das heißt inSchreibmaschinenschrift und mit dem vorgefundenen Zeilenumbruch des Quelltextes.
- Als Wikisyntax wären auf normalen Seiten Zeilen mit einem Leerzeichen als erstes Zeichen jeder Zeile zu verwenden.
- Im Unterschied dazu wird aber innerhalb von
<pre>
……</pre>
die meiste Wikisyntax nicht interpretiert; es ist also gleichsam eine Kombination mit<nowiki>
.
- Im Unterschied dazu wird aber innerhalb von
- Es ist eineWiki-Erweiterung, die einem gleichbenannten HTML-Element überlagert ist.
- Übliche HTML-Attribute können zugewiesen werden; namentlich
style=
. - Eine Alternative wäre
<syntaxhighlight lang="…">
– ggf. mitlang="text"
universell.
abbr acronym
[Bearbeiten |Quelltext bearbeiten]Mit<abbr>
(und<acronym>
) lassen sich Abkürzungen als solche kennzeichnen. Die semantisch feine Unterscheidung zwischen beiden Elementen hat sich kaum durchgesetzt.
- In der HTML-Welt hat
<acronym>
keine Zukunft. Die Ausdifferenzierung (Abkürzung, Akronym, Apronym, Initialwort, Silbenkurzwort; expandiert, in Worten gesprochen oder buchstabiert [Screenreader]) soll zukünftig über anwenderspezifischesclass=
nur noch mittels<abbr>
erfolgen.[8]
MediaWiki hat zurzeitacronym
nicht auf derPositivliste.
Neben Verlinkungen und Bildern waren das in HTML.4 die einzigen grafischen Elemente, die einenTooltip anzeigen, wenn man mit demMauszeiger darüber fährt; dies sollte die Erläuterung zur Abkürzung sein. Für modernere Browser kann auch das Universalattributtitle=
jedem sichtbaren Element zugeordnet werden; allerdings wissen Leser zunächst nicht, dass sie einen Tooltip erhalten werden, wenn sie den Mauszeiger dorthin bewegen.
In Artikeln wird dieses Element nicht verwendet; Wikilinks auf die Langform zu einer Abkürzung haben hinsichtlich des Tooltips den gleichen Effekt.
Beispiel
- AI – erzeugt mit abbr-Tag:
<abbr title="Amnesty International">AI</abbr>
- AI – erzeugt mit Wikilinks:
[[Amnesty International|AI]]
In der MW-Software gibt es die analogeclass="explain"
und ermöglicht individuelle Erklärungen. Sie arbeitet mit derCSS-Deklarationcursor:help
– diese ist ab CSS2 (1998) verfügbar, unterstreicht den Bereich üblicherweise mit einer gestrichelten Linie und zeigt meist ein Fragezeichen, wenn derCursor dort steht.
Redaktionelle Markierungen
[Bearbeiten |Quelltext bearbeiten]s strike
[Bearbeiten |Quelltext bearbeiten]Mit diesen Tags wird der dazwischen liegende Text innerhalb einer Zeile durchgestrichen.
MitHTML5 (schon seit HTML4) ist<strike>
nicht mehr standardkonform;<s>
hat seine Semantik leicht gewandelt, was für Wiki-Anwendungen irrelevant ist.
Sollen komplette Textblöcke durchgestrichen werden, dann bitte auf
<divstyle="text-decoration:line-through">Textblock: Einrückung* Aufzählung</div>
umstellen, oder jede Zeile einzeln durchstreichen.
del ins
[Bearbeiten |Quelltext bearbeiten]Diese Elemente gehen über die reine Textformatierung hinaus; hier sollen auch Angaben zum Autor (Verlinkung) und Zeitpunkt gemacht werden und es soll eine optische Zuordnung (Farben) zu den einzelnen Veränderungsphasen oder Autoren sichtbar werden.<del>
wird meist durchgestrichen dargestellt.
Das mag in einem Artikel zur Entstehung von Gedichten, Gesetzestexten usw. einmal sinnvoll sein, wäre ansonsten allenfalls bei der Erarbeitung Wiki-interner Texte einzusetzen.
mark
[Bearbeiten |Quelltext bearbeiten]Die Kennzeichnung<mark>
(Textmarker-Funktion) ist eher gedacht zur dynamischen Einfügung in die fertige HTML-Seite, als dass es im Quelltext des Wikis dauerhaft vorhanden sein sollte (hierfür wäre<span>
zu verwenden).
Mit<mark>
kennzeichnet man in einem statischen Text vorübergehend den Bezug zu wechselnden Anmerkungen oder Belegen, oder man markiert das Vorkommen von aktuellen Suchbegriffen. Die konkrete Farbe wird dynamisch vom Browser so festgelegt, dass sie mit den im markierten Bereich vorhandenen Schrift- und Hintergrundfarben kontrastiert.
Die MediaWiki-Installation übersteuert allerdings im Moment dieses Verhalten und gibt explizit vor: Schwarze Schrift auf gelbem Hintergrund, weil älteren Browsern das neue HTML-5-Element unbekannt ist und wirkungslos bleiben würde.
Unerwünschtes HTML
[Bearbeiten |Quelltext bearbeiten]Es sind über 110 verschiedene Element-Namen in HTML bekannt. Sie tragen teils kontextabhängige semantische Feinheiten, teils sind sie veraltet. Wiki-Autoren sollen sich damit nicht auseinandersetzen müssen.
Wikisyntax
[Bearbeiten |Quelltext bearbeiten]Wo die Wikisyntax selbst Möglichkeiten bietet, sollen keine HTML-Elemente eingebracht werden.
Element | Bedeutung | Ersatz durch Wikisyntax |
---|---|---|
b strong | Hervorhebung; Fettschrift | Drei Apostrophzeichen ''' |
i em | Hervorhebung; Kursivschrift | Zwei Apostrophzeichen '' |
p | Absatz | Leerzeile |
<hr /> | Trennlinie | Vier Bindestriche---- Im Artikel-Layout unerwünscht |
ol ul li | Aufzählung | Stern * und Hashcode # |
dl dt dd | Definitionsliste | Semikolon ; und Doppelpunkt : |
h1 h2 h3 h4 h5 h6 | Überschrift | Gleichheitszeichen = |
table td th tr thead caption tbody col colgroup tfoot | Tabellensyntax | Tabellensyntax |
Gelegentlich werden temporär auf internen Funktionsseiten wie etwa Wartungslisten die Ergebnisse externer Software eingetragen, die laufend aktualisiert werden. Sie sind ggf. nicht in Wikisyntax, sondern mittels HTML formatiert, und dort ist das auch nicht zu beanstanden.
Formatierung
[Bearbeiten |Quelltext bearbeiten]Diese Tags sollen in Artikeln und Projektseiten nicht verwendet werden. Nur im Rahmen der Vorlagenprogrammierung wird ggf. von den semantischen Eigenschaften der ersten drei Tags Gebrauch gemacht.
Element | Bedeutung | Ersatz |
---|---|---|
<blockquote> | Blockzitat | Vorlage{{Zitat}} oder fremdsprachliche Varianten |
<q> | eingebettetes Zitat | Vorlage{{"}} |
<cite> | Titel eines Werks | Kursivschrift |
<u> | Unterstreichung | Kursivschrift (Verwechslung mit Verlinkung; Irritation der Leser) |
Ungebräuchliches HTML
[Bearbeiten |Quelltext bearbeiten]Gelegentlich wird noch gefunden oder thematisiert:
Element | Bedeutung | Ersatz |
---|---|---|
big | Große Schrift | style="font-size:larger;" |
center | Zentrierung | class="centered" class="center" |
font | Schrifteigenschaften | style="…" |
tt | Darstellung inSchreibmaschinenschrift | <code>code</code> |
dfn,kbd,samp,var | Software-Dokumentation | <code> |
nobr | Kein Zeilenumbruch (Nicht standardisiert) | style="white-space:nowrap;" |
<wbr /> | Worttrennung möglich (ohneTrennstrich) (Seit HTML5 standardisiert) Im Fließtext unerwünscht | ­ (mit Trennstrich) Im Fließtext unerwünscht |
Es gibt noch etliche weitere Tags in HTML; diese sind aber bislang in Wikitexten nicht in Erscheinung getreten.
Dieses Element soll nicht verwendet werden.
- Zeichen aus außereuropäischen Schriften sind in die entsprechenden Vorlagen derKategorie:Vorlage:Fremdsprachenunterstützung einzubetten, die auch andere Eigenschaften projektweit geeignet zuordnen.
- Für Überschriften ist Wikisyntax zu benutzen.
- Zwischenüberschriften etwa in Infoboxen sind bei derVorlagenprogrammierung über
<span>
zu realisieren. - Die Wirkung von
<big><big>
ist undefiniert. Es ist nicht festgelegt, ob dies als Vergrößerung der Vergrößerung dargestellt werden soll oder ob es beim Status einer Vergrößerung der Basis-Schrift bleiben soll.
MitHTML5 ist<big>
auch nicht mehr standardkonform.
center
[Bearbeiten |Quelltext bearbeiten]Mittels<center>
wurde ein Element innerhalb eines Blocks (horizontal) mittig ausgerichtet.
Es wird nicht gern gesehen, Artikel nach individuellem Geschmack umzugestalten; Bildlegenden usw. folgen einem einheitlichen Layout.
Wo wirklich erforderlich, kann mit dem Attributclass="centered"
ein ganzer Block zentriert werden; außerdem mitclass="center"
fast jedes Tag zur mittigen Ausrichtung seines Inhalts gebracht werden. Näheres siehe aufTG/Zentrieren.
MitHTML5 (schon seit HTML4) ist<center>
nicht mehr standardkonform; es sollte deshalb nicht mehr neu eingefügt und allmählich aus der Wikipedia entfernt werden. Es kann durch die genanntenclass
ersetzt werden.
Bei Tabellen istclass="center"
der adäquate Ersatz für einzelne Felder oder die Tabelle insgesamt, in Fällen ohne Element steht, wenn erforderlich, dieVorlage:Center zur Verfügung.
font
[Bearbeiten |Quelltext bearbeiten]Dieses Element spezifizierte Einzelheiten zur Schriftart, Schriftgröße oder andere Darstellungsformen. Das wird seit langem über das allgemeinere<spanstyle="">
realisiert.
MitHTML5 ist<font>
nicht mehr standardkonform, war schon 1998 mit HTML4 obsolet und sollte unbedingt aus allen Wikiseiten entfernt werden.
Im Übrigen sind die Wiki-Seiten schlicht gehalten und verwenden nicht lauter verschiedene fein abgestufte Schriftgrößen. Für außereuropäische Schriften werden dem Browser Hinweise zu geeignetenZeichensätzen überentsprechende Vorlagen gegeben.
DasHTML-Element<tt>
……</tt>
(kurz fürteletype text) bewirkte die Darstellung inSchreibmaschinenschrift. Es wurde 2017 als veraltet eingestuft und die Verwendung wird alsLintError gelistet, daher sollte es nicht mehr eingefügt werden.
- Die Wirkung entspricht grundsätzlich der von
<code>
.- Es gibt Unterschiede betreffend Hintergrundfarbe (transparent) und Schriftgröße; auch abhängig vom Kontext undSkin.
- Während
<tt>
auch mehrzeilige Textpassagen erlaubt, ist<code>
standardmäßig mit einem Rahmen umgeben und nur für sehr kurze, also einzeilige Schlüsselwörter oder Textsequenzen vorgesehen.
- Ein Element (etwa
<span>
) könnte mitstyle="font-family:monospace;"
ausgestattet werden.
<tt>
ist (mit HTML5) eine veraltete und langfristig nicht mehr unterstützte Notation in HTML. Weil es jedoch sehr leicht zu tippen ist, war es aber noch häufig in Wikitexten anzutreffen. Sollte es einmal nicht mehr von Browsern unterstützt werden, kann seine Wirkung eigentlich sehr leicht durch ein MediaWiki-Element gleicher Syntax wahrgenommen werden.
AufWikisource wird oder wurde<tt>
……</tt>
abweichend vom HTML-Standard zur Darstellung inAntiqua-Schriften benutzt.
HTML 2
[Bearbeiten |Quelltext bearbeiten]dfn kbd samp var
In HTML 2 gemäßRFC 1866 von 1995 gab es noch keinCSS und keinestyle
-Vereinbarungen. Deshalb musste jedes unterschiedliche Markup damals ein gesondertes Element erhalten.
Seinerzeit sah man als wesentliches Einsatzgebiet die Erstellung technisch-wissenschaftlicher Dokumente; insbesondere auch automatisch generierteSoftware-Dokumentation, die durch spezielle Tags unterstützt werden sollte. Aus diesem Kontext stammen diedfn kbd samp var
– heute benutzt man dafürKlassen und CSS-Stile.
Als Darstellung fürkbd undsamp warSchreibmaschinenschrift vorgesehen;var unddfn werden meist kursiv dargestellt.
Für Tastatur-Eingaben einzelner Zeichen verwenden wir nicht direkt<kbd>
, sondern{{Taste}}; bei allen anderen Anwendungen steht<code>
oder<syntaxhighlight>
zur Verfügung; selbst<tt>
. Kursivschrift wird durch Apostrophe erreicht.
Das Element<samp>
hat die semantische Bestimmung, den Output oder die Antwort von Computerprogrammen darzustellen. Zusammen mit<kbd>
bildet es den Eingabe-Ausgabe-Dialog vontextorientierten Konsolen der damaligen Zeit. Auf keinen Fall dürfen diese semantischen Elemente dazu missbraucht werden, Schreibmaschinenschrift zu generieren, nur weil das zufällig auch die gängige Darstellungsweise sei.
Andere Wikiprojekte
[Bearbeiten |Quelltext bearbeiten]Nicht in der deutschsprachigen Wikipedia, aber in anderen Wikiprojekten könnte man zusätzlichenWiki-Erweiterungen begegnen. Dazu gehören:
- <languages />
- Weist in mehrsprachigen Projekten auf der üblicherweise englischsprachigen Oberseite darauf hin, dass bestimmte Übersetzungen in Form von Unterseiten vorliegen.
- <translate></translate>
- Markiert in mehrsprachigen Projekten übersetzte Bereiche zu einer üblicherweise englischsprachigen Fassung.
- <tvar></tvar>
- Markiert in mehrsprachigen Projekten eine Art übersetzte globale Variable.
Siehe dazu:mw:Extension:Translate.
Verbotenes HTML
[Bearbeiten |Quelltext bearbeiten]Aus Sicherheitsgründen sind eine Reihe von HTML-Anweisungen ausschließlich über Wikisyntax möglich. Sie werden dabei auf böswillige Techniken überprüft. Es sind Verlinkungen und die Ausführung fremder Software. Wenn externe Ressourcen (Bilder, Multimedia, fremde Texte und Webseiten) direkt als Inhalte eingebunden würden, könnte es außerdem zu Urheberrechtsverletzungen kommen.
Alle direkten Verwendungen solcher Tags werden vom „Sanitizer“ auf dem Wiki-Server ausgefiltert.[9]
Betroffen sind („blacklist“):
a applet area audio base body button canvas command embed form frame frameset head html iframe img input isindex layer link map meta object option param script select (source) style textarea title track video xml
Übrigens wird auch dasURL-Format für Hintergrundbilder[10] imstyle
-Attribut entfernt.
Die derzeitige Strategie ist, auch alle nichtexplizit als geeignet bekannten HTML-Elemente auszufiltern. Alternativ würden im Wikitext vorgefundene unverstandene Elemente in den Ausgabetext durchgereicht, sofern sie nicht explizit verboten wären; durch die Vielzahl an Browser-Entwicklungen und neu definierter Tags ist das aber nicht mehr sicher genug.[11]
Damit ist auchPseudo-HTML wie<Scherz>
unmittelbar möglich; zurzeit wird das<
nur umgesetzt, wenn darauf ein erkanntes Tag von der Positivliste folgt. Das Escapen des<
etwa als<
ist zurzeit nicht zwingend erforderlich; es kann aber auch nicht schaden, falls der Wikitext einmal anders interpretiert wird. Das schließende>
braucht in diesen Fällen grundsätzlich nicht maskiert zu werden.
Nicht unterstützt
[Bearbeiten |Quelltext bearbeiten]Zu den sicherheitstechnisch unschädlichen und prinzipiell vorstellbaren, aber zurzeit nicht gelisteten Elementen gehören:
Sie sind weltweit wegen unnötiger Verkomplizierung des Wikitexts unerwünscht.[12] Die Software ignoriert diese genau wie verbotene Elemente.
Tabellenspalten: colgroup und col
[Bearbeiten |Quelltext bearbeiten]Die beiden Elemente<colgroup>
und<col>
werden von der Wikisyntax derzeit nicht zugelassen.
- Sie würden nur minimale dekorative Effekte für Tabellenspalten ermöglichen (Hintergrundfarbe und Rahmenlinien). Da insbesondere die horizontale Ausrichtung in der Spalte von Browsern nicht unterstützt wird, ist der Gesamtnutzen in den Wiki-Seiten zu gering.
- In der HTML-Philosophie sind die Zeilen die Kinder der Tabelle. Die Spaltenzählung ergibt sich nicht unmittelbar, sondern erst nach Berechnungverbundener Tabellenzellen. Bereits seit Anfang des Jahrhunderts werden weitergehende Möglichkeiten von den Browser-Herstellern abgewiesen und nicht weiter verfolgt. Die Vererbung würde außer Kraft gesetzt, und letztlich ist auch unklar wie widersprüchliche Angaben für Spalte und Zeile aufgelöst werden sollen, oder wie beicolspan-verbundenen Zellen verfahren werden soll.
Anhang: Entities
[Bearbeiten |Quelltext bearbeiten]Hex- Zeichen Dez- General-" – " – " – "# – # – #– #& – & – & – &' – ' – ' – '* – * – *– *: – : – :– :; – ; – ;– ;< – < – < – <= – = – = –=> – > – > – >[ – [ – [– [] – ] – ]– ]{ – { – {– {| – | – |– |} – } – }– }~ – ~ – ~(TILDE)§ – § – §– §Unsichtbare (Whitespace):  – –   –   – –  (SPACE)­ – – ­ – ­  – –  –   – –  (HAIR SPACE)  – –  (NARROW NO-BREAK)
Keine HTML-Tags, aber thematisch verwandt sindZeichen-Entitäten:&...;
Hier gilt für die deutschsprachige Wikipedia, insbesondere denArtikelnamensraum:
- Das einzige regulär zu verwendendeentity ist dasgeschützte Leerzeichen
. Da es die Lesbarkeit des Quelltexts beeinträchtigt, sollte es nur eingesetzt werden, wenn der Nutzen überwiegt, wenn also die durch einen Zeilenwechsel verursachte Beeinträchtigung der Lesbarkeit des angezeigten Texts gravierend wäre. Grundregel ist, dass mindestens eines der verbundenen Textelemente sehr kurz sein muss, also nur wenige Zeichen lang. Werden die fest verbundenen Bestandteile zu lang, entsteht eine hässliche Lücke am rechten Rand.
Beispiele für die sinnvolle Verwendung:- Zahlenangaben mit Einheitensymbol:
120 kg
- zusammengehörende Begriffe:
Wilhelm I.
- Abkürzungen:
z. B.
- Zahlenangaben mit Einheitensymbol:
- Zwischen einer Ziffer und einem Prozentzeichen sowie an der Innenseite vonGuillemets
« … »
(französische Ausrichtung) setzt die Wiki-Software seit 2007[13] automatisch ein geschütztes Leerzeichen. - Innerhalb eines unbetiteltenWikilinks kann das
benutzt werden; es wird bei der Bildung der HTML-Verlinkung aufgelöst.[14] - Gelegentlich müssen Zeichen der Wikisyntax in bestimmten Texten oder Syntaxcodes unwirksam gemacht werden; so ist
]
eine Umgehung, wenn in einerURL keine Klammer]
vorkommen kann und%5D
wegen möglichem Unverständnis auf Seiten älterer Webserver nicht sicher funktioniert.&
kann erforderlich werden, um ein Entity zu beschreiben.- Früher einmal gab es nicht standardisierte, praktisch Wiki-eigene Namen für Entitäten der Wikisyntax:
[ ] { }
für[ ] { }
– dies wurde nicht mehr unterstützt. - Allgemein wird nur eine in HTML.4 (Stand 1998) gültige Definition in ein einzelnes Zeichen umgesetzt; ansonsten die Zeichenkette des Quelltextes angezeigt.
- Der Name
'
für denASCII-Apostroph'
gehört zu XML/XHTML und wird verstanden.
­
für einenbedingten Trennstrich ist im Allgemeinen unerwünscht; es verhindert Treffer bei Suchvorgängen und irritiert im Quelltext; nur wenige Autoren sind damit vertraut.- Ausnahmsweise kann es angewendet werden, wenn bei begrenztem Raum (Bildlegende, Tabellenzelle) einzelne lange Wörter unangemessen über die Grenzen ragen (sieheHilfe:Bilder #Legende bei schmalen Bildern). Etwa 15 Buchstaben passen unter ein Miniaturbild, je nach Anzahl der „i“ und „l“ usw.
- Alle anderen Verwendungen sind außerhalb von Vorlagenprogrammierung und dergleichen unerwünscht.
- Gelegentlich hat man keine andere Möglichkeit, besondere Zeichen über die Tastatur einzugeben. Hier kann man im Bearbeitungsfeld das Zeichen über die Nummer eingeben; anschließend die Vorschau anzeigen, prüfen ob es das richtige Zeichen geworden ist, und durchC&P im Wikitext ersetzen. Bei exotischen Zeichen ist jedoch immer abzuwägen, ob es auch bei allen Anwendern dargestellt werden kann oder ob alternativ ein gebräuchlicheres Zeichen verwendet werden kann. Will man einen arabischen Namen zusätzlich in der Originalsprache nennen, ist es akzeptabel, wenn die Zeichen bei einigen Benutzern nicht dargestellt werden können; wer arabisch lesen kann, wird auch geeigneteZeichensätze installiert haben.
- Einige Benutzer, Skripte undBots ersetzen gelegentliche Restvorkommen automatisiert.
Benannte Entities werden von der MW-Software[9] automatisch in numerische (dezimale) Entities umgesetzt, so dass der entstehende HTML-Text völlig unabhängig von unzulänglichen Browsern ausgeliefert wird.
Weitere Informationen
- #tag – Parserfunktion zur flexiblen Einbindung einer Tag-Erweiterung
- frame:extensionTag() – Lua-Funktion zur Einbindung einer Tag-Erweiterung
- mw:Manual:Tag extensions (englisch)
- mw:Extension Matrix/tag (englisch)
- mw:Parser extension tags (englisch)
Anmerkungen
[Bearbeiten |Quelltext bearbeiten]- ↑Einige Benutzer behaupten, bei
<br />
würde es sich um ungültige oder veraltete Syntax in HTML5 handeln.- Das ist schlicht falsch.
- Siehe HTML5,W3C Recommendation, 14 December 2017, Abschnitt8.1.2.1. Start tags –then there may be a single U+002F SOLIDUS character (/) betreffendvoid-Elemente.
<references />
an.- Mit oder ohne Schrägstrich ist jeweils eine von zwei in HTML gleichberechtigten gültigen Schreibweisen. Nirgendwo ist in HTML vorgeschrieben, dass nunmehr der Schrägstrich nicht mehr erlaubt, veraltet, inkompatibel oder sonstwas wäre, oder dass eine dieser beiden Notationen für HTML zu bevorzugen wäre.
- Es gibt deshalb keinerlei Anlass, irgendetwas an der den Autoren vertrauten einheitlichen Notation für allevoid-Elemente zu verändern.
- ↑abEntsprechende Seiten wurden ab Juli 2016 in dieKategorie:Wikipedia:Seite mit problematischem HTML-Tag eingeordnet.
Es ist zu erwarten, dass zukünftig weitere Restriktionen einen syntaktisch korrekten und damit eindeutigen Wikitext einfordern, namentlich das Schließen aller geöffneten Elemente und eine Warnung bei leeren HTML-Elementen, die weder Inhalte noch Attribute besitzen und deshalb sinnfrei sind.Seit Mitte 2017 sind diese Fehler Teil derLinterfehleranalyse, nicht erkannt werden allerdings unzulässige Zuweisungen inbr-Tags wie<br />
. - ↑Bis etwa 2015 wurden nur englischsprachige Buchstabena–z A–Z (aus demASCII-Zeichensatz) sowie Ziffern als Bestandteile eines Wortes erkannt
- ↑
<gallery showfilename>
ist einer der wenigen Ausnahmefälle. - ↑Siehe etwaWP:CSS #lang undHilfe:Schriftunterstützung.
- ↑Dies konnte nicht mehr weiter benutzt werden; die SoftwareHTML Tidy entstand 1998 unter anderen Bedingungen.
- ↑Der Name der Vorlage{{Absatz}} wurde sehr irreführend gewählt; tatsächlich müsste es heißen
{{Seitenbreite}}
oder{{Layout (volle Breite)}}
oder ähnlich. Wobei{{vollbreit}}
eher als inhaltlicher Kommentar missinterpretiert werden würde. Genaugenommen bedeutet es: „Textfluss zurücksetzen“ – was erst recht niemand versteht. - ↑phab:T2671(Bugzilla:671 #c37)
- ↑abincludes/parser/Sanitizer.php – dies übernimmt auch unerwünschtes CSS sowie die Umwandlung benannter Entities und die Entfernung von Kommentaren.
- ↑Wenn man eine URL alsbackground vereinbaren könnte, würde bei jedem Aufruf jeder entsprechenden Seite automatisch eine Anfrage an den externen Server ausgelöst werden, durch die diesem verraten würde, welche Benutzer mit welcher IP und welchem Browser und ggf. welchen Cookies der externen Domain wann welche Wiki-Seite lesen. Die Cookies können zur Zuordnung identischer Browserprofile unter wechselnden IP genutzt werden.
In einem Wiki ist es eine bewusste Entscheidung des Lesers, ein externes Link anzuklicken; automatischer Serverkontakt erfolgt nur innerhalb der WMF oder durch selbst veranlasste Konfiguration.
Aus dem gleichen Grund werden Bilder nur von Servern der WMF in der Seite dargestellt. - ↑In den frühen Nullerjahren gab es wohl zunächst eine Blacklist für Elemente, die explizit ausgeschlossen wurden. Weil jedoch immer neue Elemente mit sicherheitskritischen Nebenwirkungen aufkamen und obendrein auch noch nicht-standardisierte, also proprietäre Browser-Elemente, die nur bei bestimmter Software wirkte, wurde dies dann in eine Whitelist umgewandelt. Dadurch sind alle unbekannten Elemente ausgeschlossen.
- ↑phab:T2671(Bugzilla:671),phab:T25932
- ↑Projektneuheiten 2007
- ↑Durch einen seit 2005 bestehenden Software-Fehler (phab:T4700(Bugzilla:2700)) geschieht das nicht innerhalb von Tag-Extensionen, also etwa durch
<ref>
eingeschlossen.