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
//Dokumentation unter [[Benutzer:Schnark/js/fliegelflagel]]
/*global mediaWiki*/
(function (mw) {
"use strict";
var L = 1, B = 2, E = 4,
	//L ("Leser"): Funktionen, die beim reinen Lesen nützlich sind
	//B ("Bearbeiter"): Funktionen, die beim oder fürs Bearbeiten nützlich sind
	//E ("Experte"): Funktionen für Programmierer, Spielkinder und sehr fortgeschrittene Bearbeiter
	//nicht standardmäßig aktiviert werden Skripts, die nicht stabil sind (außer eventuell Betaversionen
	//für Experten) oder aus sonstigen Gründen nur bewusst aktiviert werden sollten
	url = document.currentScript && document.currentScript.src,
	base = mw.config.get('wgServer').indexOf('localhost') > -1 ?
		mw.config.get('wgServer') + mw.config.get('wgScript') :
		'https://de.wikipedia.org/w/index.php';

mw.hook('userjs.schnark-fliegelflagel.define').fire({
//virtual indent
base: base,
defineUrl: url,
modules: {
//virtual indent
//stabil
artikelStatistik: {
	scripts: '[[Benutzer:Schnark/js/artikel-statistik.js]]',
	only: function (ns, action) {
		return ns !== -1 && action !== 'edit';
	},
	after: function (as) {
		if (mw.user.options.get('userjs-schnark-artikelStatistik-always', '') === '1') {
			as.onAllPages = true;
		}
	},
	defaultEnabled: L + B
},
bandersnatch: {
	scripts: [
		'[[Benutzer:Schnark/js/diff.js/core.js]]',
		'[[Benutzer:Schnark/js/search++.js]]',
		'[[Benutzer:Schnark/js/bandersnatch.js]]'
	],
	only: function (ns) {
		return ns === -1 && mw.config.get('wgTitle') === 'Bandersnatch';
	},
	defaultEnabled: E
},
bklCheck: {
	scripts: '[[Benutzer:Schnark/js/bkl-check.js]]'
},
diff: {
	scripts: ['[[Benutzer:Schnark/js/diff.js/core.js]]', '[[Benutzer:Schnark/js/diff.js]]'],
	only: function (ns, action) {
		return action === 'edit' ||
			action === 've' ||
			action === 'diff' ||
			mw.config.get('wgCanonicalSpecialPageName') === 'ComparePages';
	},
	defaultEnabled: L + B + E
},
extratabs: {
	scripts: '[[Benutzer:Schnark/js/extratabs.js]]',
	after: function (et) {
		var lang = mw.user.options.get('userjs-schnark-extratabs-lang', '');
		if (lang) {
			et.setLang(lang);
		}
	},
	defaultEnabled: B
},
fliegelflagelManage: {
	scripts: [
		'[[Benutzer:Schnark/js/fliegelflagel.js/config.js]]',
		'[[Benutzer:Schnark/js/fliegelflagel.js/manage.js]]'
	],
	only: function (ns) {
		return ns === -1 && ['Fliegelflagel', 'FliegelflagelGlobal'].indexOf(mw.config.get('wgTitle')) > -1;
	},
	defaultEnabled: true
},
gestures: {
	scripts: ['[[Benutzer:Schnark/js/gestures.js/jquery.js]]', '[[Benutzer:Schnark/js/gestures.js]]'],
	defaultEnabled: E
},
imagepopups: {
	scripts: '[[Benutzer:Schnark/js/imagepopups.js]]',
	after: function (ip) {
		if (mw.user.options.get('userjs-schnark-imagepopups-use-tmh', '') === '1') {
			ip.replaceTMHPopup = false;
		}
	},
	defaultEnabled: L
},
journal: {
	scripts: '[[Benutzer:Schnark/js/journal.js]]',
	after: function (j) {
		var count = Number(mw.user.options.get('userjs-schnark-journal-count', '0'));
		if (!isNaN(count) && count > 0 && count === Math.floor(count)) {
			j.count = count;
		}
	}
},
letzteredit: {
	scripts: '[[Benutzer:Schnark/js/letzteredit.js]]',
	only: function (ns) {
		return ns === 2 || ns === 3;
	},
	defaultEnabled: B + E
},
linkUnlinked: {
	scripts: '[[Benutzer:Schnark/js/linkUnlinked.js]]',
	defaultEnabled: B + E
},
localFile: {
	scripts: '[[Benutzer:Schnark/js/localFile.js]]',
	only: function (ns, action) {
		return action === 'edit';
	},
	type: 'hybrid',
	readyWait: true,
	defaultEnabled: B + E
},
mostEdited: {
	scripts: '[[Benutzer:Schnark/js/mostEdited.js]]',
	defaultEnabled: L
},
notizen: {
	scripts: '[[Benutzer:Schnark/js/notizen.js]]',
	only: function (ns, action) {
		return action === 'view' || action === 'diff';
	},
	defaultEnabled: L + B
},
personendaten: {
	scripts: ['[[Benutzer:Schnark/js/templateEditor.js]]', '[[Benutzer:Schnark/js/personendaten.js]]'],
	only: function (ns, action) {
		return (action === 'view' && ns === 0) || action === 've';
	},
	wiki: ['dewiki'],
	defaultEnabled: B
},
normdaten: {
	scripts: [
		'[[Benutzer:Schnark/js/templateEditor.js]]',
		'[[Benutzer:Schnark/js/personendaten.js/normdaten.js]]'
	],
	wiki: ['dewiki'],
	only: function (ns, action) {
		return (action === 'view' && ns === 0) || action === 've';
	},
	after: function (n) {
		var disExt = mw.user.options.get('userjs-schnark-normdaten-disext', ''),
			alSEd = mw.user.options.get('userjs-schnark-normdaten-alsed', '');
		if (alSEd && alSEd.charAt(0) !== '#') {
			alSEd = true;
		}
		if (disExt) {
			n.disableExternal = true;
		}
		if (alSEd) {
			n.alwaysShowEdit = alSEd;
		}
	}
},
popuprefs: {
	scripts: '[[Benutzer:Schnark/js/popuprefs.js]]',
	defaultEnabled: L + B
},
searchPP: {
	scripts: '[[Benutzer:Schnark/js/search++.js]]',
	only: function (ns) {
		return (ns === -1 && mw.config.get('wgTitle') === 'Search++');
	},
	defaultEnabled: L + B + E
},
sectionLinks: {
	scripts: '[[Benutzer:Schnark/js/section-links.js]]',
	only: function (ns, action) {
		return action === 'view' || action === 'diff';
	},
	defaultEnabled: L + B
},
smallWorld: {
	scripts: '[[Benutzer:Schnark/js/small-world.js]]',
	only: function (ns, action) {
		return ns === -1 && action === 'small-world';
	},
	defaultEnabled: L + E
},
specialinterwiki: {
	scripts: '[[Benutzer:Schnark/js/specialinterwiki.js]]',
	only: function (ns) {
		return ns === -1 || ns === 8;
	},
	before: function () {
		var iw = mw.user.options.get('userjs-schnark-specialinterwiki-iw');
		if (!iw && mw.config.get('wgDBname') !== 'dewiki') {
			mw.user.options.set('userjs-schnark-specialinterwiki-iw', 'de');
		}
	},
	defaultEnabled: L + B + E
},
topcontrib: {
	scripts: '[[Benutzer:Schnark/js/topcontrib.js]]',
	only: function () {
		return mw.config.get('wgCanonicalSpecialPageName') === 'Contributions';
	},
	defaultEnabled: B
},
veAutocorrect: {
	scripts: '[[Benutzer:Schnark/js/veAutocorrect.js]]',
	type: 've',
	readyWait: true,
	defaultEnabled: B
},
veCode: {
	scripts: '[[Benutzer:Schnark/js/veCode.js]]',
	only: function () {
		return mw.config.get('wgPageContentModel') !== 'wikitext';
	}
},
veCustomize: {
	scripts: '[[Benutzer:Schnark/js/veCustomize.js]]',
	type: 've',
	readyWait: true
},
veHint: {
	scripts: '[[Benutzer:Schnark/js/veHint.js]]',
	wiki: ['dewiki'],
	type: 've',
	readyWait: true,
	defaultEnabled: B
},
veSuggestions: {
	scripts: '[[Benutzer:Schnark/js/veSuggestions.js]]',
	only: function (ns, action) {
		return action === 've';
	},
	defaultEnabled: B
},
watchlistPP: {
	scripts: '[[Benutzer:Schnark/js/watchlist++.js]]',
	only: function (ns) {
		return (ns === -1 && mw.config.get('wgTitle') === 'Watchlist++') ||
			mw.config.get('wgCanonicalSpecialPageName') === 'Watchlist';
	},
	defaultEnabled: B + E
},
wikiblame: {
	scripts: '[[Benutzer:Schnark/js/wikiblame.js]]',
	only: function (ns) {
		return ns !== -1;
	},
	defaultEnabled: L + B + E
},
wochentag: {
	scripts: '[[Benutzer:Schnark/js/wochentag.js]]',
	only: function (ns, action) {
		return ns !== 0 && action === 'view';
	},
	defaultEnabled: L + B
},
//deprecated
edithelper: {
	scripts: '[[Benutzer:Schnark/js/edithelper.js]]',
	only: function (ns, action) {
		return action === 'edit';
	},
	after: function (e) {
		switch (mw.user.options.get('userjs-schnark-edithelper-features', '')) {
		case 's': e.compose.enabled = false; break;
		case 'c': e.suggest.enabled = false; break;
		}
	}
},
kackbalken: {
	scripts: '[[Benutzer:Schnark/js/kackbalken.js]]'
},
screenshot: {
	scripts: '[[Benutzer:Schnark/js/screenshot.js]]'
},
stub: {
	scripts: '[[Benutzer:Schnark/js/stub.js]]',
	only: function (ns, action) {
		return action === 'edit';
	}
},
syntaxhighlight: {
	scripts: '[[Benutzer:Schnark/js/syntaxhighlight.js]]',
	only: function (ns, action) {
		return action === 'edit' || action === 've' || mw.config.get('wgCanonicalSpecialPageName') === 'Upload';
	},
	before: function () {
		if (mw.user.options.get('userjs-schnark-syntaxhighlight-only-wikitext')) {
			mw.user.options.set('schnark-syntaxhighlight-exclude', {js: true, css: true, lua: true});
		}
	}
},
unicodeAnalyze: {
	scripts: '[[Benutzer:Schnark/js/unicode-analyze.js]]'
},
virtuelleEinzelnachweise: {
	scripts: '[[Benutzer:Schnark/js/virtuelleEinzelnachweise.js]]',
	only: function (ns, action) {
		return action === 'edit';
	}
},
vorleser: {
	scripts: '[[Benutzer:Schnark/js/vorleser.js]]'
},
wikieditor: {
	scripts: [
		'[[Benutzer:Schnark/js/wikieditor.js/basic.js]]',
		mw.config.get('wgDBname') === 'dewiki' ?
			'[[Benutzer:Schnark/js/wikieditor.js/de.js]]' :
			'[[Benutzer:Schnark/js/wikieditor.js/global.js]]'
	],
	only: function (ns, action) {
		return action === 'edit';
	},
	before: function () {
		var config = mw.user.options.get('userjs-schnark-wikieditor-config', '');
		config = config.replace(/^\[+|\]+$/g, '');
		if (config) {
			if (!(/^(?:https?:)?\/\//).test(config)) {
				config = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' +
					encodeURIComponent(config.replace(/[\s_]+/g, '_'))
						//siehe mw.util.wikiUrlencode
						.replace(/'/g, '%27')
						.replace(/%3B/g, ';')
						.replace(/%40/g, '@')
						.replace(/%24/g, '$')
						.replace(/%2C/g, ',')
						.replace(/%2F/g, '/')
						.replace(/%3A/g, ':') +
					'&action=raw&ctype=text/javascript';
			}
		}
		return config;
	},
	after: function () {
		mw.libs.wikieditor.init();
	}
},
//fremde
idResolver: {
	scripts: '[[:en:User:PerfektesChaos/js/idResolver/r.js]]',
	only: function (ns, action) {
		return action === 'view' || action === 'edit';
	}
}
//virtual outdent
},
//FIXME nach -config
removableOptions: [
	'schnark-fliegelflagel-readMessages',
	'schnark-fliegelflagel-globalConfig',
	'schnark-watchlisttags-owncss',
	'schnark-fliegelflagel-veSummary-enabled'
	//TODO + ehemalige fremde?
]
//virtual outdent
});
})(mediaWiki);