Zum Inhalt springen

Benutzer:Perhelion/Wikisyntax-config.js

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. April 2016 um 18:51 Uhr durch Perhelion (Diskussion | Beiträge) (+). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/* Konfiguration für
[[Benutzer:PerfektesChaos/js/WikiSyntaxTextMod]]
teilweise von [[Benutzer:Schnark/js/Wikisyntax-config.js]]
<nowiki>
               .
              / \                 !!!          ACHTUNG          !!!
             / . \
            / / \ \               Ich kann dich nicht daran hindern,
           / / _ \ \              meine Konfiguration ganz oder
          / / | | \ \             in Teilen zu übernehmen.
         / /  | |  \ \
        / /   | |   \ \           Ich rate dir aber, wirklich nur
       / /    |_|    \ \          die Konfigurationsvariablen zu
      / /      _      \ \         übernehmen, bei denen du weißt,
     / /      (_)      \ \        was sie bewirken und nur die
    / /                 \ \       regulären Ausdrücke, von denen
   /  `-----------------´  \      du weißt, wie sie arbeiten.
   `-----------------------´

*/
/* global jQuery, mediaWiki */
window.ns = window.ns || mw.config.get('wgNamespaceNumber');
window.user = window.user || mw.config.get('wgUserName');
(function ($, WSTM) { // .cfg predefinied in global.js
"use strict";
var RomanDigit = "\\b[IVXLCDM]+\\.";
var cfg = {
	mod : {
		tested : true,
		plain : [
			['(^[*#:;]+)([^*#:;\\s])', '$1 $2'], //Leerzeichen nach Listen
			["\\]\\] *[,;] *† *\\[\\[", "]]; † [[", ""], //Semikolon vor Gestorben-Zeichen
			//['\u00A0', "&nbsp;"], //unsichtbare NBSPs sichtbar machen
			//['\u00AD', "&shy;"], //unsichtbare SHYs sichtbar machen
			['(\u2010|\u2011)', "-"], // HYPHEN
			//['([^-\\w](?:1\\d|20)\\d\\d)\\s*[-‐‑‒—―⁃─━−]\\s*((?:1\\d|20)\\d\\d[^-\\w])', '$1–$2'], //Zeiträume mit Bis-Strich schreiben
			["(\\([^-0-9]*(1[0-9]|20)[0-9][0-9])[-—−]((1[0-9]|20)[0-9][0-9][^-0-9]*\\))", "$1–$3"], // Bis-Strich
			
			['(ISSN(?:\\s|\\|)\\d\\d\\d\\d)–(\\d\\d\\d\\d)', '$1-$2'], //versehentlich verpfuschte ISSN wieder korrigieren

			[' - (\\D)', ' – $1'], //Gedankenstrich
			['(\\D) - ', '$1 – '], //Minus ist hoffentlich hiermit ausgeschlossen
			[' -, ', ' –, '],

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

			['oς', 'ος'], //griechische Wörter schreibt man mit omikron, nicht mit o, aber mehr lässt sich automatisch nicht korrigieren
			["^(==+) *(.+): *\\1 *$", "$1 $2 $1"], // Kein Doppelpunkt
			['^== *extern(al|e) +((web)?links|verweise) *==', '== Weblinks ==', 'i'], //Kreativität zeigt sich im Artikel, nicht in den Überschriften
			['^== *referen[cz]e[sn] *==', '== Einzelnachweise ==', 'i'],

			// Fußnotenzeichen, Quelle </nowiki>[[User:PerfektesChaos/js/WikiSyntaxTextMod/usage/typogr##udef.ref]]<nowiki>
			["( *\n +| +)<ref\\b", "<ref"], // Fußnotenzeichen soll immer direkt an das vorangehende Wort oder Satzteil anschließen
			// Das Fußnotenzeichen steht in enzyklopädischen Artikeln so gut wie immer nach einem vorangehenden Satzzeichen als Satzteil;
			["([^,.?!;:“])(<ref\\b[^>\n]*>[^<\n]+</ref>)([,.?!;:])", "$1$3$2"], // es folgt also einem Fußnotenzeichen kein Satzzeichen
			["([,.?!;:“]<ref\\b[^>\n]*>[^<\n]+</ref>)[,.?!;:]", "$1"], // Steht im Text sowohl vor als auch nach der Fußnote ein Satzzeichen, wird das führende belassen und das nachfolgende entfernt

			//veraltetes HTML (nocht weitgehend ungestestet)
			['<strike', '<s', 'i'], ['</strike\\s*>', '</s>', 'i'], //semantisch
			//['<tt\\s', '<kbd', 'i'], ['</tt\\s*>', '</kbd>', 'i'], //semantisch
			//['<big\\b', '<span style="font-size: large"', 'i'], ['</big\\s*>', '</span>', 'i'], // not until [[phab:T40487]] is solved
			['<center', '<div class="center"', 'i'], ['</center\\s*><!--Achtung: von Hand korrigieren-->', '</div>', 'i'], // Achtung bei Tabellen etc.
			['<font\\s+color\\s*=\\s*("?)([^>]*?)\\1\\s*>', '<span style="color:$2;">', 'i'],
			['<font\\s+size\\s*=\\s*("?)\\+\\d+\\1\\s*>', '<span style="font-size:large;">', 'i'],
			['<font\\s+size\\s*=\\s*("?)-\\d+\\1\\s*>', '<span style="font-size:small;">', 'i'],
			['<font\\b', '<span', 'i'], // Achtung: evtl. von Hand korrigieren
			['</font\\s*>', '</span>', 'i'],
			['<span\\s+style="font-size:\\s*(small|[78][0-9]%);?"\\s*>([^<\n]+)</span>', '<small>$2</small>', 'i'],

			['^({\\|[^\\n|]*)align\\s?=\\s?("?)\\s?right\\2', '$1class="float-right"<!--Achtung: überprüfen-->'],  // Achtung Test, bei Tabellen etc.
			['\\balign\\s?=\\s?("?)\\s?(\\w*)\\1', 'style="text-align:$2;"'],
			['\\bvalign\\s?=\\s?("?)\\s?top\\1', 'class="toptextcells"<!--Achtung: muss in Tabellenkopf-->'],
			['\\b(style="vertical-align:top;?")', '$1?class="toptextcells"<!--Achtung: muss in Tabellenkopf-->'], // Achtung Test, bei Tabellen etc.
			['\\bvalign\\s?=\\s?("?)\\s?(\\w*)\\1', 'style="vertical-align:$2;"'],
			['\\bbgcolor\\s?=\\s?("?)\\s?([#\\w]*)\\1', 'style="background:$2;"'],

			['\\bstyle="([^"]*)"\\s+style\\s*=\\s*"\\s*', 'style="$1 '], // doppelte style zusammenfassen

			['=( *)"([^"\\n]*)"', '=$1\t§§\t$2\t§§\t'],

			[' , ?', ', '], // Komma verrutscht?
			['\\n{3}', '\n\n'], // Doppelte Leerzeilen?
			['  ', ' '], // Doppelte Leerzeichen?

			//alle Anführungszeichen maskieren TEST
			["([->(\\[\\s](?:''+)?)\"(\\w[^\"]*\\w)\"((?:''+)?[-.,;:!?<)\\]\\s])", '$1„$2“$3'],
			//typographische Anführungszeichen
			['\\t§§\\t', '"'],
			//zurückverwandeln
			[" '([^'\\s]+)' ", ' ‚$1‘ '], //vorsichtig auch einfache behandeln
			["(<ref\\b[^>\n]*)\/>([?!;:,.])", "$2$1\/>"], //wiederholendes ref nach Satzzeichen

			//Apostroph, Quelle </nowiki>[[Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/usage/replace/plain/typogr#Apostroph]]<nowiki>
			["([a-zéäöü])['´`′]s\\b", "$1’s"],
			["([hsßtxz])['´`′] ", "$1’ "],
			["([a-z])['´`′](ne?)\\b", "$1’$2"],
			[" ['´`′]([ns])\\b", " ’$1"],
			["([a-zéäöüß])['´`′]sch", "$1’sch"],

			//Fußnotenzeichen, Quelle </nowiki>[[Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/usage/replace/plain/typogr#udef.ref]]<nowiki>
			["(([^=]) *\n +| +)<ref\\b",
				"$2<ref"],
			["([^,.?!;:“])(<ref\\b[^>\n]*>[^<\n]+</ref>)([,.?!;:])",
				"$1$3$2"],
			["([,.?!;:“]<ref\\b[^>\n]*>[^<\n]+</ref>)[,.?!;:]",
				"$1"],

			["\\.“\\.", ".“"] // Wenn ein Zitat mit einem Punkt endet, steht nach dem abschließenden Anführungszeichen kein Punkt
		],
		template : [{
				detect : {
					title : "[Pp]olytonisch"
				},
				rename : {
					title : [true, "lang|grc"]
				}
			}
		],
		wikilink : [
			[[ " [Ii]n: ('?)\\1\\[\\[", ".+",  "\\]\\]('?)\\1, " ],  
				[ " In: ''[[" , false, "]].'' " ]],
			["\\b(S(\\.|eiten?)( |&nbsp;)?[1-9][0-9]*)\u2212([1-9])",
				"$1\u2014$4"],
			[["\\[\\[", "(.*" + RomanDigit + ")", "\\]\\]\\."],
				[false, "$1", "]]"]]
		]
	}
};
if (ns === 0) cfg.mod.summary = "[[WP:WPSK]]";
if (user !== 'Perhelion')
	alert(user + ' Du hast Dir nicht einmal durchgelesen,\nwas Du kopiert hast!?\n\nFrage mich, Perhelion!');
if (WSTM && WSTM.config) {
	// extend overwrites duplicates... so merge.
	if (WSTM.config.mod.plain)
		$.merge(cfg.mod.plain, WSTM.config.mod.plain);
	if (WSTM.config.mod.hook)
		cfg.mod.hook = WSTM.config.mod.hook; // save before extend (no deep copy)
	return $.extend(WSTM.config, cfg);
}

console.warn("Global WSTM.config not exists!?!");
mw.libs.WikiSyntaxTextMod = { config : cfg };
})(jQuery, mediaWiki.libs.WikiSyntaxTextMod);