Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/flow/format
WikiSyntaxTextMod → Syntaxpolitur → Schritt 6
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 | Quelltext 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-Escapesamp gt lt quot apos
, ferner sonstige unsichtbare Zeichen wiethinsp
.
- Davon ausgenommen sind
- Numerische Entities
&#x
hhhh;
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
odersyntaxhighlight
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 | Quelltext 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 | Quelltext 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 | Quelltext 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 | Quelltext 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.
<ref>
[Bearbeiten | Quelltext bearbeiten]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 <ref
…name=
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 | Quelltext 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 | Quelltext bearbeiten]Diese wurden bereits in vorangegangenen Schritten formatiert und angepasst:
Miniaturbilder
[Bearbeiten | Quelltext bearbeiten]Miniaturbilder sind standardmäßig am rechten Seitenrand ausgerichtet; ein zusätzlicher rechts
-Parameter ist redundant und wird entfernt.
Deutschsprachige Syntaxelemente einheitlich
[Bearbeiten | Quelltext bearbeiten]In der deutschsprachigen Wikipedia wird ersetzt:
#WEITERLEITUNG
stattREDIRECT
oderredirect
oderRedirect
{{SORTIERUNG:
stattDEFAULTSORT
[[Datei:
stattImage
oderBild
oderFile
.- Parameter bei Bildern deutschsprachig
[[Kategorie:
stattCategory
Näheres hierzu unter Lokalisierung.
Beispiele für benutzerdefinierte Ersetzungen
[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]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 | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]- ↑ 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.