Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/usage/replace/plain/typogr

WikiSyntaxTextModBenutzungErsetzungenAllgemeiner Text → Typografie

Typografie

Typografische Verfeinerungen automatisiert auf den kompletten Wikitext der Artikel anzuwenden wäre nicht sinnvoll.

Unter anderem bei

  • auskommentierten Bereichen
  • code, math, nowiki, syntaxhighlight, tt sowie vorformatiertem Text (Leerzeichen am Zeilenanfang)
  • Wikilink-Zielen, in URL der Weblinks, in Dateinamen auf Commons

werden daher Bereiche vor ungewollter benutzerseitiger Veränderung geschützt.

Ein Restrisiko für unerwünschte Veränderungen bleibt jedoch. Im Skript selbst sind deshalb praktisch keine Ersetzungen für die Typografie festgeschrieben (→Ausnahme).

Statt dessen werden unten Beispiele für erprobte und recht narrensichere Ersetzungsausdrücke angegeben, aus denen sich Benutzer nach eigenen Vorlieben Korrekturmechanismen definieren und in eigener Verantwortung ausführen können.

Es empfiehlt sich dann die genaue Prüfung der DiffPage.

Von einer automatisierten Rechtschreibkorrektur muss abgeraten werden.

Zurzeit implementiertes Vorgehen Bearbeiten

Automatisch wird zurzeit nur eine typografische Ersetzung vorgenommen.

<small> in <ref> und für ganze Bildbeschreibungen und Exponenten Bearbeiten

Es muss davon ausgegangen werden, dass in einem Skin die Endnotentexte und Bildlegenden in verkleinerter Schrift dargestellt werden. Damit hat <small> keinen Sinn. Zwar lässt es sich in den CSS unterschiedlich vereinbaren, aber üblicherweise werden beide definiert etwa als „Höhe 80% der Grundschrift“ und unterscheiden sich deshalb nicht. Sollte es tatsächlich zweimal verkleinert werden, also eine Schriftgröße von 0,8 × 0,8 = 0,64 der Grundschrift wirksam werden, so ist im Interesse der Barrierefreiheit auf derartiges Augenpulver zu verzichten. Wikimedia sieht für CSS die class="references-small" vor.

Trotzdem taucht dies häufiger auf, etwa wenn unter „Weblinks“ der Hinweis <small>(abgerufen am …)</small> stand und dies nun als „Einzelnachweis“ kopiert wurde.

Ein vollständiger Bildbeschreibungstext [[Datei:|Bildbeschreibung]] soll nicht nochmals verkleinert werden und wird bereinigt; betrifft dies nur Teile, so wird dies zunächst belassen. Genauso wird verfahren, wenn der gesamte Ausdruck hoch- oder tiefgestellt ist, wie <sup><small>……</small></sup>

Zu weiteren zweifelhaften Verwendungen von <small> siehe entsprechende benutzerdefinierte Ersetzungen.

Beispiele für benutzerdefinierte Ersetzungen Bearbeiten

Sichere reguläre Ausdrücke sind tricky. Es empfiehlt sich, jeweils die diffpage genauer anzusehen.

Einige maximal narrensichere Ersetzungsausdrücke folgen.

Checkwiki Bearbeiten

Überschrift endet mit Doppelpunkt Bearbeiten

checkwiki #57

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

Das \n ist der Zeilenumbruch, der vor und nach der Überschriftenzeile stehen muss. Die erste Klammer enthält mit ==+ zwei oder mehr Gleichheitszeichen. Danach könnten keine oder mehrere Leerzeichen folgen. Die zweite Klammer umfasst den Überschriftentext; der Punkt meint ein beliebiges Zeichen, das kein Zeilenumbruch ist. Danach kommt der Doppelpunkt, der am Ende einer Überschrift nicht sinnvoll ist. Schließlich folgen mit \\1 gleich viele Gleichheitszeichen wie in der ersten Klammer gefunden wurden. Leerzeichen dürfen folgen. Ein Zeilenumbruch schließt die Konstruktion ab.

Ersetzt wird dies durch Zeilenumbruch, die Gleichheitszeichen der ersten Klammer, ein Leerzeichen, den Überschriftentext, ein Leerzeichen, erneut die Gleichheitszeichen der ersten Klammer und schließlich Zeilenumbruch.

