Zum Inhalt springen

Benutzer:Perhelion/Wikisyntax-config.js

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 5. August 2015 um 12:51 Uhr durch Perhelion (Diskussion | Beiträge) (Fix /Leerzeichen nach Listen). 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>
*/
/* global jQuery, mediaWiki */
if (typeof ns === "undefined")
	var ns = mw.config.get('wgNamespaceNumber');
(function ($, config) { // .cfg predefinied in gloabal.js
"use strict";
var RomanDigit = "\\b[IVXLCDM]+\\.";
var cfg = {
	page : {
		oldid : true,
		include : [":dewiki:.*"],
		support : [":dewiki:.*"]
		// , exclude : [":dewiki:Vorlage:[^/]+"]
	},
	mod : {
		summary : "[[WP:WPSK]]",
		tested : true,
		plain : [
			['(^[*#:;]+)([^*#:;\\s])', '$1 $2'], //Leerzeichen nach Listen
			["\\]\\] *[,;] *† *\\[\\[", "]]; † [[", ""], //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
			
			['(\\S)\\!\\!', '$1\u203C'],
			['\\?\\?', '\u2047'],
			['\\?\\!', '\u2048'],
			['\\!\\?', '\u2049'],
			['([^.])\\.\\.\\.([^.])', '$1\u2026$2'], // Ellipsis

			['(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"], // 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', '<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:$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"],

			//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"],
				
			['#([0-9A-F])\\1([0-9A-F])\\2([0-9A-F])\\3', '#$1$2$3', 'ig'], // webcolor-shorthand
			
			["\\.“\\.", ".“"] // Wenn ein Zitat mit einem Punkt endet, steht nach dem abschließenden Anführungszeichen kein Punkt
		],
		hook : function (ad) { //obsolete
				if (ns % 2 === 1 || $.inArray(ns, [2, 4]) !== -1)
					ad = ad.replace(/'' <small>&(#160|nbsp);(\d)/g, "'' <small>\u00A0$2"); // webcolor shorthand uppercase
				return ad
					.replace(/<div style=["']clear:both;?["']><\/div>/g, '{{Absatz}}') // HTML vermeiden (nach Standardformat)
					.replace(/#[0-9A-F]{3}[\s;]/ig, function(m) { return m.toUpperCase(); } );
		},
		template : [{
				detect : {
					title : "[Pp]olytonisch"
				},
				rename : {
					title : [true, "lang|grc"]
				}
			}
		],
		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\nFrage mich!');
config = (config)? $.extend(config, cfg) : cfg;
})(jQuery, mediaWiki.libs.WikiSyntaxTextMod.config);