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 weiterhin (Anfang 2020) 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ückgeblä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 durch 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):

vorgefundener Code
{| ← <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>
bereinigter Code
{| ← <Start-tag Tabelle>
|-
| Zellentext1
|-
| Zellentext2
|} ← <End-tag Tabelle>

 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 der Code 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 Codestruktur zu wählen.

Inline-Medien mit Bildunterschriften[Bearbeiten | Quelltext bearbeiten]

Diese Seiten haben Inline-Medien mit Bildunterschriften.

Seit Januar 2022 wird bei Bildern, die ohne das Attribut mini (Anzeige einer Bildlegende/Beschriftung) verwendet werden, der hier eingegebene Text nur als Tooltip angezeigt und vom MediaWiki-Parser als Rückgriff (fallback) für das Attribut alt verwendet, falls dieses nicht angegeben wurde. Da diese Bildunterschrift nicht zwangsläufig eine Beschreibung des Bildinhalts darstellt, werden derartige Bilder oder Mediendateien in dieser Fehlerkategorie gelistet. Die zunächst vorgenommene Einstufung der zwei Jahrzehnte alten Syntax als „besonders dringend zu beheben“ ist jedoch fragwürdig.

Vorgefundene Syntax

[[Datei:Test.png|120px|Bildtext]]

Bereinigte Syntax, sofern erforderlich

[[Datei:Test.png|120px|alt=Ausführliche Beschreibung für blinde Menschen|Was wird dargestellt?]]

Insbesondere in Vorlagen werden dekorative Icons für Screenreader jedoch ohnehin ausgeblendet, weil sie blinden Menschen keinen Nutzen bringen und diese nur verwirren. Sie erhalten dann auch keine Bildbeschreibung. Hier ist |alt=| zu setzen, wodurch dann auch nicht mehr in der Fehlerkategorie eingetragen wird.

[[Datei:Test.png|120px|alt=|Was wird dargestellt?]]

Wem aus technischen Gründen, etwa wegen langsamer Internetverbindung, zunächst noch keine Grafikdaten angezeigt werden können, der erhält weiterhin den zu erwartenden Inhalt benannt (title=).

Verschiedene Auszeichnungsfehler[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 diesen Code:

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

Ist nun im Parameter Bild zusätzlicher Code 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[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>
vorgefundener Code bereinigter Code
* {{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 verhindernden nowrap-Konstrukten.

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:

vorgefundener Code
<b>Inhalt<b/>
<span>Inhalt<span/>
</div/>
<div style="clear:both;" />
<s>Inhalt<s/>
bereinigter Code
'''Inhalt'''
<span>Inhalt</span>
</div>
<div style="clear:both;"></div>
<s>Inhalt</s>

Altes Verhalten von Link-Wrapping-Font-Tags[Bearbeiten | Quelltext bearbeiten]

Zuvor wurden diese Font-Tags innerhalb von Links verschoben, 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.

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

<font color="#FFF5EE">[[WP:Babel|Babel:]]</font>
bereinigter Code 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:

 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.

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:

vorgefundener Code
<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;
bereinigter Code
<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:

vorgefundener Code
=== ''Das Kunstwerk ===
bereinigter Code
=== ''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. Auch die Schreibung der Parameternamen mit Großbuchstaben Mini, Hochkant oder eine Bildlegende die auf px endet, führt zu Fehlern.

  • 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, sie können jedoch, je nachdem wo das Pipe steht, dazu führen, dass die Bildlegende nicht angezeigt wird, dann sollten sie entfernt werden.
  • 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:

vorgefundener Code
[[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
bereinigter Code
[[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]]

In Galerien können auch fehlende Zeilenumbrüche zwischen zwei Bilddateien zu einer Fehldarstellung oder hier unwirksame Bildparameter mini hochkant links rechts px … zu Fehlern führen.

vorgefundener Code
<gallery>
Yellow card.svg||Gelbe Karte ← Pipe-Symbol doppelt
Red card.svg|120px|Rote Karte ← unwirksame Angabe px
Card back 16.svg|Grüne RückseiteCard back 15.svg|Rote Rückseite ← zwei Bilder in einer Zeile
</gallery>
bereinigter Code
<gallery>
Yellow card.svg|Gelbe Karte
Red card.svg|Rote Karte
Card back 16.svg|Grüne Rückseite
Card back 15.svg|Rote Rückseite
</gallery>

In der Vorlage {{Galerie}} führt zudem eine nicht numerische Angabe im Parameter Größe zu einer Fehldarstellung. Hier dürfen nur Zahlzeichen |Größe=200 stehen.

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 der Kopfzeilencode !.

vorgefundener Code Ausgabe
{| class="wikitable"
|-
Textfragment
|-
| Zelleninhalt
|-
| Zelleninhalt
|}

Textfragment

Zelleninhalt
Zelleninhalt
bereinigter Code 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:

vorgefundener Code 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

bereinigter Code 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
vorgefundener Code Ausgabe
[[::Datei:Beispiel.jpg]]
[[::Datei:Beispiel.jpg]]
bereinigter Code Ausgabe
[[:Datei:Beispiel.jpg]]
Datei:Beispiel.jpg

Links in Links[Bearbeiten | Quelltext bearbeiten]

Links in Links

Ein offenbar geklammertes Weblink enthält eine weitere Verlinkung. Das ist nicht möglich; ein Linkziel kann nur einen einzigen anklickbaren Bereich haben. Möglich sind auch Fehler im Bereich von Vorlagenparametern, die als Linktext dienen, die Inhalte dürfen keine [[]] (oder []) enthalten.

Beispiel
vorgefundener Code Ausgabe
[http://example.org/ Website der [[Example]]-Organisation]
Website der Example-Organisation]
bereinigter Code Ausgabe
[http://example.org/ Website] der [[Example]]-Organisation
Website der Example-Organisation

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):

vorgefundener Code
<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">
bereinigter Code
<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):

vorgefundener Code
Text</small><Info ein ="öffnendes Tag fehlt">
<span style"color:#000000">Text</span><Info Gleichheitszeichen="fehlt vor Attributwert">
bereinigter Code
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:

vorgefundener Code nicht eingerückt
: {{Zitat|Text=Beispielzitat}}

„Beispielzitat“

bereinigter Code 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:

vorgefundener Code 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
bereinigter Code eingerückt
* In der Musterzeitung schrieb Max Mustermann:
{{Zitat|Text=Beispielzitat}}
* Weitere Aufzählung
  • In der Musterzeitung schrieb Max Mustermann:

„Beispielzitat“

  • Weitere Aufzählung
bereinigter Code 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]

Einzelseitenanalyse auf Spezialseite[Bearbeiten | Quelltext bearbeiten]

Seit Anfang 2022 wird ermöglicht, gezielt die in unterschiedlichen Linterkategorien angezeigten Fehler einer einzelnen Seite anzuzeigen, um so besser alle Fehler der Seite beheben zu können. Dafür wird am Ende der Übersichtsliste (Spezial:LintErrors) ein Eingabefeld angeboten, in das der Seitentitel eingegeben werden kann.

Simulation
Alle Linterfehler für eine bestimmte Seite anzeigen

Seitentitel

 

Absenden

Als Ergebnis wird eine Tabelle mit allen erkannten Fehlern ausgegeben, die sich wie gewohnt direkt anspringen lassen. Hinzugekommen ist eine Spalte, in der die jeweilige Fehlerkategorie angezeigt wird.

Mittels des URL-Parameters ?pagename= lässt sich die Spezialseite auch auf eine bestimmte Seite fokussieren.

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 Nachbearbeitung 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 – Freie Wikisoftware (englisch)
Phabricator – Workboard: #mediawiki-extensions-linter (englisch)