Die Kodierungen für Zeilenanfang und Zeilenende ^ und $ werden zum einen nicht von allen Browsern bei mehrzeiligen Texten richtig unterstützt; zum anderen würde diese Situation auch eintreten, wenn in der gleichen Zeile davor und/oder danach Kommentare stehen würden. Nur durch explizite \n ist sichergestellt, dass vor den Gleichheitszeichen ein Zeilenumbruch und kein Kommentar steht.

Wikilink mit <br /> am Ende Bearbeiten

checkwiki #65

Ein Zeilenumbruch <br /> am Ende eines Wikilinks ist mindestens unschön; wenn es sich um die Einbindung einer Datei: handelt, ist dies völlig wirkungslos und vermutlich Rest einer mehrzeiligen Bildunterschrift. Einfach entfernen:

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
    ["<br /> *\\]\\]",
     "]]"]
                                             ];

oder vorsichtshalber außerhalb des Wikilinks versetzen

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
    ["<br /> *\\]\\]",
     "]]<br />"]
                                             ];

oder nur löschen, wenn Wikilink am Zeilenende steht, was auf eine Datei: schließen lässt:

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
    ["<br /> *\\]\\] *\n",
     "]]\n"]
                                             ];

Einzelzeichen Bearbeiten

Akzente statt Anführungszeichen Bearbeiten

Gelegentlich finden sich doppelte Akzente und statt Anführungszeichen.

Da in keiner Sprache in dieser Form Akzente vorkommen können, lassen sie sich automatisiert ändern:

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
    ["``",
     "“"],
    ["´´",
     "”"]
                                             ];

Apostroph Bearbeiten

Benutzer setzen oft im Text den ASCII-Apostroph ' 3910 statt des typografisch richtigen »’« – oder auch allerhand Akzent-Zeichen sowie &prime; (U+2032). Es ist nicht ratsam, jedes einzeln stehende Apostroph automatisiert umzusetzen; es könnte sich um ein verirrtes einzelnes Kursivzeichen '' handeln, oder auch als Anführungszeichen gemeint sein oder ein Koordinatenwert in einer Vorlage.

Deshalb sollte nur in den Fällen ersetzt werden, in denen in den gängigen Sprachen ein Apostroph vorkommen kann, wie etwa:   n’Abend – ’n Ding – hast’ – Lepsius’ – don’t – you’ll – Rock’n’Roll – O’Hara – c’est – D’Artagnan – J’ai – tu t’en va – jusqu’à – dell’arte.

["([a-zéäöü])['´`′]s\\b",
 "$1’s"],
// de
["([hsßtxz])['´`′] ",
 "$1’ "],
["([a-z])['´`′](ne?)\\b",
 "$1’$2"],
[" ['´`′]([ns])\\b",
 " ’$1"],
["([a-zéäöüß])['´`′]sch",
 "$1’sch"],
// en
["\\bI['´`′](ll|m|ve)\\b",
 "I’$1"],
["\\b([Yy]ou|[Ww]e|[Tt]hey)['´`′](ll|re|ve)\\b",
 "$1’$2"],
["([aos]n)['´`′]t\\b",
 "$1’t"],
["([a-z])(['´`′]n[’'´`]|’n['´`′])([a-zA-Z])\\b",
 "$1’n’$3"],
["\\bO['´`′]([BCDFGHJKLMNOQRSTY][a-z][a-z])",
 "O’$1"],
// fr
["\\b([Cc])['´`′]([eé])",
 "$1’$2"],
["\\b([dDlL])['´`′]([aeiouAEIOUÁÂââÉéîÎôÔŒœHh])",
 "$1’$2"],
["\\b([Jj])['´`′]a",
 "$1’a"],
["\\b([MmNnst])['´`′]([aeiouyàé])",
 "$1’$2"],
["\\bn['´`′]y\\b",
 "n’y"],
["\\b([Qq]u)['´`′]([aeié])",
 "$1’$2"],
["ujourd['´`′]hui\\b",
 "ujourd’hui"],
["usqu['´`′]à\\b",
 "usqu’à"],
// it
["\\b([Dd]ell)['´`′]([AaEeIiOoUu])",
 "$1’$2"]

