User:The Evil IP address/vector.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
The accompanying .css page for this skin is at User:The Evil IP address/vector.css. |
/* global $, mw, pathoschild */
// <nowiki>
popupRevertSummaryPrompt=true;
popupFixRedirs=true;
importScript('User:Ale_jrb/Scripts/igloo.js'); // [[User:Ale_jrb/Scripts/igloo]]
// http://de.wikipedia.org/wiki/Benutzer:Stefan/Sperrstatus.js
$(function () {
var farbe = '';
if ( document.getElementById('ca-edit') ) {
var obj = document.getElementById('ca-edit');
var temp = String(mw.config.get('wgRestrictionEdit'));
if (temp == 'autoconfirmed') {
farbe = '#ffa500';
} else if (temp == 'sysop') {
farbe = '#ff6a6a';
}
}
if ( document.getElementById('ca-viewsource') ) {
var obj = document.getElementById('ca-viewsource');
farbe = '#ff0000';
}
if ( obj ) {
obj.firstChild.style.backgroundColor = farbe;
}
});
// Adds a "Replace" tab which pops up two prompt boxes; one for a regexp and one for a replacement
function wpTextboxReplace()
{
var s = prompt("Search regexp:");
var txt = document.editform.wpTextbox1;
while ( true ) {
if (!s) return;
var s_r = new RegExp(s, 'mg');
if (s_r.test(txt.value)) {
var r = prompt("Replace /"+s+"/ with:");
if(!r && r != '') return;
txt.value = txt.value.replace(s_r, r);
if (document.editform.wpSummary.value) {
document.editform.wpSummary.value += ', s/' + s + '/' + r + '/mg';
}
else {
document.editform.wpSummary.value = 's/' + s + '/' + r + '/mg';
}
return;
}
else {
var s_0 = s;
s = prompt('/' + s_0 + '/ does not match anything. Wanna try again?');
}
}
}
$(function () {
if (document.forms.editform) {
mw.util.addPortletLink('p-cactions', 'javascript:wpTextboxReplace()', 'Replace', 'ca-replace',
'Regexp replace for the edit window', 'R', document.getElementById('ca-history'));
}
});
// [[Category:Wikipedia scripts]]
/**
* TemplateScript adds configurable templates and scripts to the sidebar, and adds an example regex editor.
* @see https://meta.wikimedia.org/wiki/TemplateScript
* @update-token [[File:pathoschild/templatescript.js]]
*/
$.ajax('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js', { dataType:'script', cache:true }).then(function() {
pathoschild.TemplateScript.add([
{
name: 'General article fixes',
script: function(editor) { // own script of gen. fixes for articles
// Some workarounds
// ([\s\S]+): JavaScript can't match newlines with ".", thus it needs to be done by using regex for whitespace character and non-whitespace characters
// (\n): if stuff needs to explicitely match a newline, wrap it into brackets and then reference it by using $1 (or similar) in the replace string
// first fix
editor
.replace(/\{\{template:/gi,'{{'); // template is the default
// then, let's bypass redirects so we can use proper names for further fixes
editor
.replace(/\{\{(facts?|(source|os cite|ref(erence)?|cit(e|ation))[\s-]?needed|uncited|(a|c)n|needs citation|sourceme|cit(e|ation) missing|proveit|(really|source|ref|are you sure)\?|refplease|need cite|cite ref pls|needsref|bollocks)(\||\}{2})/gi,'{{Citation needed$8') // {{Citation needed}} and similar
.replace(/\{\{(commons?\s?cat|commonscat\simages|commonscategory|commons2|catistcommons|Cms-catlist-up)(\||\}{2})/gi,'{{Commons category$2') // {{Commons category}}
.replace(/\{\{(Article\s?issues|Issues|AI)(\||\}{2})/gi,'{{Multiple issues$2') // {{Multiple issues}}
.replace(/\{\{(wikimedia|sister\s?links2?)(\||\}{2})/gi,'{{Sister project links$2') // {{Sister project links}}
.replace(/\{\{(CI|cleanup[\s-]?cat|few\s?cat(s|egories)|improve[\s-]?cat(s|egories)|more\s?cat(egories|s|egory)?|cat(egory|egories)?[\s-]?improve|more cats)(\||\}{2})/gi,'{{Cat improve$6') // {{Cat improve}}
.replace(/\{\{(attention\s?(\(on talk page\)|needed|see talk)?|clean[\s-]up(-since|quality|date|pitt)?|cl?u|tidy|unfinished|attn|ugly|improve|quality)(\||\}{2})/gi,'{{Cleanup$4') // {{Cleanup}}
.replace(/\{\{(cleanup(-clarity|\s?confusing)|simplify|unclear)/gi,'{{Confusing') // {{Confusing}}
.replace(/\{\{((g|grammar)\s?check|(cleanup-)?copy-?edit|cleanup-english|ortogramrevision|grammar)/gi,'{{Copy edit') // {{Copy edit}}
.replace(/\{\{(cleanup-(references|citation|refs)|ref-cleanup|citation-?style|ref(erence)?[\s-]style|citestyle|cleanrefs|refs?clean)/gi,'{{Citation style') // {{Citation style}}
.replace(/\{\{(internal\s?links|dep|dead end page|needs links|deadend)/gi,'{{Dead end') // {{Dead end}}
.replace(/\{\{(essay-opinion|essay-entry|essaylike|cleanup-?essay)/gi,'{{Essay-like') // {{Essay-like}}
.replace(/\{\{(expansion|very\s?short|too-short)/gi,'{{Expand') // {{Expand}}
.replace(/\{\{(cleanup[\s-]fiction-as-fact|in\s?universe)/gi,'{{In-universe') // {{In-universe}}
.replace(/\{\{(no-?intro(duction)?|no\s?lead(\ssection)?|missingintro|intro[\s-]?missing|opening|leadsection)/gi,'{{Lead missing') // {{Lead missing}}
.replace(/\{\{(lead section|(expand|short)\s?lead|(lead)?too\s?short(\s2)?|short intro|intro-tooshort|expandlede)/gi,'{{Lead too short')
.replace(/\{\{(vagueintro|(intro|lead)-?rewrite|intro|lead|lede)/gi,'{{Lead rewrite');
// now let's start with the real 'general' fixes
editor
.replace(/\[\[Image:/gi,'[[File:') // New namespace name
.replace(/\|thumb\|right/g,'|thumb') // Thumbs are defaulted to right
.replace(/<gallery>([\s\S]*\n)Image:([\s\S]+)<\/gallery>/gi,'<gallery>$1File:$2</gallery>') // namespace within galleries
.replace(/\[\[File:(.+)_(.+)_(.+)_(.+)_(.+)_(.+)_(.+)_(.+)\.(\w+)/gi,'[[File:$1 $2 $3 $4 $5 $6 $7 $8.$9') // remove underscores from filenames (7) -- MAXIMUM
.replace(/\[\[File:(.+)_(.+)_(.+)_(.+)_(.+)_(.+)_(.+)\.(\w+)/gi,'[[File:$1 $2 $3 $4 $5 $6 $7.$8') // remove underscores from filenames (6)
.replace(/\[\[File:(.+)_(.+)_(.+)_(.+)_(.+)_(.+)\.(\w+)/gi,'[[File:$1 $2 $3 $4 $5 $6.$7') // remove underscores from filenames (5)
.replace(/\[\[File:(.+)_(.+)_(.+)_(.+)_(.+)\.(\w+)/gi,'[[File:$1 $2 $3 $4 $5.$6') // remove underscores from filenames (4)
.replace(/\[\[File:(.+)_(.+)_(.+)_(.+)\.(\w+)/gi,'[[File:$1 $2 $3 $4.$5') // remove underscores from filenames (3)
.replace(/\[\[File:(.+)_(.+)_(.+)\.(\w+)/gi,'[[File:$1 $2 $3.$4') // remove underscores from filenames (2)
.replace(/\[\[File:(.+)_(.+)\.(\w+)/gi,'[[File:$1 $2.$3') // remove underscores from filenames (1)
.replace(/\{\{Commons\|Category:(.+)(\|\1)?\}\}/gi,'{{Commons category|$1}}') // Wrong template ({{Commons|Category:Somethin}} - {{Commons category|Something}}
.replace(/\{\{Commons\|Category:(.+)\|(.+)\}\}/gi,'{{Commons category|$1|$2}}') // {{Commons|Category:Somethin|Different text}} - {{Commons category|Something|different text}}
.replace(/\{\{Multiple issues\|([\w\s-]+)=((January|February|March|April|May|June|July|August|September|October|November|December)\s\d{4})\}\}/g,'{{$1|date=$2}}') // only one concern within {{Multiple issues}}
.replace(/\{\{Multiple issues\}\}/g,'') // please specify issues within {{Multiple issues}}
.replace(/\{\{DEFAULTSORT\|(.+)\}\}/g,'{{DEFAULTSORT:$1}}') // usage of magic words
.replace(/(={2,6})\s*'''(.+)'''\s*\1(\n)/g, '$1$2$1$3') // unnecessary bolding removed from headings
.replace(/(={2,6})\s*(.+):\s*\1(\n)/g, '$1$2$1$3') // remove colon from headings
.replace(/(<br>|<\br>|<\/br\s>|<br\/>|<br\/\s>)/gi,'<br />') // proper <br />
.replace(/\*\[http:\/\/([\S]+) official (web\s?)?site\]/gi,'*{{Official|http://$1}}') // usage of {{Official}}
.replace(/\{\{lifetime\|/gi,'{{subst:ltm|') // subst: {{lifetime}}
.replace(/(==+)\s*external\s*links\s*(==+)/gi,'$1External links$1') // fix headers
.replace(/(==+)\s*references\s*(==+)/gi,'$1References$1')
.replace(/°/g, '°') // convert HTML entity into actual character
.replace(/\&dagger\;/g, '†')
.replace(/\&ndash\;/g, '–')
.replace(/\&mdash\;/g, '—')
.replace(/\&rarr\;/g, '→')
.replace(/\&larr\;/g, '←')
.replace(/\&rt\;/g, '>')
.replace(/\<\;/g, '<')
.replace(/\&hellip\;/g, '…')
.replace(/º/g, '°')
.replace(/²/g, '²')
.replace(/³/g, '³')
.replace(/<\/b>/gim, '\'\'\'') // HTML2Wiki
.replace(/<li>/g, '*')
.replace(/<\/li>/g, '')
.replace(/<ul>/g, '')
.replace(/<\/ul>/g, '')
.replace(/<br \/>(\n){2}/g, '\n\n') // unnecessary <br />
.replace(/<\/i>/gim, '\'\'')
.replace(/<b>/gim, '\'\'\'')
.replace(/<i>/gim, '\'\'')
.replace(/\t/g, ' ') // replace tabulators with spaces
.replace(/ +/g, ' ') // reduce unnecessary spaces
.replace(/ (\n)/g, '$1') // remove spaces at the end of a line
.replace(/\[\[[ \t]*([^\]|]+?)[ \t]*\|[ \t]*([^\] \t]+?)[ \t]*\]\]/g, '[[$1|$2]]') // link syntax
.replace(/\[\[([^|\]]+)\|\1([^|\] \t]+)\]\]/g, '[[$1]]$2')
.replace(/(\n)\|image=Replace[\s_]this[\s_]image[\s_](fe)?male\.svg/gi,'$1|image=') // remove placeholders
.replace(/(\n)\|image=\[\[File:Replace[\s_]this[\s_]image[\s_](fe)?male\.svg.+\1/gi,'$1|image=$1')
.replace(/\[\[category:/g, '[[Category:') // capitalize categories
.replace(/\[\[Category: /g, '[[Category:')
.replace(/\[\[Category:a/g, '[[Category:A')
.replace(/\[\[Category:b/g, '[[Category:B')
.replace(/\[\[Category:c/g, '[[Category:C')
.replace(/\[\[Category:d/g, '[[Category:D')
.replace(/\[\[Category:e/g, '[[Category:E')
.replace(/\[\[Category:f/g, '[[Category:F')
.replace(/\[\[Category:g/g, '[[Category:G')
.replace(/\[\[Category:h/g, '[[Category:H')
.replace(/\[\[Category:i/g, '[[Category:I')
.replace(/\[\[Category:j/g, '[[Category:J')
.replace(/\[\[Category:k/g, '[[Category:K')
.replace(/\[\[Category:l/g, '[[Category:L')
.replace(/\[\[Category:m/g, '[[Category:M')
.replace(/\[\[Category:n/g, '[[Category:N')
.replace(/\[\[Category:o/g, '[[Category:O')
.replace(/\[\[Category:p/g, '[[Category:P')
.replace(/\[\[Category:q/g, '[[Category:Q')
.replace(/\[\[Category:r/g, '[[Category:R')
.replace(/\[\[Category:s/g, '[[Category:S')
.replace(/\[\[Category:t/g, '[[Category:T')
.replace(/\[\[Category:u/g, '[[Category:U')
.replace(/\[\[Category:v/g, '[[Category:V')
.replace(/\[\[Category:w/g, '[[Category:W')
.replace(/\[\[Category:x/g, '[[Category:X')
.replace(/\[\[Category:y/g, '[[Category:Y')
.replace(/\[\[Category:z/g, '[[Category:Z')
.replace(/\[\[file:/g, '[[File:') // capitalize files
.replace(/\[\[File:\s+/g, '[[File:')
.replace(/\[\[File:a/g, '[[File:A')
.replace(/\[\[File:b/g, '[[File:B')
.replace(/\[\[File:c/g, '[[File:C')
.replace(/\[\[File:d/g, '[[File:D')
.replace(/\[\[File:e/g, '[[File:E')
.replace(/\[\[File:f/g, '[[File:F')
.replace(/\[\[File:g/g, '[[File:G')
.replace(/\[\[File:h/g, '[[File:H')
.replace(/\[\[File:i/g, '[[File:I')
.replace(/\[\[File:j/g, '[[File:J')
.replace(/\[\[File:k/g, '[[File:K')
.replace(/\[\[File:l/g, '[[File:L')
.replace(/\[\[File:m/g, '[[File:M')
.replace(/\[\[File:n/g, '[[File:N')
.replace(/\[\[File:o/g, '[[File:O')
.replace(/\[\[File:p/g, '[[File:P')
.replace(/\[\[File:q/g, '[[File:Q')
.replace(/\[\[File:r/g, '[[File:R')
.replace(/\[\[File:s/g, '[[File:S')
.replace(/\[\[File:t/g, '[[File:T')
.replace(/\[\[File:u/g, '[[File:U')
.replace(/\[\[File:v/g, '[[File:V')
.replace(/\[\[File:w/g, '[[File:W')
.replace(/\[\[File:x/g, '[[File:X')
.replace(/\[\[File:y/g, '[[File:Y')
.replace(/\[\[File:z/g, '[[File:Z')
.replace(/\{\{([\s\S]+)\|(\n)([\d\w])([\s\S])\}\}/g,'{{$1$2|$3$4}}') // wrong {{Infobox}}
.replace(/<references \/>/gi, '{{Reflist}}');
editor
.setEditSummary('general fixes')
.clickDiff();
}
},
]);
});
//importScript('User:The Evil IP address/debug.js');
importScript('User:GregU/dashes.js');
//importScript('User:The Evil IP address/hdedit.js');
importScript('User:Ohconfucius/script/MOSNUM dates.js');
importScript('User:Ohconfucius/script/EngvarB.js'); //[[User:Ohconfucius/script/EngvarB.js]]
/* </nowiki> */