importScript('User:Evad37/duplinks-alt.js');
$( function($) {
if(wgNamespaceNumber != 0) {
return;
}
var portletlink = mw.util.addPortletLink('p-tb', '#', 'Highlight duplicate links', 'ca-findduplicatelinks');
$(portletlink).click( function(e) {
e.preventDefault();
// create a separate div surrounding the lead
var content = mw.util.$content.children()[2];
$(content).prepend(document.createElement('div'));
var lead = $(content).children()[0];
$(lead).attr('id', 'lead');
$(content).children().each( function() {
if(this.nodeName.toLowerCase() == 'h2') {
return false;
}
if($(this).attr('id') != 'lead') {
$(lead).append(this);
}
return true;
});
// detect duplicate links
mw.util.addCSS(".duplicate-link { border: 1px solid red; }");
var finddups = function() {
var href = $(this).attr('href');
if(href != undefined && href.indexOf('#') != 0) {
if(seen[href]) {
$(this).addClass("duplicate-link");
}
else {
seen[href] = true;
}
}
};
var seen = {};
mw.util.$content.find('a').not('#lead *, .infobox *, .navbox *').each(finddups);
var seen = {};
mw.util.$content.find('#lead a').not('.infobox *, .navbox *').each(finddups);
});
});
|