Bis-Strich Bearbeiten

Für einen Zeitraum ist zwischen zwei Jahreszahlen nicht der kurze Bindestrich, sondern der etwas längere Bis-Strich zu verwenden.

Bei eingeklammerten Jahreszahlen ist die Identifizierung recht sicher (aber mit Restrisiko; siehe Minuszeichen):

["(\\([^-0-9]*(1[0-9]|20)[0-9][0-9])[-—−]((1[0-9]|20)[0-9][0-9][^-0-9]*\\))",
 "$1–$3"],

Bei der Ersetzung liegt tatsächlich der längere Strich vor, der aber hier in der gleichabständigen Code-Darstellung nicht unterscheidbar wiedergegeben wird. Die Suche nach dem einzelnen Zeichen „Strich“ enthält in [-—−] drei verschiedene unerwünschte Zeichen: In Proportionalschrift sind es „-—−“ Bindestrich, m-dash und Minuszeichen. Der Bindestrich sollte der erste unter den dreien sein; sonst könnte dies als beliebiges Zeichen im Bereich 4473–821210 interpretiert werden.

Ohne Klammern sind aber Probleme denkbar bei ISBN, Güterwaggons, … – Folgen Zeichen, die keine Ziffern und auch kein Bindestrich sind, ist es ebenfalls eindeutig: „(1885–1950, in Wien)“, auch wenn solche vorangehen: „(Regierungszeit 1888–1918)“.

