JavaScript Gadget – zeige LintErrors-Analyse live.
Probleme im Wikitext, die durch Parsoid entdeckt wurden und mittels Spezial:LintErrors für ganze Namensräume verwaltet werden, können für eine bestimmte einzelne Seitenversion abgerufen, und Wikitext-Sequenzen können interaktiv geprüft werden.
Die LintErrors-Erweiterung ist nur nach Problemtypen strukturiert und kann nach Namensraum gefiltert werden.
Wenn eine bestimmte Seite besucht wird, kann dieses Gadget unverzüglich über alle gegenwärtig ermittelbaren Fehlertypen informieren, und Benutzer, die an einer Verbesserung der Syntax interessiert sind, werden ermutigt, dem im selben Arbeitsgang abzuhelfen.
mw.loader.load( "https://en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/lintHint/r.js&action=raw&maxage=86400&ctype=text/javascript" );
Im Hauptnamensraum (etwa Wikipedia-Artikel) bei der normalen Seitenansicht oder während der Quelltextbearbeitung wird ein gelber Knopf lintHint in der rechten oberen Ecke angeboten, der eine Analyse auslöst.
Wenn Probleme detektiert wurden, wird ein großer gelber Kasten zu Beginn des Inhaltsbereichs eingefügt.
Der gelbe Kasten enthält üblicherweise eine Tabelle mit Fehlerhinweisen.
Wenn Seiten weder zum Darstellen noch Bearbeiten von Wikitext dienen, sondern etwa der Versionsgeschichte oder Seiteninformationen, geschieht nichts. Beachte, dass nur Wikitext Gegenstand einer Analyse sein kann.
Falls es zuzuordnende Fehler gibt, sieht die Tabelle wie folgt aus:
lint | + | ⇓ |
---|---|---|
Kategorietitel | DIV | ↓ |
↓
verlinkt mit einer markierten Region, wo dieser Fehler auftrat.Es gibt detektierbare Fehlertypen, zu denen noch keine Linter-Kategorien existieren. Mit der Option later
können sie in die Fehlertabelle integriert werden. Gibt es ausschließlich unkategorisierte Probleme, werden sie als „zukünftig“ vermerkt.
Auf einer virtuellen Seite ist eine Versionsinformation zu sehen, wenn das Gadget aktiv ist.
Zwei interaktive Wege für individuelle Untersuchungen werden angeboten:
Das Ergebnis erscheint auf derselben Seite, analog zu regulären Seiten. Eingegebene Seitennamen werden als anklickbare Verlinkungen reflektiert und würden in einem neuen Browser-Fenster geöffnet werden.
Die meisten der unten näher beschriebenen Optionen können nach Installation des Skriptes auf einer Spezialseite interaktiv konfiguriert werden.
Auf Seiten, auf denen eine gelbe Box mit dem Fehlerbericht erscheint, sowie auf der Steuerseite erscheint oben rechts ein Button – darüber kann die Konfigurationsseite in einem neuen Browser-Tab oder -Fenster geöffnet werden.
Wenn anschließend eine Textseite abgerufen wird, wird diese Konfiguration wirksam.
Auch nicht angemeldete Benutzer können davon Gebrauch machen; während die Konfiguration für angemeldete Benutzer beim Benutzerprofil auf dem Wiki-Server gespeichert ist, wird hier das Browserprofil benutzt.
Diese anfänglichen Zuweisungen können später in einer Seite durch Programmierung mittels JavaScript überschrieben werden. Gleichwohl ist es nicht ratsam, während der Initialisierung beide Praktiken zu mischen, da das Ergebnis nicht vorhersagbar ist (race condition).
Individuelle Wünsche können jederzeit an das Gadget übermittelt werden; am besten vor dem Laden des Gadgets, sofern die interaktive Schnellkonfiguration nicht benutzt wird.
Der JavaScript-Code dafür würde folgendermaßen aussehen:
// Erstelle ein benutzerdefiniertes object:
var meineLintHints = { };
// Spezifiziere einige Komponenten für das object.
meineLintHints.rooms = "-";
// Kommuniziere das benutzerdefinierte object:
mw.hook( "lintHint.config" ).fire( meineLintHints );
// Zum Schluss lade das Gadget:
mw.loader.load( "https://en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/lintHint/r.js&action=raw&maxage=86400&ctype=text/javascript" );
Dies ist an einem der unter Einbindung vorgeschlagenen Orte einzufügen.
Momentan sind die folgenden Optionen verfügbar:
Name | Type | Vorgabe | Bedeutung |
---|---|---|---|
rooms
|
Array string |
[ 0 ]
|
|
oldid
|
boolean | false
|
|
(later) | boolean | false
|
Zeige auch zukünftige Fehlertypen, zu denen noch keine Linter-Kategorien existieren. Dies wirkt sich aber normalerweise nur auf die allererste Begegnung aus, da sich das Gadget dann diesen Namen merkt. |
launch
|
boolean | false
|
Löse die Analyse automatisch beim Seitenbesuch in rooms aus, statt sie manuell über den angebotenen Knopf zu starten.
|
|
boolean | Wandelte auf der LintErrors-Spezialseite alle Verlinkungen zur Quelltextbearbeitung in das Migrationswerkzeug (2017/18) um. Dies fiel Ende 2018 weg, der Schalter ist damit obsolet. | |
lazy
|
boolean | false
|
Unterdrücke das kleine grüne Feld, falls bei einer Seitendarstellung kein Problem gefunden wurde. |
Zukünftige Optionen werden erwogen, wenn das Lint-System ausgebaut werden sollte.
Mehrfache Aufrufe von mw.hook("lintHint.config") beeinflussen keine anderen zuvor gesetzten Komponenten, falls nicht explizit geändert.
Im Modus „Quelltextbearbeitung“ wird bei Fehlern eine Tabelle mit den Einzelproblemen angezeigt. Die Felder der letzten Spalte dieser Tabelle enthalten zusätzlich zum Abwärtspfeil mit dem Sprung-Link die Einzelheiten zum Fehler:
Attribut | Bedeutung |
---|---|
data-beg
|
Erste Zeichenposition des Fehlerbereichs (number) |
data-end
|
Ende des Fehlerbereichs (number) |
data-type
|
Schlüsselwort zum Fehlertyp (string) |
Es wird mw.hook( "linthint.table-range" )
bei Erzeugung derartiger Zusatzinformationen ausgelöst. Mitgelieferter Wert ist das jQuery-Objekt der Tabelle.
Ein privates Skript könnte auf diese Nachricht warten, danach eine weitere Tabellenspalte hinzufügen und mit Buttons für automatisierte manuell überwachte Lösungsvorschläge ausrüsten, falls der Zeichenbereich sich dazu eignen sollte.
In den LintErrors-Kategorieauflistungen werden die Tabellen sortierbar gemacht, bis MediaWiki dieses Feature anbietet.
Wie überall gibt es zurzeit auf Mobilseiten keine Tabellensortierung.
Es kann explizit vorgegeben werden, alle Verlinkungen entweder zur normalen Quelltextbearbeitung oder für das Migrationswerkzeug einzustellen.
Einige wesentliche Änderungen:
Zu technischen Einzelheiten und einer Testseite siehe englischsprachige Dokumentationsseite.