Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/flow/format

WikiSyntaxTextModSyntaxpolitur → Schritt 6

Syntax-Lesbarkeit

In einem sechsten Schritt wird die Lesbarkeit des Wikitextes für Menschen verbessert, und durch Vereinheitlichung werden Konstrukte sicherer für Skripte, bots sowie die manuelle Suche nach Zeichenketten bei Quelltext und Dump-Auswertungen auffindbar gemacht.

Dies hat in aller Regel keine Auswirkung auf die Darstellung der Artikel für den Leser.

Einige Anregungen wurden der Sammlung Codeispoetry/Kosmetika entnommen.


Character Entities

Bearbeiten
  • Benannte Entities für grafische Zeichen gemäß HTML4 werden ersetzt. Sie irritieren Non-Techies und lassen sich heutzutage von allen Benutzern über die Werkzeugleisten eingeben. Wem Editierhilfen keine Hilfe waren und wer Zeichen als Entities eingegeben hatte, erhält sie ohne Bedeutungsverlust automatisch in ein einzelnes Unicode-Zeichen konvertiert.
    • Davon ausgenommen sind nbsp sowie die ML-Syntax-Escapes amp gt lt quot apos, ferner sonstige unsichtbare Zeichen wie thinsp.
  • Numerische Entities &#xhhhh; oder &#ddd; für grafische (sichtbare) Zeichen werden ersetzt
    • mit gleicher Ausschlussliste wie bei den benannten Entities
    • und ausgenommen Wikisyntax-Escapes für [ ] | = { }
    • ferner ausgenommen Steuerungszeichen
    • bis vor x2800 = 10.240 dezimal – also solche, die aus dem europäischen Raum stammen einschließlich der griechischen, russischen und mathematischen Nachbarn. Diese Zeichensätze sind einigermaßen flächendeckend installiert und Zeichen mit vertretbarem Aufwand einzufügen.
    • Hingegen halte ich es für legitim, vietnamesische, tamilische oder koreanische Zeichen als numerische Entities ab x2800 = 10.240 dezimal (Braille) lesbar und veränderbar zu belassen. Es muss damit gerechnet werden, dass Autoren standardmäßig keine derartigen Fonts installiert haben und nur Ersatzzeichen wie ■ zu sehen bekommen.
    • Abweichend davon werden in Textsequenzen ([Interlanguage-]Link oder gesamte Seite), die in einer CJK-Sprache geschrieben sind (jp ko zh), der Bereich dieser Sequenzen von Entities in Ideogramme transformiert, sofern erkannt; vorgesehen ist, dies auch bei anderen nichtlateinischen Schriftbereichen ab x2800 innerhalb der zugehörigen Sprachen so zu handhaben.
  • Weil ein Entity durch nowiki oder syntaxhighlight geschützt werden darf oder in einem Kommentar im Klartext verdeutlicht werden kann, dass Τ Α Χ Ε die wahre Bedeutung von „ΤΑΧΕ“ ist (siehe TeX), werden Entities nicht im ersten Schritt, sondern erst nach der Identifizierung geschützter Bereiche ersetzt.

Prozentzeichen

Bearbeiten

Zwischen Ziffer und Prozentzeichen wird seit 2007 von der MediaWiki Software automatisch ein geschütztes Leerzeichen   eingefügt. Stehen im Wikitext noch Altbestände an   oder wurden zwischenzeitlich von wohlmeinenden Autoren   eingefügt, werden diese automatisch entfernt.

Zeilenumbruch

