User:Danski454/code-link.js
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
(function ($, mw){
mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Danski454/code-link.css&action=raw&ctype=text/css', 'text/css' );
function doWikilinks(){
$(".c, .c1, .cm").each(function(){
var text = $(this).html();
var match;
var re = /\[\[(([^[\]|<>{}]+)(?:\|.*?)?)\]\]/;
while(text.match(re)){
match = text.match(re);
var url = mw.config.get("wgArticlePath").replace("$1",
encodeURIComponent(match[2].replace(""", '"').replace("'", "'")
.replace("/", "/").replace("&", "&").replace(" ", "_")));
text = text.replace(match[0], '[[<a class="code-link" href="' + url + '">' + match[1] + '</a>]]');
}
$(this).html(text);
});
}
function doExternalLinks(){
$(".c, .c1, .cm").each(function(){
var text = $(this).html();
var match;
var re = /( |^)(\w+:\/\/[^ <>]+)/;
while(text.match(re)){
match = text.match(re);
var url = match[2].replace(""", '%22').replace("'", "'").replace("/", "/").replace("&", "&").replace("<", "<").replace(">", ">");
text = text.replace(match[0], match[1] + '<a class="code-link" href="' + url + '">' + match[2] + '</a>');
}
$(this).html(text);
});
}
$(document).ready(function(){
if ( mw.config.get("wgIsArticle") && ["javascript", "css", "Scribunto"].indexOf(mw.config.get("wgPageContentModel")) !== -1 ){
doWikilinks();
doExternalLinks();
}
});
})(jQuery, mediaWiki);