User:Lenore/autolink.js: Difference between revisions

Content deleted Content added
PeterSymonds (talk | contribs)
BETA version!
Line 24:
 
if (document.getElementById('bodyContent'))
targetdivautolinkBody = document.getElementById('bodyContent');
// MonoBook-like skins
 
Line 30:
 
if (document.getElementById('mw_content'))
targetdivautolinkBody = document.getElementById('mw_content');
// Modern skin
 
else targetdivautolinkBody = document.getElementById('content');
// Older skins
 
Line 45:
*/___location.href.indexOf('Speciale:OsservatiSpeciali') != -1 || /*
*/___location.href.indexOf('Special:Watchlist') != -1 || /*
*/___location.href.indexOf('Speciale:ModificheCorrelate') != -1 || /*
*/___location.href.indexOf('Special:RecentChangesLinked') != -1 || /*
*/___location.href.indexOf('Speciale:Contributi') != -1 || /*
*/___location.href.indexOf('Special:Contributions') != -1;
Line 51 ⟶ 53:
autolinkDiff = ___location.href.indexOf('&diff=') != -1;
// It says if I'm in a diff page
 
autolinkTargetDiv = new Array();
 
if (autolinkDiff) {
 
autolinkTargetDiv = autolinkBody.getElementsByClassName('diff');
 
} else {
 
if (!autolinkCrono)
 
autolinkTargetDiv = autolinkBody.getElementsByTagName('pre','tt','code','source');
 
else
 
autolinkTargetDiv[0] = autolinkBody;
 
}
 
/* ------------------------------------------ Regex --------------------------------------------- */
Line 56 ⟶ 76:
if (autolinkCrono) {
 
var autolinkColor = ''; // linkLink color in history pages
 
autolinkRegexURLinWcodeWoLabel = /()\[{1}((?:https?|ftps?):\/\/[^\s]+?)\s*\]{1}()/g;
Line 66 ⟶ 86:
} else {
 
var autolinkColor = 'inherit'; // linkLink color in other pages
 
autolinkRegexURLinWcodeWoLabel = /(\[{1})((?:https?|ftps?):\/\/[^\s]+?)(\s*\]{1})/g;
Line 76 ⟶ 96:
}
 
autolinkRegexURL = /([^>"'\[]|\s["'^\=]")((?:https?|ftps?):\/\/[^\s\]\)\}<>'"]+)/g;
// External links (no wikicode)
 
autolinkRegexWlink = /\[{2}([^\[\]<>\n]*?)(\<span class\="diffchange"\>|)([^\[\]<>\n]*?)(\<\/span\>|)([^\[\]<>\n]*?)(|\|[^\n]*?)\]{2}/g;
// Wikilinks
 
autolinkRegexTemplate = /\{{2}([Ss][Uu][Bb][Ss][Tt]\:|[Mm][Ss][Gg]\:|[Mm][Ss][Gg][Nn][Ww]\:|)([^\{\}\:\|<>\n]*+?)(\s*(?:(?:\:|\|)|\}{2}))/g;
// Templates
 
autolinkRegexInternalURL = /([^\=])('|")((?:\/?w\/index\.php\?|\/?wiki\/)[^\s]+?)\2/g;
// External links (no wikicode, under wgServer)
 
autolinkRegexImportScript = /([Ii]mport[Ss]cript\<span class\="br0"\>\(\<\/span\>\<span class\="st0"\>)('|")([^\|<>\n]+?)(\2\<\/span\>\<span class\="br0"\>\)\<\/span\>)/g;
// ImportScript
 
/* ---------------------------------------------------------------------------------------------- */
 
for (i=0; i<autolinkTargetDiv.length; i++) {
content = targetdiv.innerHTML;
 
autolinkContent = autolinkTargetDiv[i].innerHTML;
 
if (autolinkParseLink == true || !autolinkDiff) {
// Qui vanno tutte le sostituzioni fatte anche dal wikEd nelle diff
 
contentautolinkContent = contentautolinkContent.replace(autolinkRegexURLinWcodeWoLabel,
'$1<a class="autolink" style="color:' + autolinkColor + '" href="$2">$2</a>$3');
// Make external links in wikicode without label into links
 
contentautolinkContent = contentautolinkContent.replace(autolinkRegexURLinWcodeWithLabel,
'$1<a class="autolink" style="color:' + autolinkColor + '" href="$2">$3$4</a>$5');
// Make external links in wikicode with label into links
 
contentautolinkContent = contentautolinkContent.replace(autolinkRegexURL,
'$1<a class="autolink" style="color:' + autolinkColor + '" href="$2">$2</a>');
// Parse inactive external links (no wikicode)
 
autolinkContent = autolinkContent.replace(autolinkRegexWlink,
'[[<a class="autolink" style="color:' + autolinkColor + '" href="/wiki/$1$3$5">$1$2$3$4$5</a>$6]]');
// Make wikilink code into links
 
autolinkContent = autolinkContent.replace(autolinkRegexTemplate,
'{{<a class="autolink" style="color:' + autolinkColor + '" href="/wiki/Help:$1">$1</a><a class="autolink" style="color:' + autolinkColor + '" href="/wiki/Template:$2">$2</a>$3');
// Make template code into links
 
}
 
contentautolinkContent = contentautolinkContent.replace(autolinkRegexWlinkautolinkRegexInternalURL,
'[[$1$2<a class="autolink" style="color:' + autolinkColor + '" href="/wiki/' + wgServer + '$13">$13</a>$2]]');
// MakeParse wikilinkinactive code intoexternal links (no wikicode, under wgServer)
 
contentautolinkContent = contentautolinkContent.replace(autolinkRegexTemplateautolinkRegexImportScript,
'{{<a class="autolink" style="color:' + autolinkColor + '" href="/wiki/Help:$1">$1</a>2<a class="autolink" style="color:' + autolinkColor + '" href="/wiki/Template:$23">$23</a>$34');
// MakeParse template code into linksImportScript
 
targetdivautolinkTargetDiv[i].innerHTML = contentautolinkContent; // Write it back
 
}
 
});