Bearbeiten
  • Mehr als zwei Leerzeilen außerhalb geschützter Bereiche (syntaxhighlight usw.) werden auf maximal zwei Leerzeilen reduziert.
  • Jede [[Kategorie: und jedes Interlanguage (falls noch nicht auf Wikidata) auf eine eigene Zeile.

Überschriftentext durch Leerzeichen absetzen

Bearbeiten

Es ist im deutschsprachigen Raum offenbar unstrittig, dass die Gleichheitszeichen der Überschriftenmarkierung durch genau ein Leerzeichen vom Überschriftentext abgesetzt werden, damit sie besser erkannt werden. Projektspezifisch wird dies ggf. standardisiert.

<gallery>

Bearbeiten

In Bildergalerien wird wie folgt verfahren:

  • Falls es eine Einrückung gibt, wird sie für alle Zeilen einheitlich vorgenommen.
  • Der Namensraum (meist Datei:) muss nicht mehr angegeben werden (rev:79639) und wird als redundant entfernt.
  • Der Name der Bilddatei wird dekodiert wie ein Wikilink.
  • Falls es eine benutzerdefinierte Wikilink-Änderung gibt, wird diese ausgeführt.
  • Wenn es eine Notwendigkeit dafür gibt, wird der Name der Datei gegen Veränderung geschützt.

Es ist üblich, im Text nach dem öffnenden <ref> keine Leerzeichen oder gar Zeilenumbrüche folgen zu lassen; genauso soll das schließende </ref> ohne Leerzeichen oder Zeilenumbruch an den Inhalt der Referenz anschließen; das wird so formatiert.

Das ist im dargestellten Artikel unsichtbar. Darüber hinaus gibt es typografische Regeln, wie das sich ergebende Fußnotenzeichen an den vorangegangenen Text, den Satz oder Halbsatz anzuschließen ist. Dies geht über die Syntaxbereinigung hinaus und ist selbst einzurichten: Typografie.

Schließlich ist es genau genommen schon eine Korrektur von im Sinne von XML fehlerhafter Syntax, wenn die Anführungszeichen, die die Identifizierer bei name= und group= einschließen müssen, von diesem Skript nachgetragen werden.

<small> innerhalb der Referenzen ist je nach Skin- und Style-Einstellungen wirkungslos (weil die Grundschrift in gleichem Verhältnis verkleinert wird oder die Schriftgröße in ref und small auf den gleichen Absolutwert gesetzt wird) oder würde zu einer nicht mehr entzifferbaren Schriftgröße führen (siehe Typografie). Deshalb werden <small>-tags hier entfernt.

Innerhalb von Blöcken <references>………</references> werden die <refname= und </ref> jeweils auf eine eigene Zeile gesetzt, damit die Belege (gerade auch bei Verwendung der Vorlage:Literatur) besser unterschieden werden können.

Tabellen-Attribute

Bearbeiten

Bei Gesamt-Tabelle, Tabellenzeile sowie Zellen am Zeilenbeginn wird Attributsyntax entsprechend der Tags formatiert.

In trivialen Fällen wird prettytable durch wikitable ersetzt.

Tags, Vorlagen, Verlinkungen

Bearbeiten

Diese wurden bereits in vorangegangenen Schritten formatiert und angepasst:

Miniaturbilder

Bearbeiten

Miniaturbilder sind standardmäßig am rechten Seitenrand ausgerichtet; ein zusätzlicher rechts-Parameter ist redundant und wird entfernt.

Deutschsprachige Syntaxelemente einheitlich

Bearbeiten

In der deutschsprachigen Wikipedia wird ersetzt:

  • #WEITERLEITUNG   statt REDIRECT oder redirect oder Redirect
  • {{SORTIERUNG:   statt DEFAULTSORT
  • [[Datei:   statt Image oder Bild oder File.
    • Parameter bei Bildern deutschsprachig
  • [[Kategorie:   statt Category

Näheres hierzu unter Lokalisierung.

Beispiele für benutzerdefinierte Ersetzungen

Bearbeiten

Neben den vorstehend beschriebenen automatisch immer vorgenommenen Ersetzungen können Benutzer in eigener Verantwortung selbst Syntaxkosmetik definieren, die immer nur außerhalb geschützter Bereiche wie syntaxhighlight oder math wirksam wird.

HTML-Auszeichnung

Bearbeiten

checkwiki #26   checkwiki #38

Beim Kopieren aus externen Texten lassen Autoren gelegentlich HTML-Textauszeichnungen <b>……</b> oder <i>……</i> stehen. Dies sollte wikifiziert werden.

mw.libs.WikiSyntaxTextMod.config.mod.plain  =  [
       ["([^'])<(em|i)>([^'<\n]+)</ *\\2>([^'])",
        "$1''$3''$4"],
       ["([^'])<(strong|b)>([^'<\n]+)</ *\\2>([^'])",
        "$1'''$3'''$4"]
                                               ];

Dies sollte aber nur auf kürzere Passagen automatisiert angewendet werden; ein anderer Apostroph »'«, Zeilenumbrüche, andere HTML-Elemente und geschützte Bereiche lassen auf größere Probleme schließen und benötigen manuelle Interpretation. Ebenso scheidet ''<i>……</i>'' aus.

Exponenten

Bearbeiten

Die altbekannten ANSI-Zeichen lassen sich leicht einsetzen:

mw.libs.WikiSyntaxTextMod.config.mod.plain  =  [
                 ["<sup>2</sup>",
                  "²"],
                 ["<sup>3</sup>",
                  "³"],
                 
                                               ];

In Brüchen und etwa im Musikbereich ist jedoch die Form <sup>2</sup> üblich und optisch sinnvoll; nur bei Maßeinheiten wie m² und cm³ ist der kleine Exponent pauschal sinnvoll.

Im Unicode-Bereich gibt es von 8304–8319 weitere Ziffern und Vorzeichen in hochgestellter Anordnung; genauso tiefgestellt in 8320–8334 8334 (H₂O, CO₂). Man kann aber derzeit nicht davon ausgehen, dass auf den Rechnern der Leser Fonts mit solchen Codes vorhanden sind; deshalb sollen diese zurzeit wie oben dargestellt mit <sup> oder <sub> gebildet werden.

Wikisyntax-Aufzählungszeichen durch Leerzeichen vom Inhalt abtrennen

Bearbeiten

Das Aufzählungszeichen wie beispielsweise * am Zeilenanfang sollte zur besseren Erkennbarkeit durch ein Leerzeichen vom Textinhalt abgetrennt werden:

mw.libs.WikiSyntaxTextMod.config.mod.plain  =  [
                 ["(\n[*#:;]+)([^\n *#:;])",
                  "$1 $2"],
                 ["\n(:+) +\\{\\|",
                  "\n$1{|"],
                 
                                               ];

Dabei dient der zweite Ausdruck der Wiederherstellung einer Einrückung von Tabellen, die sonst nicht richtig interpretiert wird. Allgemein ist dies jedoch keine empfehlenswerte Methode zur Tabellenformatierung.[1]

Es gibt noch gelegentlich die Kompaktformatierung von Definitionslisten wie

;Term1:Bedeutung von 1
;Term2:was anderes mit Bedeutung 2

Dies ist zwar formal richtig; menschliche Interpretation kann aber unterstützt werden durch

; Term1
: Bedeutung von 1
; Term2
: was anderes mit Bedeutung 2

mittels

mw.libs.WikiSyntaxTextMod.config.mod.plain  =  [
                 ["(\n; *([^ :\n][^:\n]*) *: *([^ \n])",
                  "\n; $1\n: $2"],
                 
                                               ];

Anmerkungen

Bearbeiten
  1. Eigentlich lautet die Vorgabe, dass der Tabellenbeginn {| linksbündig ab der ersten Spalte stehen muss. Ein nicht dokumentiertes Feature ermöglichte jahrelang, dass der Tabellenanfang auch dann gefunden wird, wenn ausschließlich Doppelpunkte zur Einrückung benutzt werden. Besser und für Menschen wie für die Software eindeutig nachvollziehbar ist eine explizite Angabe   {| style="margin-left:2em"   mittels CSS.