//<pre><nowiki>
//A helper function to add a button to one of the toolbars in the interface.
//An improved(I hope) version of [[Wikipedia:WikiProject User scripts/Scripts/Add LI link|addlilink]].
//[[User:JesseW/sig|JesseW, the juggling janitor]] 05:33, 8 November *2005 (UTC)
function addLink(where, url, name, id, title, key, after){
//* where is the id of the toolbar where the button should be added;
// i.e. one of "p-cactions", "p-personal", "p-navigation", or "p-tb".
//
//* url is the URL which will be called when the button is clicked.
// javascript: urls can be used to do more complex things.
//
//* name is what will appear as the name of the button.
//
//* id is the id of the button; it's best to define one.
// Use a prefix to make sure its unique. Optional.
//
//* title is the tooltip title that gives a longer description
// of the button; if you define a accesskey, mention it here. Optional.
//
//* key is the char you want for the accesskey. Optional.
//
//* after is the id of the button you want to follow this one. Optional.
//
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
if(after) {
tabs.insertBefore(li,document.getElementById(after));
} else {
tabs.appendChild(li);
}
if(id) {
if(key && title) { ta[id] = [key, title]; }
else if(key) { ta[id] = [key, '']; }
else if(title) { ta[id] = ['', title];}
}
// re-render the title and accesskeys from existing code in wikibits.js
akeytt();
return li;
}
// [[User:Lupin/popups.js]]
popupStructure='original';
popupFixRedirs='true';
popupFixDabs='true';
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
// Install InstaView
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Pilaf/instaview.js&action=raw&ctype=text/javascript');
addOnloadHook(function() {InstaView.conf.user.name = 'SFGiants';});
/* This is to keep track of who is using InstaView: [[User:Pilaf/instaview.js]] */
/************ OLD STUFF *************
// Live Preview customization,
// edit this to your own liking.
// Include Live Preview...
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Pilaf/livepreview.js&action=raw&ctype=text/javascript');
// Now set everything up
function LivePreviewMain()
{
LivePreviewInstall();
wpShowImages = true; // Enable downloading and displaying of images
// You may include here other "extensions"
}
addOnloadHook(LivePreviewMain);
/**** afd helper ****/
document.write('<script type="text/javascript"' +
'src="http://en.wikipedia.org/w/index.php?title=User:Jnothman/afd_helper/' +
'script.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');
/* This is to keep track of who is using this extension: [[User:Jnothman/afd_helper/script.js]] */
// Script from [[User:MarkS/extraeditbuttons.js]]
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:MarkS/extraeditbuttons.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
/*
// A small piece of JS writen by [[User:MatthewFenton]], This is my first piece of JS.
function welcome() {
if (document.title.indexOf('Editing User talk:') == 0) {
document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + '==' + 'Welcome' + '==\n' + '{{subst:User:' + 'MatthewFenton/Welcome}}\n~~' + '~~';
document.editform.wpSummary.value = 'Welcome a user to Wikipedia using JS WW';
}
}
function welcome_tab() {
add_link('javascript:welcome()', 'Welcome');
}
*/
if (document.title.indexOf('Editing User talk:') == 0) {
addOnloadHook(welcome_tab);
}
// install [[User:Cacycle/diff]] text diff code
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/diff.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
// install [[User:Pilaf/Live_Preview]] page preview tool
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Pilaf/livepreview.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
// install [[User:Cacycle/editor]] edit tool
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/editor.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
// Script from [[User:Wmahan/wpspell.js]]
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Wmahan/wpspell.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
//</nowiki></pre>
//'winc' function allows buttons to be added toolbar
winc('User:Omegatron/monobook.js/addlink.js');
function formatunits() {
var txt = document.editform.wpTextbox1;
// Convert degree symbols into ° symbol, ensure preceding space
txt.value = txt.value.replace(/°/g, '°');
txt.value = txt.value.replace(/º/g, '°');
// Celsius spelling errors
txt.value = txt.value.replace(/celsius/gi, 'Celsius');
txt.value = txt.value.replace(/celcius/gi, 'Celsius');
//Fix common naming error (be careful with this one)
txt.value = txt.value.replace(/centigrade/gi, 'Celsius');
//Celsius
//txt.value = txt.value.replace(/\[\[(celsius)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[celsius\|([^\]]{1,30})\]\]/gi, '$1');
//Fahrenheit
//txt.value = txt.value.replace(/\[\[(Fahrenheit)\]\]/gi, '$1');
// txt.value = txt.value.replace(/\[\[Fahrenheit\|([^\]]{1,30})\]\]/gi, '$1');
//Celsius or Fahrenheit
txt.value = txt.value.replace(/°\s([CF])/g, '°$1');
txt.value = txt.value.replace(/°\s?(celsius)/gi, '°C');
txt.value = txt.value.replace(/(\d)\s?(°[CF])/g, '$1 $2');
txt.value = txt.value.replace(/deg[^\(]([CF])/gi, '°$1');
txt.value = txt.value.replace(/deg\s([CF])/gi, '°$1');
txt.value = txt.value.replace(/deg\.?\s?([CF])/gi, '°$1');
txt.value = txt.value.replace(/degrees?\s([CF])(\W)/gi, '°$1$2');
txt.value = txt.value.replace(/(\d)\s?° ([CF])/g, '$1 °$2');
// Convert &sup to superscript
txt.value = txt.value.replace(/²/g, '²');
txt.value = txt.value.replace(/³/g, '³');
// Convert micro symbol to actual micro symbol, make sure it's spaced
txt.value = txt.value.replace(/(\d)\s?(μ|μ|µ)(g|s|m|A|K|mol|cd|rad|sr|Hz|N|J|W|Pa|lm|lx|C|V|Ω|F|Wb|T|H|S|Bq|Gy|Sv|kat|M)(\W)/g, '$1 µ$3$4');
//metre
//txt.value = txt.value.replace(/\[\[(metres?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(meters?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[metres?\|([^\]]{1,30})\]\]/gi, '$1');
//space before 'm' only when lower case
txt.value = txt.value.replace(/(\d)\s?m(\W)/g, '$1 m$2');
txt.value = txt.value.replace(/(\d)\-m(\W)/g, '$1 m$2');
txt.value = txt.value.replace(/(\d)\s?sq\.?\s?m(\W)/gi, '$1 m²$2');
txt.value = txt.value.replace(/(\d)\-?sq\-?m(\W)/gi, '$1 m²$2');
txt.value = txt.value.replace(/m²\.\)/gi, 'm²)');
// millimetre
//txt.value = txt.value.replace(/\[\[(mm)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(millimetres?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(millimeters?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[millimetres?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[millimeters?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?mm(\W)/g, '$1 mm$2');
txt.value = txt.value.replace(/(\d)\-mm(\W)/g, '$1 mm$2');
// centimetre
//txt.value = txt.value.replace(/\[\[(cm)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(centimetres?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(centimeters?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[centimetres?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[centimeters?\|([^\]]{1,30})\]\]/gi, '$1');
// kilometre
//txt.value = txt.value.replace(/\[\[(km)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(kilometres?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(kilometers?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[kilometres?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[kilometers?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?kms?(\W)/gi, '$1 km$2');
txt.value = txt.value.replace(/(\d)\-kms?(\W)/gi, '$1 km$2');
txt.value = txt.value.replace(/(\d) kms?(\W)/gi, '$1 km$2');
//square kilometre
//txt.value = txt.value.replace(/\[\[square kilometres?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?sq\.?\s?kms?/gi, '$1 km²');
txt.value = txt.value.replace(/sq\.?\s?kms?/gi, 'km²');
// kilometre per hour
txt.value = txt.value.replace(/km\/hr(\W)/gi, 'km/h$1');
txt.value = txt.value.replace(/kph(\W)/gi, 'km/h$1');
txt.value = txt.value.replace(/kmph(\W)/gi, 'km/h$1');
txt.value = txt.value.replace(/(\d)\s?kmh/gi, '$1 km/h');
txt.value = txt.value.replace(/km\/h/gi, 'km/h');
txt.value = txt.value.replace(/(\d)\s?km\/h/gi, '$1 km/h');
txt.value = txt.value.replace(/(\d)\-km\/h/gi, '$1 km/h');
txt.value = txt.value.replace(/(\d) km\/h/gi, '$1 km/h');
// cubic centimetre
txt.value = txt.value.replace(/(\d)\s?cm(\W)/gi, '$1 cm$2');
txt.value = txt.value.replace(/(\d)\s?cc(\W)/gi, '$1 cc$2');
txt.value = txt.value.replace(/(\d)\-cc(\W)/gi, '$1 cc$2');
// millilitre
txt.value = txt.value.replace(/(\d)\s?ml(\W)/g, '$1 ml$2');
txt.value = txt.value.replace(/(\d)\-ml(\W)/g, '$1 ml$2');
// second
txt.value = txt.value.replace(/\[\[(s)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(seconds?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[seconds?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\/sec(\W)/gi, '/s$1');
txt.value = txt.value.replace(/\/sec\)/gi, '/s)$1');
txt.value = txt.value.replace(/(\d)\s?ft\/second/gi, '$1 ft/s');
txt.value = txt.value.replace(/(\d)\s?m\/second/gi, '$1 m/s');
txt.value = txt.value.replace(/(\d)\s?km\/sec(\W)/gi, '$1 km/s$2');
txt.value = txt.value.replace(/frames\/s(\W)/gi, 'frame/s$1');
//minute
txt.value = txt.value.replace(/\[\[(min)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(minutes?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[minutes?\|([^\]]{1,30})\]\]/gi, '$1');
// hour
txt.value = txt.value.replace(/\[\[(h)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(hours?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[hours?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\/hr(\W)/gi, '/h$1');
//day
txt.value = txt.value.replace(/\[\[(d)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(days?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[days?\|([^\]]{1,30})\]\]/gi, '$1');
// kilogram
txt.value = txt.value.replace(/(kilogram)me/gi, '$1');
txt.value = txt.value.replace(/(\W)(gram)mes?(\W)/gi, '$1$2$3');
//txt.value = txt.value.replace(/\[\[(grams?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[grams?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(kg)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(kilograms?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[kilograms?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?kg(\W)/gi, '$1 kg$2');
txt.value = txt.value.replace(/(\d)\-kg(\W)/gi, '$1 kg$2');
// newton metre
//txt.value = txt.value.replace(/(\W)N[-.·•\/]m(\W)/gi, '$1N·m$2');
// kilowatt
txt.value = txt.value.replace(/(\d)\s?kW(\W)/gi, '$1 kW$2');
txt.value = txt.value.replace(/(\d)\-kW(\W)/gi, '$1 kW$2');
// Hertz
txt.value = txt.value.replace(/(\d)\s?(G|M|k)?hz/gi, '$1 $2Hz');
txt.value = txt.value.replace(/(\d)\-(G|M|k)?hz/gi, '$1 $2Hz');
txt.value = txt.value.replace(/khz/gi, 'kHz');
// ohm
txt.value = txt.value.replace(/(\d)\s?(Y|Z|E|P|T|G|M|k|K|h|da|d|c|m|µ|μ|µ|n|p|f|a|z|y)?\s?(Ω|ohm|Ohm)s?(\W)/g, '$1 $2Ω$4');
// pound weight
//txt.value = txt.value.replace(/(\d)\s?(\[\[lbs?\]\])/gi, '$1 lb');
//txt.value = txt.value.replace(/\[\[\pound\s\(mass\)\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?lbs?/gi, '$1 lb');
txt.value = txt.value.replace(/(\d\+?)\s?lbs?/gi, '$1 lb');
txt.value = txt.value.replace(/(\d) lbs?/gi, '$1 lb');
txt.value = txt.value.replace(/(\d)\slb.\)/gi, '$1 lb)');
//inch
//txt.value = txt.value.replace(/\[\[(inch)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(inches)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[inch\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[inches\|([^\]]{1,30})\]\]/gi, '$1');
//foot
//txt.value = txt.value.replace(/\[\[foot\s\(unit\sof\slength\)\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?ft(\W)/gi, '$1 ft$2');
txt.value = txt.value.replace(/(\d)\-ft(\W)/gi, '$1 ft$2');
txt.value = txt.value.replace(/(\W)ft\.\)/gi, '$1ft)');
// square foot
txt.value = txt.value.replace(/sq\.?\s?ft/gi, 'sq ft');
// foot and inch
//txt.value = txt.value.replace(/([^;°h]{1,4})(\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]([^NESW])/g, '$1$2 ft $3 in$4');
txt.value = txt.value.replace(/(ength[.]{1,3})(\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]/gi, '$1$2 ft $3 in');
txt.value = txt.value.replace(/(idth[.]{1,3})(\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]/gi, '$1$2 ft $3 in');
txt.value = txt.value.replace(/([\(\|:]\s?\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]([^NESW])/g, '$1 ft $2 in$3');
txt.value = txt.value.replace(/(\d)\s?ft\s?(\d{1,3})\s?in/gi, '$1 ft $2 in');
// yard
txt.value = txt.value.replace(/(\d)\s?yds(\W)/gi, '$1 yd$2');
txt.value = txt.value.replace(/(\d) yds(\W)/gi, '$1 yd$2');
txt.value = txt.value.replace(/sq\.?\s?yds?/gi, 'sq yd');
txt.value = txt.value.replace(/yd\.\)/gi, 'yd)');
// mile and mile per hour
//txt.value = txt.value.replace(/\[\[miles?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(miles?)\]\]/gi, '$1');
txt.value = txt.value.replace(/m\.p\.h\.(\W)/g, 'mph$1');
txt.value = txt.value.replace(/(\W)mph(\W)/gi, '$1mph$2');
txt.value = txt.value.replace(/(\d)\s?mph/gi, '$1 mph');
txt.value = txt.value.replace(/(\d)\-mph/gi, '$1 mph');
// square mile
txt.value = txt.value.replace(/sq\.?\s?mi/gi, 'sq mi');
// foot pound
txt.value = txt.value.replace(/ftlbs?(\W)/gi, 'ft·lbf$1');
txt.value = txt.value.replace(/ft[ -.·•\/]lb(\W)/gi, 'ft·lbf$1');
txt.value = txt.value.replace(/ft[ -.·•\/]lbs/gi, 'ft·lbf');
txt.value = txt.value.replace(/ft[ -.·•\/]lbf/gi, 'ft·lbf');
txt.value = txt.value.replace(/ft[ -.·•\/]lbff/gi, 'ft·lbf');
//the next two suspended until solution is found for wing loading (i.e. pounds per square foot)
//txt.value = txt.value.replace(/lb[fs][ -.•\/]ft/gi, 'ft·lbf');
//txt.value = txt.value.replace(/lb[ -.•\/]ft/gi, 'ft·lbf');
// Give digital value a percent symbol '%' instead of word
txt.value = txt.value.replace(/(\d)\s?per ?cent([^aei])/gi, '$1%$2');
txt.value = txt.value.replace(/(\d)\-per ?cent([^aei])/gi, '$1%$2');
// knot
txt.value = txt.value.replace(/(\d)\s?kts(\W)/gi, '$1 knots$2');
txt.value = txt.value.replace(/(\d)\s?knt(\W)/gi, '$1 knots$2');
// horsepower
txt.value = txt.value.replace(/(\d)\s?hp(\W)/gi, '$1 hp$2');
txt.value = txt.value.replace(/(\d)\s?bhp/gi, '$1 bhp');
txt.value = txt.value.replace(/(\d)\s?shp/gi, '$1 shp');
// rpm
txt.value = txt.value.replace(/(\d)\s?rpm/gi, '$1 rpm');
txt.value = txt.value.replace(/(\d)\-rpm/gi, '$1 rpm');
// decibel
txt.value = txt.value.replace(/(\d)\s?(dB)\b/g, '$1 $2');
// bits per second
txt.value = txt.value.replace(/([KkMmGg])(bps|bits?\/s|b\/s)/g, '$1bit/s');
txt.value = txt.value.replace(/(\d)\s?(bps)/gi, '$1 bit/s');
txt.value = txt.value.replace(/(\d) bps/gi, '$1 bit/s');
txt.value = txt.value.replace(/bits?\/sec(\W)/gi, 'bit/s$1');
// bytes per second
txt.value = txt.value.replace(/([KkMmGg])(Bps|bytes?\/s)/g, ' $1B/s');
txt.value = txt.value.replace(/bytes?\/s(\W)/gi, 'B/s$1');
// capitalization of prefix with bits and bytes
txt.value = txt.value.replace(/K(bit|B)\/s/g, 'k$1/s');
txt.value = txt.value.replace(/m(bit|B)\/s/g, 'M$1/s');
txt.value = txt.value.replace(/g(bit|B)\/s/g, 'G$1/s');
// space with bits and bytes
txt.value = txt.value.replace(/(\d)\s?(k|M|G)(bit|B)/g, '$1 $2$3');
// Common error with bits and bytes
txt.value = txt.value.replace(/mibi(bit|byte)/g, 'mebi$1');
//Remove 'Easter egg' diversions (linking unit name to orders of magnitude articles)
txt.value = txt.value.replace(/\[\[1\s?_?E\s?\-?\d{1,2}\s?..?\|([^\]]{1,50})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[Orders\sof\smagnitude\s\([^\)]{1,30}\)\|([^\]]{1,50})\]\]/gi, '$1');
// Add a tag to the summary box
var txt = document.editform.wpSummary;
var summary = "units";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
// Press the diff button to check it
document.editform.wpDiff.click()
}
addOnloadHook(function () {
if(document.forms.editform) {
addLink('p-cactions', 'javascript:formatunits()', 'units', 'ca-unitfixer', 'Fixes some unit formatting', '', '');
}
});
// [[User:Outriggr/metadatatest.js]] <nowiki>
importScript('User:Outriggr/metadatatest.js');
assessmentMyTemplateCode = ["{{TemplateA|class=|importance=}}", "{{TemplateB|class=|importance=}}", "{{TemplateC|class=|importance=}}"];
assessmentDefaultProject = "TemplateA";
// </nowiki>
// Links for tracking purposes: [[Wikipedia:WikiProject User scripts/Scripts/addLink]] [[User:Lupin/popups.js]] [[User:Pilaf/instaview.js]] [[User:Jnothman/afd_helper/script.js]] [[User:MarkS/extraeditbuttons.js]] [[User:Cacycle/diff]] [[User:Pilaf/Live_Preview]] [[User:Cacycle/editor]] [[User:Wmahan/wpspell.js]]
importScript('User:AzaToth/twinkle.js');
var mpTitle = "Main Page";
var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle)
if (isMainPage)
{window.location="http://en.wikipedia.org/wiki/Wikipedia:Main_Page_alternative_%28Search Box Only%29";}