Wikipedysta:Malarz pl/wp si.js
(Przekierowano z Wikipedia:SK/mSI)
Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
- Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
- Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
- Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
- Opera: Naciśnij klawisze Ctrl+F5.
$(function() {
if(typeof wp_sk ==='undefined') return;
wp_sk.mm_rFriendlyIbox = function(a,nazwa,zaw) {
//
// usuwam komentarze
//
zaw = zaw.replace(/<!-- <liczba>/, '<!--');
zaw = zaw.replace(/ *<!--[^>]*--> *\n/g, '\n')
//
// jak został komentarz lub nie ma parametrów to kończymy
//
if (zaw.indexOf('<!--')!=-1 || zaw.indexOf('|')==-1)
{
return a;
}
nazwa = nazwa.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"); // trim
//
// escapowanie parametrów
//
zaw = zaw.replace(/<<<(#+)>>>/g,'<<<#$1>>>');
// wewnętrzne szablony
zaw = zaw.replace(/\{\{(([^\{\}]+)?(\{\{[^\{\}]+\}\})?)*\}\}/g,function(a){ return a.replace(/\|/g,'<<<#>>>') });
// wewnętrzne linki
zaw = zaw.replace(/\[\[[^\]]+\]\]/g,function(a){ return a.replace(/\|/g,'<<<#>>>') });
//
// sprzątanie
//
// del pustych
zaw = zaw.replace(/\|\s*(?=\|)/g, function(a) {return (a.indexOf('\n')==-1)?'':'\n'}).replace(/\|\s*$/g, "");
zaw = zaw.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"); // trim
// przeniesienie | na początek wiersza (zawsze)
zaw = '\n'+zaw+'\n';
zaw = zaw.replace(/\s*\|\s*/g, '\n |');
//
// odescapowanie
//
zaw = zaw.replace(/<<<#>>>/g,'|').replace(/<<<#(#+)>>>/g,'<<<$1>>>');
dlugosc = 0;
zawartosc = zaw;
// obliczam długość najdłuższej nazwy parametru
while (zawartosc.length) {
linia = zawartosc.substr(0, zawartosc.indexOf('\n'));
zawartosc = zawartosc.substr(zawartosc.indexOf('\n')+1);
if (linia.match(/^ *\|[0-9a-zA-Z\*\. \t\_\-\*\/\(\)\?\,\:ąćęłńóśźżĄĆĘŁŃÓŚŹŻ]*\=/)){
linia = linia.replace(/^ *\|([^=]*)=.*$/, '$1');
linia = linia.replace(/^[ \t]*([^ \t])/, '$1');
linia = linia.replace(/([^ \t])[ \t]*$/, '$1');
if (!(linia.match(/^(stopni|minut|sekund)(N|E|S|W)$/))) {
dlugosc = (dlugosc>linia.length) ? dlugosc : linia.length;
}
}
}
// dla niekórych dlugosc ustawiam na stałe
if (nazwa.match(/^Jednostka administracyjna infobox/)) {
dlugosc = 31;
} else if (nazwa.match(/^Zwierzę infobox/)) {
dlugosc = 22;
} else if (nazwa.match(/^Biogram infobox/)) {
dlugosc = 20;
} else if (nazwa.match(/^Dzielnica infobox/)) {
dlugosc = 28;
}
// przerabiam wywołania parametrów
nowazaw = '';
while (zaw.length) {
linia = zaw.substr(0, zaw.indexOf('\n'));
zaw = zaw.substr(zaw.indexOf('\n')+1);
if (linia.match(/^ *\|[0-9a-zA-Z\*\. \t\_\-\*\/\(\)\?\,\:ąćęłńóśźżĄĆĘŁŃÓŚŹŻ]*\=/)){
nazwapar = linia.replace(/^ *\|([^=]*)=.*$/, '$1');
nazwapar = nazwapar.replace(/^[ \t]*([^ \t])/, '$1');
nazwapar = nazwapar.replace(/([^ \t])[ \t]*$/, '$1');
if (!(nazwapar.match(/^(stopni|minut|sekund)(N|E|S|W|_szer|_dł)$/))) {
while (nazwapar.length<dlugosc) nazwapar += ' ';
}
parametr = linia.replace(/^ *\|[^=]* *=(.*)$/, '$1');
parametr = parametr.replace(/^ *([^ ])/, '$1');
parametr = parametr.replace(/([^ ])[ \n]*$/, '$1');
if (parametr == "?")
parametr = "";
parametr = parametr.replace(/ *<\/?br ?\/?>$/gi, '');
nowazaw += ' |' + nazwapar + ' = ' + parametr + '\n';
} else {
nowazaw += linia + '\n';
}
nowazaw = nowazaw.replace(/\n( \|(minut|sekund)(N|E|S|W|_szer|_dł) =)/, '$1');
nowazaw = nowazaw.replace(/\n \|(szerokość|długość) *= (N|E|S|W)/, ' |$1 = $2');
}
// składam do kupy nowy ibox
return '{{' + nazwa.substring(0,1).toUpperCase() + nazwa.substring(1) + nowazaw + '}}';
}
wp_sk.rFriendlyIbox = wp_sk.mm_rFriendlyIbox;
wp_sk.extension += "+[[WP:SK/mSI|mSI]]";
});