Benutzer:Prüm/monobook.js
aus Wikipedia, der freien Enzyklopädie
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
(function (mw, $) {
"use strict";
//Skriptsammlung Fliegelflagel, [[Benutzer:Schnark/js/fliegelflagel]]
mw.hook('userjs.schnark-fliegelflagel.userdefine').fire({
version: 1.0,
profile: undefined,
additional: {
},
config: {
}
});
//[[Benutzer:Schnark/js/fliegelflagel.js/define.js]]
mw.loader.load('https://de.wikipedia.org/w/index.php?title=Benutzer:Schnark/js/fliegelflagel.js/define.js&action=raw&ctype=text/javascript');
mw.loader.load('https://de.wikipedia.org/w/index.php?title=Benutzer:Schnark/js/fliegelflagel.js/load.js&action=raw&ctype=text/javascript');
//Fliegelflagel Ende
/**
* showRedundantLinks adapted from dbenzhuser (de:Benutzer:Dbenzhuser)
*
* Alle Wikilinks innerhalb des Artikels werden gesammelt.
* Anschließend werden sie in der Liste angezeigt und mehrfache Links im
* Artikeltext markiert.
*/
mw.loader.using(['jquery.color', 'jquery.hoverIntent'], function(init) {
mw.libs.srl = {};
mw.libs.srl.sort = function(event, mode, ext) {
var list = $(this).find('ul').first();
var container = list.parent();
if (!list) return;
var listitems = list.children('li');
listitems.detach();
switch (mode) {
case 'alnum':
listitems.sort(function(a, b) {
var atext = $(a).text(), btext = $(b).text();
if (ext) {
if (atext && atext.startsWith('www.')) atext = atext.substring(4);
if (btext && btext.startsWith('www.')) btext = btext.substring(4);
}
return atext > btext;
});
break;
case 'count':
listitems.sort(function(a, b) { return $(a).children('a').length < $(b).children('a').length; });
break;
case 'status':
listitems.sort(function(a, b) {
if ($(a).children().first().hasClass('new')) return -1;
if ($(b).children().first().hasClass('new')) return +1;
if ($(a).children().first().hasClass('mw-disambig')) return -1;
if ($(b).children().first().hasClass('mw-disambig')) return +1;
if ($(a).children().first().hasClass('mw-redirect')) return -1;
if ($(b).children().first().hasClass('mw-redirect')) return +1;
return 0;
});
break;
}
list.append(listitems);
list.appendTo(container);
};
mw.libs.srl.goto = function(text) {
var container = $('#lcontainer');
var list = container.find('ul').first();
list.scrollTop(0);
text = $.trim(text).substring(0, 1).toUpperCase() + text.substring(1);
var lis = list.children().find('[title^="' + text + '"]');
list.scrollTop(lis.first().position().top);
};
mw.libs.srl.checkHidden = function(element, container) {
var top = container.offset().top;
var left = container.offset().left;
var bottom = container.offset().top + container.height();
var right = container.offset().left + container.width();
var centery = $(element).offset().top + $(element).height() / 2;
var centerx = $(element).offset().left + $(element).width() / 2;
if (centery > top && centery < bottom && centerx > left && centerx < right) {
var halfwidth = $('#mw-content-text').width() / 2;
if (container.queue().length === 0) {
if (container.css('right') == '0px') {
container.animate({'right': halfwidth + 'px'}, 500).delay(3000).animate({'right': '0px'}, 500);
}
else {
container.animate({'right': '0px'}, 500);
}
}
}
};
mw.libs.srl.showRedundantLinks = function() {
var container = $('#lcontainer');
container.empty();
container.show();
// Links sammeln.
var links = $('#mw-content-text a:visible[title]:not(:has(img))');
// Irrelevante Links ausfiltern.
links = links.filter(function () {
return !($(this).parent().hasClass('mw-editsection') || $(this).parent().hasClass('magnify') || $(this).parent().hasClass('mw-cite-backlink'));
});
/*var regexp1 = /^\/(?:wiki\/(.+)|(?:w\/index\.php\?title\=([^&]+)\&action\=edit\&redlink\=1))$/;
var regexp2 = /^(?:Diskussion|Datei|Medium|Kategorie|Benutzer(?:in)?|Portal|Wikipedia|Hilfe|Spezial|Vorlage)(?:_Diskussion)?\:.+$/;
links = links.filter(function () {
var pagename = regexp1.exec($(this).attr('href'));
return (pagename !== null &&
((pagename[1] && pagename[1].search(regexp2) !== 0) ||
(pagename[2] && pagename[2].search(regexp2) !== 0)));
});*/
var ul = $('<ul id="srllist" style="margin:0; position:relative; max-height: 500px; max-width: 50em; padding:0; overflow:auto;"></ul>');
if (links.length) {
// Navilinks generieren
links.each(function(index, element) {
var a = $(this).clone();
var li = null;
var title = a.attr('title');
var j = 0;
var olda = ul.find('a[title="' + title.replace(/["]/g, '\\"') + '"]');
if (olda.length) {
li = olda.first().parent();
j = li.children('a').length;
}
if (j === 0) {
li = $('<li style="display:block; padding:1px; margin: 0;"></li>');
a.text(title);
if (a.hasClass('new')) {
a.text(title.substring(0, title.lastIndexOf(' (Seite nicht vorhanden)')));
li.css('backgroundColor', '#CCCCCC');
}
else if (a.hasClass('mw-disambig')) li.css('backgroundColor', '#FF9999');
else if (a.hasClass('mw-redirect')) li.css('backgroundColor', '#FFCCFF');
li.append(a);
ul.append(li);
j = 1;
}
var scr = $('<a href="javascript:scrollTo(0,' + $(this).offset().top + ')">(' + j + ')</a>');
scr.hoverIntent(function() {
mw.libs.srl.checkHidden($(element), container);
$(element).css({'fontSize':'+=8px', 'backgroundColor': '#ffaa00'});
}, function() {
$(element).delay().animate({'fontSize':'-=8px', 'backgroundColor': 'transparent'}, 500);
}, 500);
li.append([' ', scr]);
});
}
// GUI anzeigen
var articlecount = ul.children().length;
var status = (articlecount > 0 ?
'<i>' + (ul.children().find('a').length - articlecount) + ' Links auf ' + articlecount + ' Artikel. </i>' :
'<i>Keine Links im Artikel! </i>'
);
var btn = '<img src="//upload.wikimedia.org/wikipedia/foundation/2/20/CloseWindow19x19.png" ' +
'onclick="javascript:$(\'#lcontainer\').toggle();" style="position:absolute; right:3px; top:3px;" />';
var options = '<button style="font-size:.8em; border-width:2px;" onclick="javascript:$(\'#lcontainer\').trigger(\'sort\', [\'alnum\']);">alphanumerisch</button>' +
'<button style="font-size:.8em; border-width:2px;" onclick="javascript:$(\'#lcontainer\').trigger(\'sort\', [\'count\']);">nach Vorkommen</button>' +
'<button style="font-size:.8em; border-width:2px; margin-right:25px;" onclick="javascript:$(\'#lcontainer\').trigger(\'sort\', [\'status\']);">nach Status</button>' +
'<form action="javascript:mw.libs.srl.goto($(\'#srlGoto\').val());">Gehe zu: <input id="srlGoto" type="text" /></form>';
container.html(status + (articlecount > 0 ? options : '') + btn);
container.append(ul);
container.on('sort', mw.libs.srl.sort);
};
mw.libs.srl.showExternalLinks = function() {
var container = $('#lcontainer');
container.empty();
container.show();
// Links sammeln.
var elinks = $('#mw-content-text a.external');
var ul = $('<ul id="elist" style="margin:0; position:relative; max-height: 500px; max-width: 50em; padding:0; overflow:auto;"></ul>');
var regex = /^(http\:|https\:|)\/\/([^#]+)(?:\#.*)?$/;
if (elinks.length) {
// Navilinks generieren
var j = 1;
elinks.each(function(index, element) {
var a = $(this).clone();
var li;
var href = a.attr('href');
if (index > 0 && href === $(elinks[index-1]).attr('href')) {
li = ul.children().last();
j++;
}
else {
var ltext = '';
var url = regex.exec(href);
if (!url) return;
var color = 'orange';
if (url.length < 3) {
color = 'lightgreen';
ltext = url[1];
}
else {
if (url[1] === 'https:' || url[1] === '') color = 'lightgreen';
ltext = url[2];
}
a.text(ltext);
li = $('<li style="display:block; padding:1px; margin: 0; background-color:' + color + ';"></li>');
li.append(a);
ul.append(li);
j = 1;
}
var scr = $('<a href="javascript:scrollTo(0,' + $(this).offset().top + ')">(' + j + ')</a>');
scr.hoverIntent(function() {
mw.libs.srl.checkHidden($(element), container);
$(element).css({'fontSize':'+=8px', 'backgroundColor': '#ffaa00'});
}, function() {
$(element).delay().animate({'fontSize':'-=8px', 'backgroundColor': 'transparent'}, 500);
}, 500);
li.append(scr);
});
}
// GUI anzeigen
var articlecount = ul.children().length;
var status = (articlecount > 0 ?
'<i>' + (ul.children(0).find('a').length - articlecount) + ' Links auf ' + articlecount + ' Artikel. </i>' :
'<i>Keine Links im Artikel! </i>'
);
var btn = '<img src="//upload.wikimedia.org/wikipedia/foundation/2/20/CloseWindow19x19.png" onclick="javascript:$(\'#lcontainer\').toggle();" style="position:absolute; right:3px; top:3px;" />';
var options = '<button style="font-size:.8em; border-width:2px;" onclick="javascript:$(\'#lcontainer\').trigger(\'sort\', [\'alnum\', true]);">alphanumerisch</button>' +
'<button style="font-size:.8em; border-width:2px; margin-right:25px;" onclick="javascript:$(\'#lcontainer\').trigger(\'sort\', [\'count\', true]);">nach Vorkommen</button>' +
'<form action="javascript:mw.libs.srl.goto($(\'#srlGoto\').val());">Gehe zu: <input id="srlGoto" type="text" /></form>';
container.html(status + (articlecount ? options : '') + btn);
container.append(ul);
container.on('sort', mw.libs.srl.sort);
};
$('<li id="ca-srl"><a onclick="javascript:mw.libs.srl.showRedundantLinks()">Links</a></li>').insertAfter('#ca-history');
$('<li id="ca-elinks"><a onclick="javascript:mw.libs.srl.showExternalLinks()">ELinks</a></li>').insertAfter('#ca-srl');
$('<div id="lcontainer" class="toccolours" style="display:none;position:fixed;right:0;font-size:0.8em;margin:-3px 0 0 -1px;padding:2px;z-index:2;"></div>').prependTo('#mw-content-text');
});
} (window.mediaWiki, window.jQuery));