In Datei:Flag of Italy (1861-1946).svg wird der Dateiname nicht verändert, weil [[Datei: die darauf folgende Dateibezeichnung schützt.

Endet eine Datei-ID auf eine der bekannten „Dateierweiterungen“, wird sie auch in einer Vorlage erkannt und geschützt:

    | Staatswappen = Coat of Arms of East Germany (1953-1955).svg
    | Homepage     = www.example.dd
    | WikiLemma    = Deutsche Demokratische Republik

Steht in einer Vorlage allerdings die Datei-ID ohne die Dateierweiterung (wie es etwa bei Flagicons vorkommt), kann sie nicht erkannt werden. Nicht erkennbar sind im Beispiel auch die Domain als Teil der URL und das Lemma.

Man sollte sich also nie blind auf seine noch so trickreichen Regulären Ausdrücke verlassen, sondern immer auch einen Blick auf die Diffpage werfen und seine Syntax wenn nötig verfeinern.

Gestorben-Zeichen Bearbeiten

Im Einleitungssatz eines Personenartikels wird im Klammerausdruck das Gestorben-Zeichen richtig formatiert.

["\\]\\] *[,;] *† *\\[\\[",
 "]]; † [[",
 ""],

Die Bearbeitung findet nur einmal statt und berücksichtigt nur Standardfälle (mit verlinktem Tagesdatum).

Grad-Zahlen bei Temperaturangaben Bearbeiten

Folgt auf die Temperaturangabe in Grad der Kennbuchstabe für die Temperaturskala, dann sind Ziffern und Gradzeichen durch ein (geschütztes) Leerzeichen zu trennen (Duden/„Textverarbeitung“). Das wird häufig falsch gemacht und das Leerzeichen zwischen Gradzeichen und Kennbuchstabe gesetzt; dies wird in Zeile 1–2 berichtigt.

["([0-9])[°º]( |&nbsp;)([CFR]\\b)",
 "$1&nbsp;°$3"],
["([0-9]) ?[°º]([CFR]\\b)",
 "$1&nbsp;°$2"],
["([^0-9]) [-–]([0-9,.]+&nbsp;)[°º]([CFR]\\b)",
 "$1 −$2°$3"],

Weil auch irrtümlich das „männliche Nummernzeichen“ U+2116 statt des Gradzeichens verwendet sein könnte, wird auch dies mit [°º] gefunden und berichtigt. ([CFR]\\b) ist einer der Großbuchstaben C, F, R. \\b stellt sicher, dass kein anderer Buchstabe folgt, der Kennbuchstabe also ein einzelnes Zeichen ist.

Zahlen und eine kurze Maßeinheit sollten durch geschütztes Leerzeichen verbunden werden; dies geschieht in Zeile 3–4.

Handelt es sich nicht um einen Temperaturbereich, bei dem zwei Zahlen durch Bis-Strich verbunden sind, dann ist der Strich vor der Zahlenangabe ein Minuszeichen und kein Bindestrich und kein Bis-Strich. Dies wird in Zeile 5–6 verfeinert.

Horizontale Ellipse Bearbeiten

In fest kodierten Bereichen wäre ... sinnvoll möglich; diese sind aber geschützt. Deshalb kann im restlichen Text für eine Auslassung das Zeichen »…« ersetzt werden; keine Nebenwirkungen sind zu erwarten mit:

["(\\[|\\(| )\\.\\.\\.(\\]|\\)| )",
 "$1…$2"],

oder allgemeiner

["([^.])\\.\\.\\.([^.])",
 "$1…$2"],

Ligaturen Bearbeiten

Ligaturen können oft nicht richtig dargestellt werden, und verhindern die Suche nach Schlüsselwörtern. Im Wikitext sollten sie deshalb besser durch Einzelbuchstaben ersetzt werden.

if (mw.config.get(wgTitle) !== "Ligatur (Typografie)") {
   mw.libs.WikiSyntaxTextMod.config.mod.plain =
       mw.libs.WikiSyntaxTextMod.config.mod.plain.concat(
                 [ ["ff",
                    "ff"],
                   ["fi",
                    "fi"],
                   ["fl",
                    "fl"],
                   ["ffi",
                    "ffi"],
                   ["ffl",
                    "ffl"],
                   ["st",
                    "st"]
                            ]      );
}   // Ligatur (Typografie)

Im Artikel Ligatur (Typografie) selbst ist die Diskussion des Zeichens und die Darstellung von Anwendungsbeispielen sinnvoll, .config.mod.plain wird deshalb nur erweitert, wenn nicht ausgerechnet dieser Artikel bearbeitet wird.

In Zeichentabellen wie dem Unicodeblock Alphabetische Präsentationsformen wird die Kodierung des Einzelzeichens gezeigt. Um auch in allen diesen Fällen eine unbeabsichtigte Ersetzung zu verhindern, lässt sich fordern, dass Buchstaben vorangehen und folgen müssen:

if (mw.config.get(wgTitle) != "Ligatur (Typografie)") {
   mw.libs.WikiSyntaxTextMod.config.mod.plain =
      mw.libs.WikiSyntaxTextMod.config.mod.plain.concat(
                 [ ["([a-Za-zÄÖÜäöü])ff([a-zäöü])",
                    "$1ff$2"],
                   ["([a-Za-zÄÖÜäöü])fi([a-zäöü])",
                    "$1fi$2"],
                   ["([a-Za-zÄÖÜäöü])fl([a-zäöü])",
                    "$1fl$2"],
                   ["([a-Za-zÄÖÜäöü])ffi([a-zäöü])",
                    "$1ffi$2"],
                   ["([a-Za-zÄÖÜäöü])ffl([a-zäöü])",
                    "$1ffl$2"],
                   ["([a-Za-zÄÖÜäöü])st([a-zäöü])",
                    "$1st$2"]
                            ]      );
}   // Ligatur (Typografie)

Negativer Exponent Bearbeiten

Negative Exponenten und negative Ladungen sollen mit einem Minuszeichen geschrieben werden; nicht mit Bindestrich und nicht mit dem einem Minuszeichen „−“ zum Verwechseln ähnlich sehenden Halbgeviertstrich „–“.

["<sup>[-–]([0-9]*)</sup>",
 "<sup>−$1</sup>"],

Worttrennung Bearbeiten

Sonderzeichen im Zusammenhang mit Zeilenumbruch und automatischer Worttrennung können ersetzt oder entfernt werden:

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
   ["\xA0",   "&nbsp;"],
   ["\xAD",   "&shy;"],
   ["\u2010", "-"],
   ["\u2011", "-"]
                                             ];

Folgende Ersetzungen erfolgen:

  1. Geschütztes Leerzeichen, das im Wikitext wie ein „normales“ ASCII-Leerzeichen 3210 aussieht, wird als Entity &nbsp; sichtbar.
  2. Weiches Trennzeichen 17310 wird als Entity &shy; sichtbar – kann genauso auch gelöscht werden ("").
  3. Bindestrich 820810 wird durch „normalen“ Bindestrich ersetzt – könnte Überrest einer automatischen Worttrennung sein und wäre dann vollständig zu entfernen.
  4. Nicht-umbrechender Bindestrich 820910 wird zum normalen Bindestrich 4510.

Kontextabhängig Bearbeiten

Durchnummerierte Fürsten Bearbeiten

An den Namen von Fürsten soll eine römische Zahl mit geschütztem Leerzeichen angeschlossen werden.

var RomanDigit =  "[IXV]+\\.";   // in Reuß gab es einen Heinrich LIII.
var VornamenM  =  "Adolf|Albert|Albrecht|Alexander|Alf?onso?|Anton|Auguste?|"
                + "Benedikt|Bernh?ard|"
                + "[CK]arl|Carlos|Charles|Christian|[CK]lemens|"
                + "Dietrich|Ed[uw]ard|Emanuele?|Eri[ck]|Ernst|"
                + "Ferdinand|Franz|Friedrich|"
                + "George?|Gerhardt?|Gottfried|Gregory?|Gusta[fv]|"
                + "Har[ao]ld|Heinrich|Henr[iy]|Inno[cz]enz|I[vw]an|"
                + "Ja[ck]ob|Joachim|Johann|Johannes|Joseph|Julius|"
                + "Kasimir|Konrad|Leo|Leopold|Louis|"
                + "Ludwig|Max|Maximilian|Michael|"
                + "Napol[eé]on|Nikola[ij]|Nikolaus|Ola[fv]|Os[ck]ar|Otto|"
                + "Paul|Peter|Philipp|Pius|Richard|Rudolf|Sigismund|Sixtus|"
                + "Urban|Waldemar|Wilhelm|William";
var VornamenW  =  "[CK]ath?[ae]rin[ae]?|Eli[sz]abeth|Marga?reth?[ae]?";
var Vornamen   =  VornamenM + "|" + VornamenW;

// Nur Wirkung im freien Text ohne Wikilink oder im abweichenden Linktext:
mw.libs.WikiSyntaxTextMod.config.mod.plain = [
   ["(\\b(" + Vornamen + ")s?) (" + RomanDigit + "(\\]|[ ),;?\n]))",
    "$1&nbsp;$3"],
   ["({{Personendaten\n|NAME=.+)&nbsp;",
    "$1 "],
   ["(\n|(ALTERNATIVNAMEN|KURZBESCHREIBUNG)=.+)&nbsp;",
    "$1 "]
                                             ];
// Nur Wirkung im offenen Wikilink:
mw.libs.WikiSyntaxTextMod.config.mod.wikilink = [
[   [false,  "(.*\\b" + Vornamen + ") (" + RomanDigit + ")",  "\\]\\]"],
    [false,  "$1&nbsp;$2",                                    false]   ]
                                                ];

Früher durfte in einem Linkziel kein &nbsp; erscheinen; [[Ludwig&nbsp;XIV.]] führte zu einem redlink. Mittlerweile kann aber das nbsp auch in der offenen Verlinkung benutzt werden.

Aus der Vorlage:Personendaten muss das benutzerseitig eingefügte &nbsp; aber wieder entfernt werden; zuvor war dies ggf. schon einmal durch das Skript im automatischen Ablauf geschehen, der aber nach den benutzerdefinierten Ersetzungen nicht mehr wiederholt wird.

Endnoten Bearbeiten

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
// Fußnotenzeichen soll immer direkt an das vorangehende Wort oder Satzteil anschließen:
["(([^=]) *\n +| +)<ref\\b",
 "$2<ref"],
// Ausgenommen ist eine vorangehende   == Überschrift ==

// Das Fußnotenzeichen steht in enzyklopädischen Artikeln
// so gut wie immer nach einem vorangehenden Satzzeichen als Satzteil;
// es folgt also einem Fußnotenzeichen kein Satzzeichen:
["([^,.?!;:“])(<ref\\b[^>\n]*>[^<\n]+</ref>)([,.?!;:])",
 "$1$3$2"],
// Steht im Text sowohl vor als auch nach der Fußnote ein Satzzeichen,
// wird das führende belassen und das nachfolgende entfernt:
["([,.?!;:“]<ref\\b[^>\n]*>[^<\n]+</ref>)[,.?!;:]",
 "$1"]
                                             ];

