MediaWiki:Gadget-HighDupLinks.js: Difference between revisions
Jump to navigation
Jump to search
Want an adless experience? Log in or Create an account.
(Created page) |
m (update deprecated wg variables to mw.config) |
||
Line 1: | Line 1: | ||
$( function($) { | $( function($) { | ||
if((wgNamespaceNumber != 0) && (wgNamespaceNumber != 2)) { | if((mw.config.get('wgNamespaceNumber') != 0) && (mw.config.get('wgNamespaceNumber') != 2)) { | ||
// only check links in mainspace and userspace (for userspace drafts) | // only check links in mainspace and userspace (for userspace drafts) | ||
return; | return; |
Latest revision as of 04:37, March 19, 2017
$( function($) { if((mw.config.get('wgNamespaceNumber') != 0) && (mw.config.get('wgNamespaceNumber') != 2)) { // only check links in mainspace and userspace (for userspace drafts) 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 // first get the element immediately surrounding the article text. Unfortunately, MW doesn't seem to provide a non-fragile way for that. var content = ".mw-content-ltr"; $(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; } } return true; }; // array to keep track of whether we've seen a link before var seen = []; mw.util.$content.find('p a').not('#lead *, .infobox *, .navbox *').each(finddups); var seen = []; mw.util.$content.find('#lead p a').not('.infobox *, .navbox *').each(finddups); }); });