MediaWiki:Gadget-StronaSubst.js
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.
var self_gadget_strona_subst=this;
var stronasubst_latex=undefined;
var stronasubst_mathml=undefined;
var stronasubst_opakuj_kategorie_ze_sortowaniem=undefined;
var stronasubst_ukrywaj_toc=undefined;
if((self_gadget_strona_subst.gConfig!==undefined)&&(self_gadget_strona_subst.gConfig.register!==undefined)&&(self_gadget_strona_subst.gConfig.get!==undefined)){
mw.messages.set({
'StronaSubst-name': 'StronaSubst',
'StronaSubst-description-page': 'Wikibooks:StronaSubst',
'StronaSubst-latex': 'Zamiast wzorów, wstaw tekst latexowy, w przeciwnym przypadku jest w formie LaTeX.',
'StronaSubst-mathml': 'Zamiast wzorów latexowych, wstaw je w formie znaczników MathML.',
'StronaSubst-opakuj_kategorie_ze_sortowaniem' : 'W stronach zbiorczych opakowuje kategorie, w postaci ramki, dla każdego artykułu z osobna.',
'StronaSubst-ukrywaj_toc' : "Ukrywa, począwszy od jakiegoś poziomu wszystkich tam spisów treści, na stronach zbiorczych.",
});
gConfig.register('StronaSubst', {name: mw.msg('StronaSubst-name'), descriptionPage: mw.msg('StronaSubst-description-page')}, [
{
name: 'latex',
desc: mw.msg('StronaSubst-latex'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_StronaSubst_latex']
},
{
name: 'mathml',
desc: mw.msg('StronaSubst-mathml'),
type: 'boolean',
deflt: true,
legacy: [window, 'wb_StronaSubst_mathml']
},
{
name: 'opakuj_kategorie_ze_sortowaniem',
desc: mw.msg('StronaSubst-opakuj_kategorie_ze_sortowaniem'),
type: 'boolean',
deflt: false,
legacy: [window, 'wb_stronasubst_opakuj_kategorie_ze_sortowaniem']
},
{
name: 'ukrywaj_toc',
desc: mw.msg('StronaSubst-ukrywaj_toc'),
type: 'integer',
deflt: 0,
validation: function(n){ if((n<0)||(n==1)){ throw 'Wartość dotycząca poziomu ukrywania spisów treści jest nieprawidłowa!' }; return n; },
legacy: [window, 'wb_stronasubst_ukrywaj_toc']
},
]);
stronasubst_latex = (gConfig.get('StronaSubst', 'latex')==true);
stronasubst_mathml = (((gConfig.get('StronaSubst', 'mathml'))&&(!stronasubst_latex))==true);
stronasubst_opakuj_kategorie_ze_sortowaniem = (gConfig.get('StronaSubst', 'opakuj_kategorie_ze_sortowaniem')==true);
stronasubst_ukrywaj_toc = gConfig.get('StronaSubst', 'ukrywaj_toc');
}
function WyswietlStronyKsiazki(){
if(self_gadget_strona_subst.GadgetStronaSubst){
return;
}else{
self_gadget_strona_subst.GadgetStronaSubst=true;
}
var tablica_tych_samych=new Array();
var tablica_rozdzialow=new Array();
function HrefDecode(href){
if(href===null){
return null;
}
return decodeURI(href);
}
function HrefEncode(href){
if(href===null){
return null;
}
return encodeURI(href);
}
function LiczonyHNumer(){
var ulozenie=null;
var ostanie=0;
return function(h_numer){
if((ulozenie==null)||(ulozenie>=h_numer)){
ulozenie=h_numer-1;
}else{
if(ostatnie+1<h_numer-ulozenie){
ulozenie=h_numer-ostatnie-1;
}
}
ostatnie=h_numer-ulozenie;
h_numer=h_numer-ulozenie;
return h_numer;
}
}
function WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml){
var title=data.parse.title;
var wikikod=data.parse.text['*'];
var selflink=document.createElement('div');
selflink.innerHTML=wikikod;
var czy_selflink=selflink.getElementsByClassName('selflink');
if((czy_selflink!==null)&&(czy_selflink.length==1)){
var elements=tabstrona[title];
var a=document.createElement('a');/*Tworzenie linku*/
a.setAttribute('href',HrefEncode(title));
a.innerHTML=title;
if((self_gadget_strona_subst.WyswietlKomunikatInfo!== undefined)&&(self_gadget_strona_subst.UsunKomunikatInfo!== undefined)){
a.setAttribute("onMouseOver","WyswietlKomunikatInfo(this,event,'brak_artykułu_do_skonstruowania_strony_zbiorczej');");
a.setAttribute("onMouseOut","UsunKomunikatInfo();");
}
var span=document.createElement('span');
span.appendChild(a);
span.setAttribute("class","nie_istnieje_na_tej_wiki link");/*Dodawanie klasy, by inny skrip JS to przeanalizował jako link*/
for(var q in elements){
var element=elements[q];
element.innerHTML="";
element.appendChild(span);
element.innerHTML="<strong>{{:"+element.innerHTML+"}}</strong>";
}
return;
}
var elements=tabstrona[title];
for(var q in elements){
var element=elements[q];
element.innerHTML=wikikod;
var a=element.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
var lena=a.length;
for(var i=0;i<lena;++i){
var element_a=a[i];
var href=HrefDecode(element_a.getAttribute('href'));
if(href!==null){
var re=/^[^\?]+\?[^&]+=[^&]*&?/g;
if(!re.test(href)){
var re2=/#/g;
var s=href.search(re2);
if(s!=-1){
var re=/^\/wiki\//g;
if(re.test(href)){
var href2=href.substring(6,s);
href2=href2.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
for(var s=0;s<titles.length;s++){
var strona=titles[s].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href2==strona){
var href3=href.replace(/^[^#]*/g,"");
element_a.setAttribute('href',HrefEncode(href3));
element_a.setAttribute("title","");
}
}
}
}else{
var re=/^\/wiki\//g;
if(re.test(href)){
var hrefs=href.replace(re,"");
hrefs=hrefs.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
for(var s=0;s<titles.length;s++){
var strona=titles[s].replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(hrefs==strona){
var hrefs2=hrefs.replace(/^[^\/]*\//g,"");
element_a.setAttribute('href',HrefEncode('#'+hrefs2));
element_a.setAttribute("title","");
}
}
}
}
}
}
}
}
}
var tab_toc=new Array("toc","toc_spis");
for(var d=0;d<tab_toc.length;++d){
var toc=document.getElementsByClassName(tab_toc[d]);
if((toc!==null)&&(toc.length>0)){
for(var q in elements){
var element=elements[q];
var powtorka;
var vv=0;
for(var e=0;e<tabs.length;++e){
if(tabs[e]==title){
if(q==vv){
var numer_artykulu=e;
powtorka=1;
var subtitle=title.match(/[^\/]+$/g).toString();
for(var ee=0;ee<e;++ee){
var subtabe=tabs[ee].match(/[^\/]+$/g).toString();
if(subtabe==subtitle){
++powtorka;
}
}
break;
}
++vv;
}
}
var num=new Array("numer");
var headline=element.getElementsByClassName("mw-headline");
if((headline!==null)&&(headline.length>0)){
var HNumer=LiczonyHNumer();
var len=headline.length;
var naglowek="";
var liczba_ulozenia_w_menu_spisu_tresci=1;
for (var k=0;k<len;++k){
var element2=headline[k];
var hparent=element2.parentNode;
if(hparent!==null){
var h=hparent.tagName.toUpperCase();
if(h.match(/^H\d+$/g)){
var nag2=element2.getAttribute('id');
if(nag2!==null){
var nag_poczatkowe=element2.innerHTML;
var nag=nag_poczatkowe.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
if(stronasubst_latex){
nag_poczatkowe=nag_poczatkowe.replace(/<[^<>]+>/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"").replace(/\s+/g," ");
}else{
nag_poczatkowe=nag_poczatkowe.replace(/<a\s+[^<>]+>/g,"").replace(/<a\s*>/g,"").replace(/<\/a\s*>/g,"").replace(/^\s*/g,"").replace(/\s*$/g,"").replace(/\s+/g," ");
}
if(tablica_tych_samych[numer_artykulu]==null){
tablica_tych_samych[numer_artykulu]=new Array();
tablica_tych_samych[numer_artykulu][nag]=1;
}else{
if(tablica_tych_samych[numer_artykulu][nag]!=null){
tablica_tych_samych[numer_artykulu][nag]+=1;
}else{
tablica_tych_samych[numer_artykulu][nag]=1;
}
}
var h_numer=undefined;
var h_klasa=hparent.classList;
for(var xx=0;xx<h_klasa.length;++xx){
var klasa_pojedynca=h_klasa[xx];
var czy_pasuje_klasa=klasa_pojedynca.match(/^mw\-hnumber\-\d+$/g);//Szablon HNumer
if(czy_pasuje_klasa){
var h_numer2=parseInt(czy_pasuje_klasa.toString().replace(/^mw\-hnumber\-/g,""));
if(!isNaN(h_numer2)){
if(h_numer2>6){
h_numer=h_numer2;
}
}
break;
}
}
if(h_numer===undefined){
h_numer=h.replace(/^[^\d]+/g,"");
h_numer=parseInt(h_numer);
h_numer=((!isNaN(h_numer))?h_numer:1);
}
h_numer=HNumer(h_numer);
if(k==0){
num.push(1);
var w_a="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext"+((stronasubst_mathml)?" mathml":"")+"\">"+nag_poczatkowe+"</span>";
naglowek+="<ul><li><a href=\""+HrefEncode("#"+nag2)+"\">"+w_a+"</a>";
}else{
if(h_numer==liczba_ulozenia_w_menu_spisu_tresci){
num[num.length-1]+=1;
var w_a="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext"+((stronasubst_mathml)?" mathml":"")+"\">"+nag_poczatkowe+"</span>";
naglowek+="</li><li><a href=\""+HrefEncode("#"+nag2)+"\">"+w_a+"</a>";
}else{
if(h_numer>liczba_ulozenia_w_menu_spisu_tresci){
num.push(1);
var w_a="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext"+((stronasubst_mathml)?" mathml":"")+"\">"+nag_poczatkowe+"</span>";
naglowek+="<ul><li><a href=\""+HrefEncode("#"+nag2)+"\">"+w_a+"</a>";
liczba_ulozenia_w_menu_spisu_tresci=h_numer;
}else{
if(h_numer<liczba_ulozenia_w_menu_spisu_tresci){
num.splice(num.length-liczba_ulozenia_w_menu_spisu_tresci+h_numer,liczba_ulozenia_w_menu_spisu_tresci-h_numer);
num[num.length-1]+=1;
var w_a="<span class=\"tocnumber\">"+num.join('.')+"</span><span class=\"toctext"+((stronasubst_mathml)?" mathml":"")+"\">"+nag_poczatkowe+"</span>";
naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci-h_numer))+"</li><li><a href=\""+HrefEncode("#"+nag2)+"\">"+w_a+"</a>";
liczba_ulozenia_w_menu_spisu_tresci=h_numer;
}
}
}
}
}
}
}
}
if((naglowek!=null)&&(naglowek!="")){
naglowek+=('</li></ul>'.repeat(liczba_ulozenia_w_menu_spisu_tresci));
for(var b=0;b<toc.length;++b){
var a2=toc[b].getElementsByTagName('a');
if((a2!==null)&&(a2.length>0)){
var tab_a2=new Array();
for(var x=0;x<a2.length;++x){tab_a2[x]=a2[x];}
for(var y=0;y<tab_a2.length;++y){
var parent=tab_a2[y].parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="LI")){
var href=HrefDecode(tab_a2[y].getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
var title_2=title.match(/[^\/]+$/g).toString().replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"");
var title2=title_2.replace(/[_\s]+/g," ");
var title2_href=title_2.replace(/[_\s]+/g,"_");
var ile_tablica_tych_samych=0;
for(var gg=0;gg<numer_artykulu;++gg){
var element_tablica_tych_samych=tablica_tych_samych[gg];
if(element_tablica_tych_samych!=null){
var element_tablica_tych_samych_title=element_tablica_tych_samych[title2];
ile_tablica_tych_samych+=((element_tablica_tych_samych_title!=null)?element_tablica_tych_samych_title:0);
}
}
var ile=powtorka+ile_tablica_tych_samych;
var dodatek=0;
var czy_naglowki=false;
for(var ff in tablica_rozdzialow){czy_naglowki=true;break;}
if(czy_naglowki){
for(var ss=0;ss<tab_a2.length;++ss){
var element_tab_a2=tab_a2[ss];
var href2=HrefDecode(element_tab_a2.getAttribute('href'));
if(href2!==null){
href2=href2.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
var tocnumber=element_tab_a2.getElementsByClassName('tocnumber');
var toctext=element_tab_a2.getElementsByClassName('toctext');
if((tocnumber!==null)&&(tocnumber.length>0)&&(toctext!==null)&&(toctext.length>0)){
var element_toctext=toctext[0].innerHTML.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
var element_tocnumber=tocnumber[0];//.innerHTML.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"");
var tab=tablica_rozdzialow[element_toctext];
if((tab!=null)&&(tab.length>0)){
for(var m in tab){
if(tab[m]==element_tocnumber){
var ile2=ile+dodatek;
if(href2==(title2_href+((ile2>1)?("_"+ile2):""))){
dodatek+=1;
}
}else{
break;
}
}
}
}
}
}
}
ile+=dodatek;
if(href==(title2_href+((ile>1)?("_"+ile):""))){
var div=document.createElement('div');
div.innerHTML=naglowek;
var ul=parent.getElementsByTagName('ul');
if((ul!==null)&&(ul.length>0)){
var element_li=ul[0].getElementsByTagName('li');
function WsadzDoSpisuTresciTOC(){
var ul_jeden=div.getElementsByTagName('ul')[0];
var lis=ul_jeden.getElementsByTagName('li');
var element_li_przed=element_li[0];
for(var ff=lis.length-1;ff>=0;--ff){
var element_lis=lis[ff];
if(element_lis.parentNode==ul_jeden){
ul[0].insertBefore(element_lis,element_li_przed);
element_li_przed=element_lis;
}
}
}
if((element_li!==null)&&(element_li.length>0)){
var li_tocnumber=element_li[0].getElementsByTagName('tocnumber');
if((li_tocnumber!==null)&&(li_tocnumber.length>0)){
var element_li_tocnumber=li_tocnumber[0];
WsadzDoSpisuTresciTOC();
var tocnumber=div.getElementsByClassName('tocnumber');
if((tocnumber!==null)&&(tocnumber.length>0)){
var ul2=div.getElementsByTagName('ul')[0];
var licznik=0;
for(var ss=0;ss<tocnumber.length;++ss){
var number=tocnumer[ss];
if((number.parentNode!==null)&&(number.parentNode.tagName.toUpperCase()=="A")
&&(number.parentNode.parentNode!==null)&&(number.parentNode.parentNode.tagName.toUpperCase()=="LI")
&&(number.parentNode.parentNode.parentNode!==null)&&(number.parentNode.parentNode.parentNode.tagName.toUpperCase()=="UL")
&&(number.parentNode.parentNode.parentNode==ul2)
){
++licznik;
}
}
var tab_element_li_tocnumber=element_li_tocnumber.innerHTML.split('.');
var ile2=tab_element_li_tocnumber.length;
var tocnumber2=ul[0].getElementsByTagName('tocnumber');
for(var ss=tocnumber.length;ss<tocnumber2.length;++ss){
var tocnumber2_ss=tocnumber2[ss].innerHTML.split('.');
var ile_ss=tocnumber2_ss.length;
if(ile_ss==ile2){
++licznik;
tocnumber2_ss[ile2-1]=licznik;
text_number=tocnumber2_ss.join('.');
tocnumber2[ss].innerHTML=text_number;
}else{
if(ile_ss>ile2){
tocnumber2_ss[ile2-1]=licznik;
text_number=tocnumber2_ss.join('.');
tocnumber2[ss].innerHTML=text_number;
}
}
}
}
}else{
WsadzDoSpisuTresciTOC();
}
}else{
parent.removeChild(ul[0]);
parent.appendChild(div.getElementsByTagName('ul')[0]);
}
}else{
parent.appendChild(div.getElementsByTagName('ul')[0]);
}
}
}
}
}
}
}
}
}
}
}
}
for(var d=0;d<tab_toc.length;++d){
var toc_pos=document.getElementsByClassName(tab_toc[d]);
if((toc_pos!==null)&&(toc_pos.length>0)){
for(var w=0;w<toc_pos.length;++w){
var li=toc_pos[w].getElementsByTagName('li');
var poziom;
var section=1;
if((li!==null)&&(li.length>0)){
for(var z=0;z<li.length;++z){
var element_li=li[z];
if((element_li.tagName.toUpperCase()=="LI")
&&(element_li.parentNode!==null)
&&(element_li.parentNode.tagName.toUpperCase()=="UL")
&&(element_li.parentNode.parentNode!==null)
&&(element_li.parentNode.parentNode.tagName.toUpperCase()=="LI")
){
var parent=element_li.parentNode.parentNode;
var klasa=parent.getAttribute('class');
if(klasa!==null){
var poziom=klasa.match(/toclevel-\d+/g);
if(poziom!==null){
poziom=parseInt(poziom.toString().match(/\d+$/).toString())+1;
poziom=((!isNaN(poziom))?poziom:1);
}else{
poziom=1;
}
}else{poziom=1;}
}else{poziom=1;}
var klasa=element_li.getAttribute('class');
if(klasa!==null){
var czy_section=klasa.match(/tocsection-\d+/);
if(czy_section!==null){
klasa=klasa.replace(/tocsection-\d+/g,"tocsection-"+section);
element_li.setAttribute('class',klasa);
}else{
element_li.classList.add("tocsection-"+section);
}
var czy_level=klasa.match(/toclevel-\d+/);
if(czy_level!==null){
klasa=element_li.getAttribute('class');
if(klasa!==null){
klasa=klasa.replace(/toclevel-\d+/g,"toclevel-"+poziom);
element_li.setAttribute('class',klasa);
}
}else{
element_li.classList.add("toclevel-"+poziom);
}
}else{
element_li.setAttribute('class',"toclevel-"+poziom+" tocsection-"+section)
}
section=section+1;
}
}
}
//Poczatek ustalania num
for(var w=0;w<toc_pos.length;++w){
var tocnumber=toc_pos[w].getElementsByClassName('tocnumber');
if((tocnumber!==null)&&(tocnumber.length>0)){
var ostatnie;
for(var hh=0;hh<tocnumber.length;++hh){
var element_tocnumber=tocnumber[hh];
var zawartosc=element_tocnumber.innerHTML;
if(zawartosc.match(/^numer\./g)){
if(ostatnie!==null){
element_tocnumber.innerHTML=zawartosc.replace(/^numer\./g,ostatnie+".");
}
}else{
ostatnie=zawartosc;
}
}
}
}
//Koniec ustalania num
}
}
var headline=document.getElementsByClassName('mw-headline');
if((headline!==null)&&(headline.length>0)){
for(var i=0;i<headline.length;++i){
var c=1;
var el=headline[i];
var id0=el.innerHTML.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
for(var j=0;j<i;++j){
var el1=headline[j];
var id1=el1.innerHTML.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(id0==id1){
++c;
}
}
var span=null;
if((el.parentNode!==null)&&(el.parentNode.tagName.toUpperCase().match(/^H\d+$/g))){
span=el.parentNode.getElementsByTagName('span');
}
var span_number=null;
if((el.parentNode!==null)&&(el.parentNode.tagName.toUpperCase().match(/^H\d+$/g))){
span_number=el.parentNode.getElementsByClassName('mw-number');
}
function IdNazwa(id0){
el.setAttribute('id',id0);
if((span!==null)&&(span.length>0)){
if(((span_number===null)||(span_number.length==0))&&(span[0]!=el)){
span[0].setAttribute('id',encodeURIComponent(id0).replace(/%/g,"."));
}else{
if((span_number!==null)&&(span_number.length>0)&&(span[1]!=null)&&(span_number[0]!=span[1])&&(span_number[0]!=el)&&(span[1]!=el)){
span[1].setAttribute('id',encodeURIComponent(id0).replace(/%/g,"."));
}
}
}
}
if(c==1){IdNazwa(id0);}else{IdNazwa(id0+"_"+c);}
}
}
for(var d=0;d<tab_toc.length;++d){
var toc_pos=document.getElementsByClassName(tab_toc[d]);
if((toc_pos!==null)&&(toc_pos.length>0)){
for(var w=0;w<toc_pos.length;++w){
var toc=toc_pos[w];
var a=toc.getElementsByTagName('a');
if((a!==null)&&(a.length>0)){
for(var p=0;p<a.length;++p){
var element_a=a[p];
var element_toctext=element_a.getElementsByClassName('toctext');
if((element_toctext!==null)&&(element_toctext.length>0)){
var strona=element_toctext[0].innerHTML.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
var c=1;
for(var v=0;v<p;++v){
var element_a2=a[v];
var element_toctext2=element_a2.getElementsByClassName('toctext');
if((element_toctext2!==null)&&(element_toctext2.length>0)){
var strona2=element_toctext2[0].innerHTML.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(strona==strona2){
++c;
}
}else{
c=undefined;
break;
}
}
if(c!==undefined){
if(c==1){
element_a.setAttribute('href',HrefEncode("#"+strona));
}else{
element_a.setAttribute('href',HrefEncode("#"+strona)+"_"+c);
}
}
}
}
}
}
}
}
for(var q in elements){
var element=elements[q];
if(self_gadget_strona_subst.NumerujRozdzialyPoSciagnieciuArtykulu!==undefined){
NumerujRozdzialyPoSciagnieciuArtykulu(element);//Funkcja jako gadżet do numerowania rozdziałów.
}
element.style.display="block";
var parent=element.parentNode;
if((parent!==null)&&(parent.tagName.toUpperCase()=="DIV")){
parent.style.display="block";
}
}
var toclimit=document.getElementsByClassName('toclimit');
if((toclimit!==null)&&(toclimit.length>0)){
stronasubst_ukrywaj_toc=parseInt(((stronasubst_ukrywaj_toc!==undefined)?stronasubst_ukrywaj_toc:0));
stronasubst_ukrywaj_toc=((!isNaN(stronasubst_ukrywaj_toc))?stronasubst_ukrywaj_toc:0);
for(var cc=0;cc<toclimit.length;++cc){
var toclimit_element=toclimit[cc];
function TOC_ukrywaj(numer){
if(numer>1){
var czy=false;
var toc=$("div."+((stronasubst_ukrywaj_toc==0)?("toclimit.toclimit-"+numer):"toclimit")+" div.toc li.toclevel-"+(parseInt(numer)-1)+" > ul");
if((toc!==null)&&(toc.length>0)){
for(var aa=0;aa<toc.length;++aa){
var element_toc=toc[aa];
if($(toclimit_element).find(element_toc)){
element_toc.classList.add("toc_ukrywaj_poziom");
if(!czy){czy=true;};
}
}
}
if(!czy){
var toc_spis=$("div."+((stronasubst_ukrywaj_toc==0)?("toclimit.toclimit-"+numer):"toclimit")+" div.toc_spis li.toclevel-"+(parseInt(numer)-1)+" > ul");
if((toc_spis!==null)&&(toc_spis.length>0)){
for(var aa=0;aa<toc_spis.length;++aa){
var element_toc_spis=toc_spis[aa];
if($(toclimit_element).find(element_toc_spis)){
element_toc_spis.classList.add("toc_ukrywaj_poziom");
}
}
}
}
}
}
if(stronasubst_ukrywaj_toc==0){
var klasy=toclimit_element.classList;
for(var ss=0;ss<klasy.length;++ss){
var czy_toclimit_numer=klasy[ss].match(/^toclimit\-\d+/g);
if(czy_toclimit_numer){
var numer=parseInt(czy_toclimit_numer.toString().replace(/^toclimit\-/g,""));
numer=((!isNaN(numer))?numer:0);
TOC_ukrywaj(numer);
}
}
}else{
TOC_ukrywaj(stronasubst_ukrywaj_toc);
}
}
}
}
function StronaSubst(data){
var wikikod=data.parse.text['*'];
var elem=document.createElement('div');
elem.innerHTML=wikikod;
var klasa_mw_parser_out=elem.getElementsByClassName('mw-parser-output');
var wikikod_wyodrebniony=(((klasa_mw_parser_out!==null)&&(klasa_mw_parser_out.length==1))?(klasa_mw_parser_out[0].innerHTML):wikikod);
var czy_wikikod=wikikod_wyodrebniony.match(/^[_\s]*$/g);
if(czy_wikikod){return;}
var rozdzial_ksiazki="rozdział_książki";
var tagclass=document.getElementsByClassName(rozdzial_ksiazki);
if(tagclass===null){return null;}
var liczba_elementow=tagclass.length;
if(liczba_elementow==0){return null;}
var titles=new Array();
var tabstrona=new Array();
var tabs=new Array();
if(self_gadget_strona_subst.NumerujRozdzialyPrzedSciaganiemArtykulow!==undefined){
NumerujRozdzialyPrzedSciaganiemArtykulow();//Funkcja jako gadżet do numerowania rozdziałów.
}
for (var i=0;i<liczba_elementow;++i){
var tagclassname=tagclass[i];
if(tagclassname.tagName.toUpperCase()!="DIV"){
return;
}
var class_element=tagclassname.getElementsByClassName('strona_subst');
var element;
if((class_element!==null)&&(class_element.length==1)){
element=class_element[0];
if(element.tagName.toUpperCase()!="DIV"){
return;
}
}else{
return;
}
var czy_link_w_naglowku;
var strona_headline=tagclassname.getElementsByClassName('mw-headline');
var strona;
if((strona_headline!==null)&&(strona_headline.length==1)){
strona_a=strona_headline[0].getElementsByTagName('a');
if((strona_a!==null)&&(strona_a.length==1)){
strona=HrefDecode(strona_a[0].getAttribute('href'));
if(strona!==null){
var s=strona.search(/#/g);
if(s!=-1){
if(!element.innerHTML.match(/^[_\s]*$/g)){
return;
}
var re=/\wiki\//g;
if(re.test(strona)){
strona=strona.substring(6,s);
czy_link_w_naglowku=false;
}else{
return;
}
}else{
if(!element.innerHTML.match(/^[_\s]*$/g)){
return;
}
strona=strona.replace(/^\/wiki\//g,"");
czy_link_w_naglowku=false;
}
}
}else{
strona=element.innerHTML;
czy_link_w_naglowku=true;
}
}else{
return;
}
var re = /^[_\s]*$/g;
var dopasowanie = re.test(strona);
if(dopasowanie){return;};
strona=strona.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
/**/
var hn=strona_headline[0].parentNode;
if((hn===null)||(!hn.tagName.toUpperCase().match(/^H\d+$/g))){return;}
var linkstrony_editsection=hn.getElementsByClassName('mw-editsection');
if((linkstrony_editsection!==null)&&(linkstrony_editsection.length>0)){
var mw_editsection_bracket=linkstrony_editsection[0].getElementsByTagName('a');
if((mw_editsection_bracket!==null)&&(mw_editsection_bracket.length>0)){
for(var m=0;m<mw_editsection_bracket.length;++m){
var edycja=mw_editsection_bracket[m];
var href=HrefDecode(edycja.getAttribute('href'));
if(href!==null){
if(!href.match(/^%s*javascript:/g)){
var czesc_href=href.match(/[\?&]title=[^&]*/g);
if(czesc_href){
if(czesc_href.toString().match(/^\?/g)){
href=href.replace(/\?title=[^&]+/g,"?title="+strona.replace(/[_\s]+/g,"_"));
}else{
href=href.replace(/&title=[^&]+/g,"&title="+strona);
}
href=href.replace(/[\?&]section=[^&]+/g,"");
edycja.setAttribute('href',HrefEncode(href));
}else{
href=href.replace(/\/wiki\/[^\?]*\?/g,"/w/index.php?title="+strona.replace(/[_\s]+/g,"_")+"&");
href=href.replace(/[\?&]section=[^&]+/g,"");
edycja.setAttribute('href',HrefEncode(href));
}
}
}
}
if(czy_link_w_naglowku){
var a=document.createElement('a');
a.innerHTML="artykuł";
a.setAttribute("href",HrefEncode("/wiki/"+strona.replace(/[_\s]+/g,"_")));
a.setAttribute("title","Zobacz artykuł:")
var span=document.createElement('span');
span.innerHTML="| ";
span.setAttribute('class',"mw-editsection-bracket")
var element_linkstrony_editsection=linkstrony_editsection[0];
element_linkstrony_editsection.insertBefore(span, mw_editsection_bracket[0]);
element_linkstrony_editsection.insertBefore(a, span);
}
}
}
/**/
tabs[i]=strona;
var czy=false;
for(var d in titles){
if(titles[d]==strona){
czy=true;
break;
}
}
if(!czy){
titles[titles.length]=strona;
}
if(tabstrona[strona]==null){
tabstrona[strona]=new Array();
}
var tab=tabstrona[strona];
var tablen=tab.length;
tabstrona[strona][tablen]=element;
}
function RozwazajNaglowki(){
var tab_toc=new Array("toc","toc_spis");
for(var d=0;d<tab_toc.length;++d){
var toc_pos=document.getElementsByClassName(tab_toc[d]);
if((toc_pos!==null)&&(toc_pos.length>0)){
for(var w=0;w<toc_pos.length;++w){
var ile_jest=0;
var li=toc_pos[w].getElementsByTagName('li');
if((li!==null)&&(li.length>0)){
for(var dd=0;dd<li.length;++dd){
var element_li=li[dd];
var tocnumber=element_li.getElementsByClassName('tocnumber');
var toctext=element_li.getElementsByClassName('toctext');
if((tocnumber!==null)&&(tocnumber.length>0)&&(toctext!==null)&&(toctext.length>0)){
var czy_jest=undefined;
var nie_iteruj=undefined;
var klasa_naglowka=document.getElementsByClassName('klasa_naglowka');
if((klasa_naglowka!==null)&&(klasa_naglowka.length>0)&&(klasa_naglowka[ile_jest]!=null)){
var element_klasa_naglowka=klasa_naglowka[ile_jest];
var headline=element_klasa_naglowka.getElementsByClassName('mw-headline');
if((headline!==null)
&&(headline.length>0)
&&(headline[0].parentNode!==null)
&&(headline[0].parentNode.tagName.toUpperCase().match(/^H\d+$/))
&&(headline[0].parentNode.parentNode!==null)
&&(headline[0].parentNode.parentNode.tagName.toUpperCase()=="DIV")
&&(headline[0].parentNode.parentNode===element_klasa_naglowka)
){
var element_a=tocnumber[0].parentNode || toctext[0].parentNode;
if((tocnumber[0].parentNode!==null)&&(toctext[0].parentNode!==null)&&(tocnumber[0].parentNode==toctext[0].parentNode)&&(element_a.tagName.toUpperCase()=="A")){
var href=HrefDecode(element_a.getAttribute('href'));
if(href!==null){
href=href.replace(/^#/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
var id_headline=headline[0].getAttribute('id');
if(id_headline!==null){
id_headline=id_headline.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g,"_");
if(href!=id_headline){czy_jest=true;nie_iteruj=true;}
}else{czy_jest=true;nie_iteruj=true;}
}else{czy_jest=true;nie_iteruj=true;}
}else{czy_jest=true;nie_iteruj=true;}
}else{czy_jest=true;nie_iteruj=true;}
}else{czy_jest=true;nie_iteruj=true;}
if(nie_iteruj===undefined){ile_jest+=1;}
if((czy_jest===undefined)||(!czy_jest)){
var element_toctext=toctext[0].innerHTML.replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/[_\s]+/g," ");
var element_tocnumber=tocnumber[0];//.innerHTML.replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"");
if(tablica_rozdzialow[element_toctext]==null){
tablica_rozdzialow[element_toctext]=new Array(element_tocnumber);
}else{
tablica_rozdzialow[element_toctext].push(element_tocnumber);
}
}
}
}
}
}
}
}
}
RozwazajNaglowki();
stronasubst_latex=((stronasubst_latex!==undefined)?stronasubst_latex:false);
stronasubst_mathml=((stronasubst_mathml!==undefined)?stronasubst_mathml:true);
stronasubst_opakuj_kategorie_ze_sortowaniem=((stronasubst_opakuj_kategorie_ze_sortowaniem!==undefined)?stronasubst_opakuj_kategorie_ze_sortowaniem:false);
if(stronasubst_mathml){
$("div.toc ul > li > a > span.toctext").toggleClass("mathml");
$("div.toc_spis ul > li > a > span.toctext").toggleClass("mathml");
}
for ( var p in titles ) {
var strona=titles[p];
var szablon_artykulu;
if(stronasubst_opakuj_kategorie_ze_sortowaniem){
szablon_artykulu="{{OpakujKategorieZeSortowaniem|{{:"+strona+"}}}}"
}else{
szablon_artykulu="{{:"+strona+"}}";
}
var api=new mw.Api;
api.get({
action: 'parse',
format: 'json',
prop: 'text',
title: strona,
text: szablon_artykulu,
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext'
}).done(function(data){
WikikodTitle(data,tabs,titles,tabstrona,stronasubst_latex,stronasubst_mathml);
});
}
}
var strona = mw.config.get('wgPageName');
var api=new mw.Api;
api.get({
action: 'parse',
format: 'json',
prop: 'text',
title: strona,
text: '{{#invoke:StronicowyParser|CzyStronaSubst}}',
disabletoc: true,
disablelimitreport: true,
contentmodel: 'wikitext'
}).done(function(data){
StronaSubst(data)
});
}
$(WyswietlStronyKsiazki);