Floskeln abkürzen Bearbeiten

Abkürzungen („d.h.“, „u.a.“) setzt man besser nicht automatisiert in die Langform um. Im anspruchsvollen Fließtext haben sie zwar nichts zu suchen, wohl aber können sie sinnvoll sein in Tabellen, Bildlegenden, Endnoten und bei eingeklammerten Einschüben.

Zumindest kann man aber durch eingefügtes &nbsp; den Zeilenumbruch unterbinden:

["\\b([Dd]\\.) ?h\\.",
 "$1&nbsp;h."],
["\\be\\. ?V\\.",
 "e.&nbsp;V."],
["\\bo\\. ?([Ää]\\.)",
 "o.&nbsp;$1"],
["\\bu\\. ?([Aa]\\.)",
 "u.&nbsp;$1"],
["\\b([Uu]\\.) ?U\\.",
 "$1&nbsp;U."],
["\\bv\\. ?a\\.",
 "v.&nbsp;a."],
["\\b([Zz]\\.) ?B\\.",
 "$1&nbsp;B."],
["\\b([Zz]\\.) ?T\\.",
 "$1&nbsp;T."],

„u.a.“ ist mehrdeutig: unter anderem, und andere(s)

Die Formen a. D., d. R., e. V., n. Chr. sind bei Titeln usw. fest eingebürgert und sinnvoller als die Expansion. Dies zeigt einmal mehr, dass die Aufgabe der Textformulierung komplex ist; sie ist kontextsensitiv und hängt von zahlreichen Nebenbedingungen ab. Das ist etwas anderes als die einer strikten Syntax unterliegende formale Sprache.

