维基百科:AutoEd/wikilinks.js
外观
//
//turns first character to lowercase; required forautoEdWikilinks()
function TurnFirstToLower(input) {
if (input != "")
{
var temp = input.substr(0, 1);
return temp.toLowerCase() + input.substr(1, input.length);
}
else
return "";
}
function autoEdWikilinks(str) { //MAIN FUNCTION describes list of fixes
var page_name = wgPageName.replace('_',' '); //Variable needed for latter function
//Fix links which have no target
str = str.replace(new RegExp('\\[\\[\\|', 'gi'), '\[\[');
//Shortens interwikis
str = str.replace(new RegExp('\\[\\[WIKTIONARY\:', 'gi'), '\[\[wikt\:');
str = str.replace(new RegExp('\\[\\[WIKINEWS\:', 'gi'), '\[\[n\:');
str = str.replace(new RegExp('\\[\\[WIKIBOOKS\:', 'gi'), '\[\[b\:');
str = str.replace(new RegExp('\\[\\[WIKIQUOTE\:', 'gi'), '\[\[q\:');
str = str.replace(new RegExp('\\[\\[WIKISOURCE\:', 'gi'), '\[\[s\:');
str = str.replace(new RegExp('\\[\\[WIKISPECIES\:', 'gi'), '\[\[species\:');
str = str.replace(new RegExp('\\[\\[WIKIVERSITY\:', 'gi'), '\[\[v\:');
str = str.replace(new RegExp('\\[\\[WIKIMEDIA\:|\\[\\[FOUNDATION\:', 'gi'), '\[\[wmf\:');
str = str.replace(new RegExp('\\[\\[METAWIKIPEDIA\:', 'gi'), '\[\[m\:');
//Removes links to current article
str = str.replace(new RegExp('\\[\\[(' + page_name + ')\\]\\]', 'gi'), '$1');
str = str.replace(new RegExp('\\[\\[(?:' + page_name + '|' + wgPageName + ')\\|([^\\]\\|]*)\\]\\]', 'gi'), '$1');
//Simplifies wikilink syntax
var m = str.match(/\[\[([^[]*?)\|([^[]*?)\]\]/g);
if (m)
{
for (var i = 0; i < m.length; i++)
{
var n_arr = m[i].toString().match(/\[\[([^[]*?)\|([^[]*?)\]\]/);
var n = n_arr[0];
var a = n_arr[1];
var b = n_arr[2];
if (b.indexOf(a) == 0 || b.indexOf(TurnFirstToLower(a)) == 0)
{
var k = n.replace(/\[\[([^\]\|]*?)\|(\1)([\w]*?)\]\]/i, "[[$2]]$3");
str = str.replace(n, k);
}
}
}
str = str.replace(/\[\[([^\]\[\|]+)\|([^\]\[\|]+)\]\]([a-z]+)/gi, "[[$1|$2$3]]");
return str;
}
//