Hilfe:Wikisyntax/Validierung

Aus Cowboy’s Wiki
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

Namensräume und relevante Projektseiten

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

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

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

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

Tabellen-Tag, das gelöscht werden soll.

⧼Linter-category-deletable-table-tag-desc⧽

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.

⧼Linter-category-html5-misnesting⧽

⧼Linter-category-html5-misnesting-desc⧽

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.

Verschiedene Auszeichnungsfehler

div-span-flip

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

  • 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}}

⧼Linter-category-multiple-unclosed-formatting-tags⧽

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

⧼Linter-category-pwrap-bug-workaround-desc⧽ 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

⧼Linter-category-self-closed-tag-desc⧽ (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>

⧼Linter-category-tidy-font-bug⧽

⧼Linter-category-tidy-font-bug-desc⧽ 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.

⧼Linter-category-tidy-whitespace-bug⧽

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.

⧼Linter-category-unclosed-quotes-in-heading-desc⧽

Beispiele:

vorgefundener Code
=== ''Das Kunstwerk ===
bereinigter Code
=== ''Das Kunstwerk'' ===

Fehlerhafte Dateioption

⧼Linter-category-bogus-image-options-desc⧽ 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:

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]]

⧼Linter-category-fostered⧽

⧼Linter-category-fostered-desc⧽

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.

⧼Linter-category-misnested-tag-desc⧽

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

⧼Linter-category-multi-colon-escape-desc⧽

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

⧼Linter-category-wikilink-in-extlink⧽

⧼Linter-category-wikilink-in-extlink⧽

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

⧼Linter-category-missing-end-tag-desc⧽

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

⧼Linter-category-stripped-tag-desc⧽

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

⧼Linter-category-obsolete-tag-desc⧽

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

Auslösende Situationen

Unzulässige Einrückungsunterdrückung

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

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

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

Quelltextexpansion

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 CowboysWiki:Spielwiese:
    • {{#tag:syntaxhighlight|{{: Seitenname }}}}
      als Quelltext angeben.
    • Seitenvorschau ansehen.
    • Der ausgewertete Wikitext von Seitenname erscheint.

HTML-Validierer

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

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

Migrationswerkzeug

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

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

Nach Namensräumen gegliederte Fehlertypen.

Hintergrund

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

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