Da nicht automatisiert festgestellt werden kann, ob eine Expansion in die ausgeschriebene Form sinnvoll ist, wäre eher an einen Knopf auf der Bearbeitungsleiste (analog WikEd) zu denken, der bewirkt: Ersetze die Abkürzung an der aktuellen Stelle (Cursorposition oder selektierter Bereich, maximal ein Absatz).

Ordnungszahlwörter, englisch und sonst Bearbeiten

Wer häufiger mit englischen Textpassagen zu tun hat, kann ersetzen:

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
   ["\\b([0-9]*[02-9]?1)st\\b",
    "$1<sup>st</sup>"],
   ["\\b([0-9]*[02-9]?2)nd\\b",
    "$1<sup>nd</sup>"],
   ["\\b([0-9]*[02-9]?3)rd\\b",
    "$1<sup>rd</sup>"],
   ["\\b([0-9]*[4-90])th\\b",
    "$1<sup>th</sup>"],
   ["\\b([0-9]*1[123])th\\b",
    "$1<sup>th</sup>"]
                                             ];

Der Klammerausdruck gibt eine ein- oder mehrstellige Zahl an, vor deren Ziffern keine Buchstaben stehen und die von den jeweils geeigneten beiden Kleinbuchstaben gefolgt werden, auf die wiederum weder Buchstabe noch Ziffer folgt. Die Wahrscheinichkeit, dass dies mit der Bezeichnung eines Asteroiden oder einer sumerischen Keilschrifttafel kollidiert, ist sehr gering.

Ähnliches gibt es auch im Französischen sowie mit Römischen Zahlen im englischen Text.

Plenken Bearbeiten

Plenken meint ein sinnloses Leerzeichen vor einem Satzzeichen.

Der einfachste sichere Ausdruck fordert nach diesem Satzzeichen jedoch ein Leerzeichen oder das Zeilenende (also whitespace):

[" +(([,;:.!?][ \n])",
 "$1"],

Eine Variante, die auf das Satzzeichen möglichst beliebige Zeichen folgen lässt, wird komplizierter:

// 'Plenk' ist im Text ein Leerzeichen vor einem Satzzeichen
// Es kann aber heißen:   "Endergebnis 15 : 30"   oder ein Smiley ;-)
["([^: |0-9]) +([,;:][^-.,;:()–{}<])",
 "$1$2"],
