Hilfe:Wikisyntax/Validierung

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Die Linter-Erweiterung erkennt Wikitext-Muster, die problematisch sind und korrigiert oder entfernt werden sollten. Diese Seite zur Validierung gibt einen Überblick über die derzeit durch das Lintwerkzeug erkannten Muster und erklärt, welche Probleme auftreten können oder wie die Anpassung erfolgen sollte.

Diese Funktion dient dazu sicherzustellen, dass Seiteninhalte langfristig wie beabsichtigt gerendert und wiedergegeben werden (beispielsweise durch Software wie RemexHTML oder Parsoid).

Die Spezialseite Lint-Fehler gruppiert die Probleme nach Typen und Priorität.

Das Angebot dieser Mitte 2017 eingeführten Erweiterung ist als Work In Progress eingestuft und derzeit (Anfang 2018) noch in der Entwicklungsphase.

Hinweise zur Korrektur[Bearbeiten | Quelltext bearbeiten]

Namensräume und relevante Projektseiten[Bearbeiten | Quelltext bearbeiten]

Nur relevante Seiten sind zu bearbeiten. Das sind:

  • Artikel (namespace=0)
  • Aktuelle Projekt-, Portal- und Kategorienseiten.
  • Alle Programmierungen in Vorlagen und Modulen sowie Systemnachrichten.
  • Nur vom jeweiligen Benutzer werden Benutzerseiten korrigiert.

Nicht bearbeitet werden:

  • Archivierte Seiten.
  • Diskussionsseiten bzw. analoge Plattformen, sofern Darstellungsfehler auf einen einzelnen Benutzerbeitrag beschränkt bleiben und den Rest der Seite nicht stören.

Falsche Fehler[Bearbeiten | Quelltext bearbeiten]

Die in den einzelnen Linter-Kategorien gelisteten Seiten können eventuell auch sogenannte „false-positives“ enthalten, also Seiten, auf denen irrtümlich Probleme erkannt wurden.

Beschreibung der Liste[Bearbeiten | Quelltext bearbeiten]

Seitentitel Lint-Fehler je nach Liste Durch eine Vorlage?
Lemma (bearbeiten | Versionsgeschichte) BODY > SMALL Vorlage:Vorlagename
Lemma (bearbeiten | Versionsgeschichte) s ---
Lemma (bearbeiten | Versionsgeschichte) small Ausgabe nicht von einer einzelnen Vorlage
  • Lemma ist der Name der Seite, die einen Fehler enthält. Klickt man in der angezeigten Liste auf bearbeiten, so wird man in der Quelltextbearbeitung der Seite direkt zur fehlerbehafteten Zeile weitergeleitet, sofern dies dort lokalisierbar ist.
  • Der Klick auf Versionsgeschichte zeigt den Verlauf der Versionen der Seite an.
  • Falls möglich wird in der mittleren Spalte ein Hinweis auf die Art des Fehlers ausgegeben. Beispielsweise der Name des betroffenen Tags oder unbekannten Parameters
  • Wurde der Fehler möglicherweise durch eine direkt eingebundene Vorlage ausgelöst, so ist in der rechten Spalte diese Vorlage verlinkt.
    • Das Problem könnte in einem an diese Vorlage übergebenen Parameterwert liegen.
    • Oder die Kombination dieser Parameterwerte mit der Vorlagenprogrammierung könnte Schwierigkeiten machen.
    • Die Programmierung der Vorlage kann generell ungeschickt sein.

Die Listen können zur Abfrage auf einzelne Namensräume eingestellt werden, die Auswahl erfolgt über ein Dropdownmenü. Anschließend auf die Schaltfläche Speichern klicken, um die Liste zu aktualisieren. Ober- und unterhalb der Liste sind Schaltflächen, mit denen vor und zurück geblättert werden kann. Über eine direkte Manipulation der URL kann auch die Anzahl der angezeigten Listeneinträge geändert werden (z. B. &limit=1000).

  • Mehrfache völlig identische Fehler werden nur einmal gelistet, etwa wenn duch die gleiche Vorlageneinbindung ausgelöst.
  • Wird der Bereich der Seite bearbeitet, in dem ein schon gelisteter Fehler weiterhin besteht, so wird ggf. eine neue Fehlernummer generiert und die Seite erscheint nunmehr am Ende der Liste unter den Neuzugängen.

