Benutzer:Perhelion/Wikisyntax-config.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
/* Konfiguration für
[[Benutzer:PerfektesChaos/js/WikiSyntaxTextMod]]
zumeist von [[Benutzer:Schnark/js/Wikisyntax-config.js]]
<nowiki>
*/
/* global jQuery, mediaWiki */
(function ($, mw) {
"use strict";
var RomanDigit = "\\b[IVXLCDM]+\\.";

mw.libs.WikiSyntaxTextMod = { 
	api : {	},
	config : {
		format : {
			galleryIndent : 2
		},
		load : {
			inhibit : true,
			after :	function(){
				mw.loader.using(['ext.wikiEditor.toolbar', 'jquery.wikiEditor.toolbar', 'mediawiki.notify']).done(
					function(){
						var mn = "user:PerfektesChaos/WikiSyntaxTextMod", v = mw.loader.getVersion(mn);
						if (!v || !mw.libs.WikiSyntaxTextMod.api.loaded) v += (" – " + mw.loader.getState(mn));
						mw.notify(mn+ " " + v);
						$('#wpTextbox1').wikiEditor('addToToolbar', {
						section : 'main',
						group : 'format',
						tools : {
							syntax : {
								label : 'WSTM',
								type : 'button',
								icon : '//upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Nuvola_web_broom.svg/22px-Nuvola_web_broom.svg.png',
								action : {
									type : 'callback',
									execute : mw.libs.WikiSyntaxTextMod.api.run
								}
							}
						}
					});
				}
			);}
		},
		page : {
			oldid : true,
			include : [":dewiki:.*"],
			support : [":dewiki:.*"],
			// exclude : [":dewiki:Vorlage:[^/]+"]
		},
		mod : {
			summary : "[[WP:WPSK]]",
			tested : true,
			plain : [
				['(\\n[*#]+)([^*#\\s])', '$1 $2'], //Leerzeichen nach Listen
				['([^.])\\.\\.\\.([^.])', '$1…$2'], //Auslassungspunkte (Ellipsis)
				["\\]\\] *[,;] *† *\\[\\[", "]]; † [[", ""], //Semikolon vor Gestorben-Zeichen
				[String.fromCharCode(160),   "&nbsp;"], //unsichtbare NBSPs sichtbar machen
				[String.fromCharCode(173),   "&shy;"],  //unsichtbare SHYs entfernen
				[String.fromCharCode(8208), "-"],
				[String.fromCharCode(8209), "-"],
				//['([^-\\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>[-–]', '<sup>−'], //hochgestelltes Minus
				["<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
				['\\bprettytable\\b', 'wikitable'], //alte Tabellen CSS-class
				['^(==+) *(.+): *\\1 *', '$1 $2 $1'],
				['^== *extern(al|e) ((web)?links|verweise) *==', '== Weblinks ==', 'i'],
				['^== *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', '<s', 'i'], ['</strike\\s*>', '</s>', 'i'], //semantisch
				//['<tt\\s', '<kbd', 'i'], ['</tt\\s*>', '</kbd>', 'i'], //semantisch
				//['<u\\b', '<span style="text-decoration: underline"', 'i'], ['</u\\s*>', '</span>', 'i'],
				//['<big\\b', '<span style="font-size: large"', 'i'], ['</big\\s*>', '</span>', 'i'],
				['<center\\s', '<div style="text-align: center"', 'i'], ['</center\\s*>', '</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', '<!--Achtung: von Hand korrigieren: --><span', 'i'],
				['</font\\s*>', '</span>', 'i'],
				['<span\\s+style="font-size:\\s*(small|[78][0-9]%);?"\\s*>([^<\n]+)</span>', '<small>$2</small>', 'i'],

				['\\balign\\s*=\\s*("?)\\s*(\\w*)\\1', 'style="text-align:$2;"', 'i'],
				['\\bvalign\\s*=\\s*("?)\\s*(\\w*)\\1', 'style="vertical-align:$2;"', 'i'],
				['\\bbgcolor\\s*=\\s*("?)\\s*([#\\w]*)\\1', 'style="background-color:$2;"', 'i'],

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

				['=( *)"([^"\\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"],

				['\\?\\?', '\u2047'],
				['\\?\\!', '\u2048'],
				['\\!\\?', '\u2049'],
				//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"]
			],
			hook : function (adjust) { //obsolete
				return adjust.replace(/(lion\]\]'') <small>&#160;/g, '$1 <small>\u00A0');
			},
			wikilink : [
				["\\b(S(\\.|eiten?)( |&nbsp;)?[1-9][0-9]*)\u2212([1-9])",
					"$1\u2014$4"],
				[["\\[\\[", "(.*" + RomanDigit + ")", "\\]\\]\\."],
					[false, "$1", "]]"]]
			]
		},
		warn : {
			attribute : [["class", "\\bprettytable\\b"]],
			property : ["align", "bgcolor", "border", "clear", "compact", "height", "valign"],
			tag : ["big", "blockquote", "center", "font", "h1", "samp", "var"],
			template : {
				lonely : true
			}
		}
	}
};

/*var un = mw.config.get('wgUserName');
if (un != 'Perhelion')
alert(un + ' Du hast dir nicht einmal durchgelesen,\nwas du kopiert hast!?\n\nSchäm dich!');*/

})(jQuery, mediaWiki);