// Es kann heißen: "Wert = ?" oder anders mit "???"
["([^: ?|=]) +(\\?[^?])",
 "$1$2"],
// Tabellenköpfe können enthalten:   "! ABC !! Zahlenwert !! "
[" +(![^!])",
 "$1"],
// "das .NET-Framework"   "die .de-Domain"   "die .EXE-Datei"
[" +(\\.[ \n])",
 "$1"],

Letzteres in einem einzigen Ausdruck:

["([^: ?|]) +(([,;:])|(?[^?])|(![^!])|(\\.[ \n]))",
 "$1$2"],

In einer Tabellenzelle kann ein einzelnes Satzzeichen stehen; deshalb ist ein Leerzeichen nach | sinnvoll.

Punkt nach Punkt Bearbeiten

Ein beliebter Fehler ist ein ».« als Satzende, nachdem die verlinkte römische Zahl bereits einen ».« enthielt:

Friedrich II.]].

Der folgende Ausdruck bereinigt dies auch bei anderen mit römischen Zahlen nummerierten Gegenständen sowie den d. Ä. / d. J.:

var RomanDigit =  "\\b[IVXLCDM]+\\.";
mw.libs.WikiSyntaxTextMod.config.mod.plain = [
   ["(" + RomanDigit + ")\\]\\]\\.",
    "$1]]"],
   ["\\b(d\\.( |&nbsp;)?[ÄJ]\\.)\\]\\]\\.",
    "$1]]"]
                                             ];
mw.libs.WikiSyntaxTextMod.config.mod.wikilink = [
   [   [  "\\[\\[",  "(.*" + RomanDigit + ")",  "\\]\\]\\."  ],
       [  false,     "$1",                      "]]"  ]   ]
                                                ];

Beim Link mit gesondertem Linktext gehört der Titel samt schließenden eckigen Klammern zum normalen Text.

Beim offenen Link ist dagegen ein komplexer Ersetzungsausdruck erforderlich, da die römische Zahl zum Linkziel gehört, die eckigen Klammern und der Punkt hingegen außerhalb des Linkziels liegen.

<small> in Bildlegende und Exponenten Bearbeiten

Oben wurde bereits beschrieben, warum in einem bereits kleiner geschriebenen Kontext die Schriftauszeichnung <small> nicht angebracht ist.

Dies trifft auch meist zu für:

  • Teile einer Bildbeschreibung
  • hochgestellte (Exponenten) und tiefgestellte Zeichen

Hier ist es in seltenen Fällen sinnvoll, die ohnehin schon kleine Schrift nochmals zu verkleinern; allerdings kann dafür <small> abhängig von den CSS-Definitionen ungeeignet sein. Eher wäre zu formatieren:

  • <span style="font-size:…;">

Ist eine Bildlegende nur teilweise zusätzlich verkleinert worden und soll dies in einem Themenbereich beseitigt werden, kann der Ausdruck lauten:

mw.libs.WikiSyntaxTextMod.config.mod.wikilink = [
[   [  false,  "(Datei:.+)",  "([^\n]+)<small>([^|\n]*)</small>([^|\n]*)\\]\\])"  ],
    [  false,  "$1",          "$1$2$3]]"  ]   ]
                                                ];

Es erfolgt dabei globale Ersetzung; auch SMALL wird gefunden.

In der Mathematik gibt es Ausdrücke wie „2 hoch 3 hoch 4“, diese sollten besser mit math gebildet werden.

Minuszeichen statt Bis-Strich Bearbeiten

Zwischen Jahreszahlen usw. gehört kein Minuszeichen, sondern der Bis-Strich. Diese beiden sind jedoch optisch kaum zu unterscheiden.

Legitim ist auch eine Berechnung, bei der links und rechts vom Minuszeichen vierstellige Zahlen auftreten können. Es ist immer eine Nachkontrolle erforderlich; auch eine Differenz von vierstelligen Zahlen bei knapp zweitausend kann in Klammern stehen (siehe oben).

Zweifelsfrei möglich wäre etwa:

mw.libs.WikiSyntaxTextMod.config.mod.wikilink = [
[  ["\\b(S(\\.|eiten?)( |&nbsp;)?[1-9][0-9]*)\u2212([1-9])",
    "$1\u2014$4"]
                                                ];