Problemtypen[Bearbeiten | Quelltext bearbeiten]

Es folgt die Beschreibung der einzelnen Abfragen; ggf. mit einem Codebeispiel.

Tabellen-Tag, das gelöscht werden soll.[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben Tabellen-Tags, die gelöscht werden sollen.

Beispiel (Anmerkungen farblich hervorgehoben):

vorgefundene Syntax
{| ← <Start-tag Tabelle>
| Zellentext1
|-
{| ← <Start-tag Tabelle 2 ="unnötige Verschachtelung entfernen">
|- ← <Trenner Tabelle 2>
| Zellentext2
|} ← <End-tag Tabelle 2 ="unnötige Verschachtelung entfernen">
|} ← <End-tag Tabelle>
bereinigte Syntax
{| ← <Start-tag Tabelle>
|-
| Zellentext1
|-
| Zellentext2
|} ← <End-tag Tabelle>

i Info: Einzelnstehende schließende Tabellentags |} können im Seitenquelltext durch Vorlageneinbindungen entstehen, die oberhalb nicht sichtbar ein öffnendes Tabellentag {| einbinden. Es ist immer zu prüfen, ob die Syntax tatsächlich überflüssig ist.

Falsch verschachteltes Tag mit einer unterschiedlichen Darstellung in HTML5 und HTML4[Bearbeiten | Quelltext bearbeiten]

Diese falsch verschachtelten Tags werden sich in HTML5 im Vergleich zu HTML4 unterschiedlich verhalten.

Es geht insbesondere um die folgende Situation:

<span>a

b</span>

<span> steht dabei für ein beliebiges Inline-Tag: ABBR, BDI, BDO, CITE, DATA, DEL, DFN, INS, KBD, MARK, Q, RB, RP, RT, RTC, RUBY, SAMP, SPAN, SUB, SUP, TIME, VAR

Diese Konstruktion ist unzulässig, weil Inline-Tags (für Schrifteigenschaften) ein Block-Element (für Layout-Anordnung) umschließen.

Tidy interpretiert das in einfachen Fällen folgendermaßen:

<p><span>a</span></p>
<p><span>b</span></p>

Der zukünftige HTML5-Output entspricht hingegen

<p><span>a</span></p>
<p>b</p>

Es ist entsprechend der beabsichtigten Darstellung zu korrigieren; möglicherweise eine völlig andere und angemessenere Syntaxstruktur zu wählen.

Verschiedene Auszeichnungsfehler, die die Tidy-Ersetzung beeinflussen.[Bearbeiten | Quelltext bearbeiten]

div-span-flip[Bearbeiten | Quelltext bearbeiten]

Seit August 2018. Solange Tidy aktiv war wurden div-Tags, die sich innerhalb eines span-Tags befanden mit diesen getauscht, so dass sich das div immer außen und das span immer innen befand.

Aus
<span><div> formatierter Inhalt </div></span>
wurde durch Tidy
<div><span> formatierter Inhalt </span></div>

Wenn das außen liegende span-Tag Stil- oder Klassenattribute hat, werden diese durch den Wegfall von Tidy unwirksam. Dies kann zu unerwünschten Darstellungen führen.

Beispiel: Vorlage:Navigationsleiste hat diese Syntax

<div class="NavPic"><span class="noviewer">{{{BILD}}}</span></div>

Ist nun im Parameter Bild zusätzliche Syntax in Form von div enthalten, so kommt es zu einem Tagkonflikt, weil in einer Inlinesequenz span keine Blockelemente div stehen dürfen. Dies führt in diesem Beispiel zu div in span in div.

{{Navigationsleiste
|BILD=<div style="float: left; padding-top: 10px; padding-bottom: 10px;">[[Datei:No image available-de.svg|105x105px|Irgendein Bild]]</div>
}}

<div class="NavPic"><span class="noviewer"><div style="float: left; padding-top: 10px; padding-bottom: 10px;">[[Datei:No image available-de.svg|105x105px|Irgendein Bild]]</div></span></div>

Erlaubt wäre aber nur span in div oder div in div
Lösung:

<div class="NavPic"><div class="noviewer">{{{BILD}}}</div></div>
<div class="NavPic noviewer">{{{BILD}}}</div>

Mehrzeilen-HTML5-Tabelle innerhalb einer Liste, unterschiedlich dargestellt in HTML5 und Tidy[Bearbeiten | Quelltext bearbeiten]

  • Die Anpassung sollte wegen möglicher Darstellungsfehler bald erfolgen.
  • Lint-Fehler: Mehrzeilige HTML-Tabelle in Liste (in Artikeln).
  • Informationen bei MediaWiki (englisch).
  • Eine Tabelle in HTML-Syntax wurde über mehrere Zeilen hinterlegt, deren erste als ein Listenpunkt in Wiki-Syntax deklariert wurde. HTML Tidy hatte die Auflistung entfernt; sie wird nun wirksam.
  • Derartige Vorkommen in der deutschsprachigen Wikipedia werden selten sein, insbesondere nicht im ANR zu erwarten.
Mögliche Auslöser
li > table – ein Aufzählpunkt * oder # steht vor einer Vorlage, die Tabellen erzeugt oder direkt vor einem öffnenden Tabellentag <table>
vorgefundene Syntax bereinigte Syntax
* {{Personenleiste}}
# {{Personenleiste}}

Ausgabe mit Listenpunkt oder Nummer am linken Zeilenrand, Zählung wird nicht fortgesetzt

{{Personenleiste}}
{{Personenleiste}}

Mehrere nicht geschlossene Formatierungstags[Bearbeiten | Quelltext bearbeiten]

Mögliche Ursachen:

  1. <small> oder <big> wurden nicht geschlossen und wirken sich auf den nachfolgenden Text aus.
    HTML Tidy versuchte den betroffenen Textbereich in nicht präzisierter Weise zu begrenzen; dies ist weggefallen.
  2. Nicht geschlossene, vielmehr zweimal nacheinander öffnende Tags: b, big, code, em, font, i, nobr, s, small, strike, strong, tt, u
    HTML Tidy unterstellte, dass das sinnlose zweite Öffnen vielmehr als Schließen gemeint war; dies ist weggefallen.
    Beispiel: <code>foo<code> statt <code>foo</code>
  3. Beginn und Ende innerhalb und außerhalb von Klammern (Wikilinks)
    • Beispiel: <small><small>[[Haus|Häuser</small></small>]]<small><small>[[Haus|Häuser]]</small></small>

Workaround für einen Absatzumbruchfehler[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben einen Absatzumbruchfehler, der umgangen werden könnte. Es geht um die Formatierung mit den Zeilenumbruch verhindernde nowrap-Konstrukte.

Drei Ursachen sind möglich:

  1. Die ohne Zeilenumbruch darzustellende Textpassage enthält bereits selbst einen Zeilenumbruch.
    • Zeilenumbruch aus dem Text entfernen.
  2. Ein Element <span style="white-space:nowrap"> enthält ein Block-Element.
    • Ggf. den Zeilenumbruch innerhalb des Block-Elements verhindern.
  3. Eine Tabellenzelle beginnt mit der fraglichen Textpassage oder besteht nur daraus.
    • Gesamte Tabellenzelle mit style="white-space:nowrap" deklarieren.
    • Ggf. <nowiki /> voranstellen.

Die Vorlage:nowrap kann ebenfalls am Problem beteiligt sein.

Selbstschließendes Tag[Bearbeiten | Quelltext bearbeiten]

Diese Seiten enthalten selbstschließende Tags. (betrifft ausschließlich HTML; ausgenommen sind <br /> und <hr /> sowie <wbr />) Tags, die beispielsweise der Formatierung dienen, werden wie Klammern um den jeweiligen Abschnitt gelegt. Sie bestehen aus einem öffnenden und einem schließenden Tagelement <tag>…</tag>. Sie dürfen nicht wie ein unary-Tag selbstschließend verwendet werden. Die Konstruktion kann darauf hindeuten, dass vergessen wurde, einen beabsichtigten Text einzutragen; ansonsten ist sie sinnfrei und kann eliminiert werden.

Beispiele:

vorgefundene Syntax
<b>Inhalt<b/>
<span>Inhalt<span/>
</div/>
<div style="clear:both;" />
<s>Inhalt<s/>
bereinigte Syntax
'''Inhalt'''
<span>Inhalt</span>
</div>
<div style="clear:both;"></div>
<s>Inhalt</s>

Tidy-Fehler, die sich auf Links umgebende Font-Tags auswirken.[Bearbeiten | Quelltext bearbeiten]

Tidy verschiebt diese Font-Tags innerhalb von Links, um die Linkfarbe zu ändern. Ab Dezember 2017 geschieht das nicht mehr. Die korrekte Syntax wäre grundsätzlich, dass eine Änderung der Linkfarbe innerhalb der eckigen Klammern einer Verlinkung deklariert werden muss.

vorgefundene Syntax
<font color=#33AA33>[http://en.wikinews.org/wiki/Hauptseite?uselang=de Wikinews]</font>

<font color="#FFF5EE">[[WP:Babel|Babel:]]</font>
bereinigte Syntax Ergebnis
[https://en.wikinews.org/wiki/Hauptseite?uselang=de <span style="color:#33AA33">Wikinews</span>]

[[WP:Babel|<span style="color:#ABCDEF">Babel:</span>]]
Wikinews

Babel:

i Info: Verlinkungen sollten zumindest in Artikeln nicht mit anderen Farben überschrieben werden, damit sie als solche erkennbar bleiben. Rotlinks weisen auf fehlende Seiten hin, Blaulinks auf existierende. In Portalen und auf Funktionsseiten, wo die Funktion als Verlinkung etwa in „Karteireitern“ oder „Buttons“ nahegelegt wird, mag die Farbgestaltung geändert werden.

Tidy-Leerzeichenfehler[Bearbeiten | Quelltext bearbeiten]

Zu Beginn oder Ende einer als nowrap deklarierten Textpassage steht ein Leerzeichen usw. Dies wurde bisher von HTML Tidy außerhalb des nowrap verschoben, und damit eine Möglichkeit zum Umbrechen an dieser Stelle geschaffen. Weil Tidy weggefallen ist, kann die Zeile hier nicht mehr umbrochen werden, im Prinzip sogar eine meterlange Zeile entstehen, jedenfalls die Darstellung der Seite verändert sein. Inhaltlich ist ein solches nowrap, das sich über den sichtbaren Text hinaus erstreckt, sehr zweifelhaft.

Beispiele:

vorgefundene Syntax
<span style="white-space:nowrap;">a b </span><span style="white-space:nowrap;">x y</span>
<span class="nowrap">{{{1}}}</span>
{{Zeile|[[Toy Story]] <small>(1995)</small> }}&#124;
bereinigte Syntax
<span style="white-space:nowrap;">a b</span> <span style="white-space:nowrap;">x y</span>
<span class="nowrap">{{#if:trim|{{{1}}}}}</span>
{{Zeile|[[Toy Story]] <small>(1995)</small>}} &#124;

Nicht geschlossenes Anführungszeichen, das das Inhaltsverzeichnis auslaufen lässt.[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben ein nicht geschlossenes Anführungszeichen in einer Überschrift, das das Inhaltsverzeichnis auslaufen lässt.

Beispiele:

vorgefundene Syntax
=== ''Das Kunstwerk ===
bereinigte Syntax
=== ''Das Kunstwerk'' ===

Fehlerhafte Dateioption[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben Dateien mit fehlerhaften Optionen. So können beispielsweise Bildparameter doppelt, falsch benannt, widersprüchlich, unbekannt oder ein Pipe-Symbol | zu viel vorhanden sein.

  • Erkannte Fehler in der wirksamen Darstellung sollten behoben werden.
    • Eine doppelt vorhandene Angabe ist hingegen einstweilen unschädlich, jedoch irritierend und kann später zu Missverständnissen führen.
    • Eine doppelte Pipe richtet keinen Schaden an und rechtfertigt keinen Edit ausschließlich zu ihrer Entfernung.
  • Lint-Fehler: Nicht erkannte Dateioptionen (in Artikeln).
  • Informationen bei MediaWiki (englisch).
  • Bekannte „falsche Fehler“; ignorieren:
    • baseline bottom middle sub super text-bottom text-top top
    • thumbtime

Beispiele:

vorgefundene Syntax
[[Datei:Yellow card.svg|mini||Gelbe Karte]] ← Pipe-Symbol doppelt
[[Datei:Yellow card.svg|mini|mini|Gelbe Karte]] ← mini doppelt
[[Datei:Yellow card.svg|thumb|mini|Gelbe Karte]] ← thumb = mini
[[Datei:Yellow card.svg|mini|linkss|Gelbe Karte]] ← linkss „s“ doppelt
[[Datei:Yellow card.svg|mini|links|rechts|Gelbe Karte]] ← „links“ und „rechts“ widersprechen sich.
[[Datei:Yellow card.svg|mini|rahmenlos|Gelbe Karte]] ← „mini“ und „rahmenlos“ widersprechen sich.
[[Datei:Yellow card.svg|mini|links|hochkant|0,6|Gelbe Karte]] ← Parameter hochkant falsch
bereinigte Syntax
[[Datei:Yellow card.svg|mini|Gelbe Karte]]
[[Datei:Yellow card.svg|mini|links|Gelbe Karte]]
[[Datei:Yellow card.svg|rahmenlos|Gelbe Karte]]
[[Datei:Yellow card.svg|mini|links|hochkant=0.6|Gelbe Karte]]

Falsch verschachtelter Inhalt[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben falsch verschachtelte Inhalte. Ursache können Tabellen-Inhalte sein, denen Pipe bzw. ! zu Beginn einer Tabellenzelle fehlt.

Beispiel:
Der Inhalt befindet sich in einem nicht darstellbaren Bereich der Tabellenstruktur und kann so nicht innerhalb der Tabelle ausgegeben werden. In diesem Beispiel stünde der Text oberhalb der Tabelle. Möglicherweise fehlt ein Element für die Überschrift |+, eine Tabellenzellenzuweisung | oder die Kopfzeilensyntax !.

vorgefundene Syntax Ausgabe
{| class="wikitable"
|-
Textfragment
|-
| Zelleninhalt
|-
| Zelleninhalt
|}

Textfragment

Zelleninhalt
Zelleninhalt
bereinigte Syntax Ausgabe
{| class="wikitable"
|-
| Textfragment
|-
| Zelleninhalt
|-
| Zelleninhalt
|}
Textfragment
Zelleninhalt
Zelleninhalt

Falsch verschachtelte Tags, die ordnungsgemäß verschachtelt werden sollten.[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben falsch verschachtelte Tags, die korrigiert werden könnten.

Wenn ein Element geöffnet ist und danach ein weiteres Element geöffnet wird, muss das letztere erst wieder geschlossen werden, bevor das erste Element geschlossen werden darf.

  • Das gilt ebenso für Konstrukte mit Apostroph.
    • Diese werden als i (italic) für Kursivschrift (Doppel-Apostroph) bzw. b (bold) für Fettschrift (Dreifach-Apostroph) markiert.

Inline-Elemente (für Schrifteigenschaften) können keine Block-Elemente (für Layout-Anordnung) umschließen.

  • Ggf. können die Schrifteigenschaften direkt beim Block-Element spezifiziert werden.
  • Das selten (eher in der Vorlagenprogrammierung) benutzte <p> darf keine anderen <p> und auch keine Block-Elemente enthalten.
  • Gleichartige semantische Inline-Elemente dürfen nicht ineinander verschachtelt werden; ein <small> darf kein anderes <small> mehr enthalten.
  • Inline-Elemente dürfen sich nicht widersprechen; <small> darf kein <big> umschließen und umgekehrt.
  • Attribute der Tags (womöglich auch Attribute der Tabellenzellen und -zeilen) werden berücksichtigt.
  • Der Namensraum (XML) ist bei Attributen unzulässig; also insbesondere xml:lang=.

Beispiele:

vorgefundene Syntax Ausgabe
''' fett '' Text ''' kursiv ''

* a
* b <small>(Anmerkung)
* c (Anmerkung)</small>
* d

<s>durch und <u>unterstrichen</s></u>

fett Text kursiv

  • a
  • b (Anmerkung)
  • c (Anmerkung)
  • d

durch und unterstrichen

bereinigte Syntax Ausgabe
'''fett ''Text''''' ''kursiv''
'''fett''' Text ''kursiv''

* a
* b <small>(Anmerkung)</small>
* c <small>(Anmerkung)</small>
* d

<s>durch und <u>unterstrichen</u></s>

fett Text kursiv
fett Text kursiv

  • a
  • b (Anmerkung)
  • c (Anmerkung)
  • d

durch und unterstrichen

Mehrere Doppelpunkte[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben Links mit mehreren vorangestellten Doppelpunkten.

In einigen Fällen ist es sinnvoll, wenn im Wikilink-Format ein Doppelpunkt vorangestellt wird, um eine Verlinkung statt eines anderen Effekts zu erreichen (Medieneinbindung, Kategorisierung, Interlanguage).

Mehrfache Doppelpunkte vor Wikilink-Zielen wurden früher stillschweigend ignoriert. Mittlerweile führt das zur syntaktischen und damit fehlerhaften Interpretation der Zielangabe.

Beispiel
vorgefundene Syntax Ausgabe
[[::Datei:Beispiel.jpg]]
[[::Datei:Beispiel.jpg]]
bereinigte Syntax Ausgabe
[[:Datei:Beispiel.jpg]]
Datei:Beispiel.jpg

Fehlendes End-Tag[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben fehlende End-Tags.

Fehlende schließende Tags können unerwünschte Effekte bewirken, etwa wenn ein verkleinert geschriebener Teilbereich sich bis zum Ende erstreckt und nicht wie beabsichtigt beendet wurde.

Die auf die Schriftgestaltung innerhalb von Fließtext abzielenden „inline“-Elemente dürfen nicht durch Absätze oder „Block“-Elemente unterbrochen worden sein. Das betrifft insbesondere <span>, <code> und <small>. Sie gelten nur für unmittelbar zusammenhängende Zeilen.

Beispiele (Anmerkungen farblich hervorgehoben):

vorgefundene Syntax
<small>Text ← <Info ein ="schließendes Tag fehlt">
<small>Text<small><Info Slash =" / fehlt im schließenden Tag">
<small>Textbeginn ← <Info Absatz="soll Kleinschreibung erhalten"><Info Leerzeile="generiert neuen Absatz"> 
Neuer Absatz</small><Info Hier="nicht mehr wirksam, dafür überflüssiger Abschluss">
bereinigte Syntax
<small>Text</small>

Ignoriertes Tag[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben ignorierte Tags.

Fehler innerhalb des öffnenden Tag (etwa bei der Wertzuweisung an Attribute) führen ebenfalls dazu, dass ein Tag ignoriert wird.

Beispiel (Anmerkung farblich hervorgehoben):

vorgefundene Syntax
Text</small><Info ein ="öffnendes Tag fehlt">
<span style"color:#000000">Text</span><Info Gleichheitszeichen="fehlt vor Attributwert">
bereinigte Syntax
Text
<small>Text</small>
<span style="color:#000000">Text</span>

Veraltetes HTML-Tag[Bearbeiten | Quelltext bearbeiten]

Diese Seiten verwenden veraltete HTML-Tags.

Beispiele:
Als „obsolet“ oder „veraltet“ eingestufte Tags sind in der Tabelle gelistet.

Tag und Funktion Ersatz im Artikelbestand
<font>…</font>
Schrifteigenschaften zuweisen
<span style="…"> immer entfernen oder ersetzen
<center>…</center>
Schrift, Tabellen oder Medien zentriert anordnen; siehe Hilfe:Textgestaltung/Zentrieren
style="text-align:center;"
class="centered"
class="center"
möglichst ersetzen
<strike>…</strike>
Text durchstreichen[1]
<s>…</s> möglichst entfernen
<big>…</big>
Text vergrößern[1]
<span style="font-size:larger"> gelegentlich ersetzen oder entfernen
<tt>…</tt>
Einzelne Worte oder einen Textblock in Schreibmaschinenschrift darstellen
<span style="font-family: monospace,monospace;">…</span>

<code>…</code>
<code style="border:0; background:#FFFFFF;">…</code>
<syntaxhighlight lang="text">…</syntaxhighlight>

gelegentlich andere Lösung suchen; kann auch bis auf Weiteres belassen werden
  1. a b nicht im Artikel verwenden

Auslösende Situationen[Bearbeiten | Quelltext bearbeiten]

Unzulässige Einrückungsunterdrückung[Bearbeiten | Quelltext bearbeiten]

Der erfolglose Versuch des Verhinderns einer durch Vorlagen vorgesehenen Texteinrückung durch die Verwendung eines Doppelpunktes am Zeilenanfang führt gleich zu zwei Linter-Fehlern:

  1. Fehlendes End-Tag
  2. Ignoriertes Tag

Das kann insbesondere im Zusammenhang mit der Vorlage:Zitat auftreten, die als Blockzitat konzipiert ist. Der Doppelpunkt am Zeilenanfang ist zu entfernen, da er eines Tages wirksam werden kann; außerdem im Artikelnamensraum nur in Verbindung mit einer Definitionsliste eingesetzt wird. Die Vorlageneinbindung sollte immer direkt am Zeilenanfang und nicht im laufenden Fließtext stehen.

Beispiel:

vorgefundene Syntax nicht eingerückt
: {{Zitat|Text=Beispielzitat}}

„Beispielzitat“

bereinigte Syntax wie vorgesehen eingerückt
{{Zitat|Text=Beispielzitat}}

„Beispielzitat“

Darstellungsfehler durch Vorlagen in Aufzählungen[Bearbeiten | Quelltext bearbeiten]

Ebenso ist die Verwendung der Vorlage:Zitat nicht innerhalb einer Aufzählung möglich, hier sollte stattdessen auf die Inlinevariante {{"}} zurückgegriffen werden.

Beispiel:

vorgefundene Syntax das Zitat wird in die nächste Zeile gesetzt jedoch nicht eingerückt
* In der Musterzeitung schrieb Max Mustermann: {{Zitat|Text=Beispielzitat}}
* Weitere Aufzählung
  • In der Musterzeitung schrieb Max Mustermann:

„Beispielzitat“

  • Weitere Aufzählung
bereinigte Syntax eingerückt
* In der Musterzeitung schrieb Max Mustermann:
{{Zitat|Text=Beispielzitat}}
* Weitere Aufzählung
  • In der Musterzeitung schrieb Max Mustermann:

„Beispielzitat“

  • Weitere Aufzählung
bereinigte Syntax Alternativvorlage
* In der Musterzeitung schrieb Max Mustermann: {{"|Text=Beispielzitat}}
* Weitere Aufzählung
  • In der Musterzeitung schrieb Max Mustermann: „Beispielzitat“
  • Weitere Aufzählung

Mehrfachbelegtags im Poem[Bearbeiten | Quelltext bearbeiten]

Führt zu Fehlern der Gruppe veraltetes HTML tt.

<poem>
;Wörtliche Übersetzung<ref name="Bachmaier" />

Werte und makellose Tochter,
allheilige Herrin/Herrscherin,
Erhöre mich, Unbefleckte,
der ganzen Welt Herrin,
</poem>
Auslöser hier ist das <ref name="Bachmaier" />

Poem soll nur den reinen Textauszug enthalten, Belegtags in den umgebenden Fließtext setzen.

<poem>
'''Wörtliche Übersetzung'''

Werte und makellose Tochter,
allheilige Herrin/Herrscherin,
Erhöre mich, Unbefleckte,
der ganzen Welt Herrin,
</poem>
(Auszug aus Martin Bachmaier: ''Agni Parthene auf Deutsch – O reinste Jungfrau, Herrscherin.''<ref name="Bachmaier" />)

Hilfsmitel und Werkzeuge[Bearbeiten | Quelltext bearbeiten]

Quelltextexpansion[Bearbeiten | Quelltext bearbeiten]

Wenn eine Vorlage beteiligt ist, lässt sich aus dem Quelltext der dargestellten Seite nicht entnehmen, wie der resultierende Wikitext schließlich aussieht.

Es gibt zwei Möglichkeiten, sich den analysierten Text anzusehen, um die Fehlerwirkung zu verstehen:

  1. Über die Spezialseite Vorlagen expandieren
    • Der verdächtige Quelltext wird in das Eingabefeld kopiert.
    • Auf die Schaltfläche Vorlage expandieren klicken.
    • Im Feld „Ergebnis“ erscheint der ausgewertete Wikitext.
  2. Über die Wikipedia:Spielwiese:
    • {{#tag:syntaxhighlight|{{: Seitenname }}}}
      als Quelltext angeben.
    • Seitenvorschau ansehen.
    • Der ausgewertete Wikitext von Seitenname erscheint.

HTML-Validierer[Bearbeiten | Quelltext bearbeiten]

Die Gültigkeit der Tags im Wikitext lässt sich mit Validierern analysieren und Unstimmigkeiten können genauer lokalisiert werden.

  • Der Quelltext der Seite selbst oder nach Quelltextexpansion kann in Eingabefelder kopiert werden.
  • Wahrscheinlich gibt es eine Beschwerde, dass es sich nicht um ein richtiges HTML-Dokument handelt; also dass <!DOCTYPE html> und ein <head> fehlen würden.
  • Der sonstige Wikitext ist dem Validierer unverständlich; es kommt nur auf die Struktur der HTML-Tags an.

Einige Validierer:

Bei den vorgenannten gibt es ein Eingabeformular, in das Quellcode eingefügt und dann analysiert werden kann.

  • Auch die URL der Wiki-Seite kann eingegeben werden, und das vom Wiki-Server produzierte HTML-Dokument dann analysiert werden. Hier ist aber fraglich, ob der Wiki-Server seinerseits schon Nachbesserungen vorgenommen hatte.

Seiteninformationen[Bearbeiten | Quelltext bearbeiten]

In den Seiteninformationen werden die Fehler nach Art und Gesamtzahl gelistet, jedoch ohne Einzelheiten.

Migrationswerkzeug[Bearbeiten | Quelltext bearbeiten]

Das Migrationswerkzeug ist ein Modus der Quelltextbearbeitung, bei dem in der jeweiligen Seitenvorschau nicht wie üblich eine Seitendarstellung erscheint, sondern in zwei Spalten nebeneinander angezeigt wird, wie bisherige und zukünftige Aufbereitung den Lesern präsentiert werden.

Gadget[Bearbeiten | Quelltext bearbeiten]

Das Benutzerskript lintHint zeigt die LintErrors-Analyse live – diese kann für eine bestimmte einzelne Seitenversion abgerufen, und Wikitext-Sequenzen können interaktiv geprüft werden.

Statistik[Bearbeiten | Quelltext bearbeiten]

Nach Namensräumen gegliederte Fehlertypen.

Hintergrund[Bearbeiten | Quelltext bearbeiten]

In den ersten Jahren wurde der expandierte Wikitext mit dem Werkzeug HTML Tidy nachbearbeitet.

  • Dieses hatte bei fehlerhaften Verschachtelungen nachgeholfen und versucht, eine geeignete Reihenfolge öffnender und schließender Tags zu erraten.
  • Diese Software (von 1998) ist in die Jahre gekommen und arbeitet unter heutigen Bedingungen nicht mehr zuverlässig.
  • Wenn die Angaben im Wikitext syntaktisch falsch sind, kommt es rein zufällig und nach jeweiliger Rückfallposition der generierenden Software zu irgendeinem Ergebnis. Es gibt aber keine Gewähr, dass diese undefiniert zustandegekommene Präsentation von jeder folgenden Softwarekonstellation auch genauso generiert wird, da die Bedingungen für ihre Erzeugung ja eben nicht spezifiziert sind.
  • Im Dezember 2017 wurde Tidy für die deutschsprachige Wikipedia durch „Remex“ ersetzt.

Zukünftig sollen die Wikiprojekte zu eindeutig interpretierbarer Quelltextsyntax konvergieren.

  • Die Parser-Software, die auf 2004 zurückgeht („PHP-Parser“ genannt), soll grundsätzlich durch ein anderes und verbessertes System („Parsoid“) ersetzt werden.
    • Dabei soll auch der aufwändige zweite Schritt der Nachberbeitung mit HTML Tidy oder analog weitgehend wegfallen und gültiger Wikitext sollte auch syntaktisch richtig und damit eindeutig in der Bedeutung sein.
  • Jeder den Syntaxregeln entsprechende Wikitext muss dabei das vorgesehene Ergebnis liefern, aber das Resultat fehlerhafter Texte ist nicht vorhersagbar.

Funktionsprinzip:

  • Parsoid stellt während seiner Tätigkeit beim Speichern einer neuen Seitenversion Fehler fest.
  • LINT macht nichts anderes, als eine Datenbank zu unterhalten, in der diese Fehler pro Seite gesammelt und verwaltet werden, und generiert einige Ansichten der Datenbank auf der Spezialseite.

Siehe Parsermigration zu weiteren Einzelheiten.

Weitere Informationen[Bearbeiten | Quelltext bearbeiten]

 MediaWiki: Help:Extension:Linter – Technische Informationen (englisch)
Phabricator – Workboard: #mediawiki-extensions-linter (englisch)