Wikipedysta:Persino/Gadget-NumerSubst.js

Z Wikibooks, biblioteki wolnych podręczników.

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(mw,$){
  var NumerSubst=new Array();
  var czy_nie_gconfig=false;
  NumerSubst.NumerowanieNaglowkow=function(){
	/**/
	var gadget_numerowanie_nie_na_stronie_zbiorczej=undefined;
	var gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=undefined;
	var gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=undefined;
	/**/
	var gadget_numerowanie_na_stronie_zbiorczej=undefined;
	var gadget_numerowanie_normalne_na_stronie_zbiorczej=undefined;
	var gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=undefined;
	/**/
	if((window.gConfig!==undefined)&&(window.gConfig.register!==undefined)&&(window.gConfig.get!==undefined)){
		if(!czy_nie_gconfig){
			czy_nie_gconfig=true;
  			mw.messages.set({
				'NumerSubst-name': 'Numerowanie nagłówków',
				'NumerSubst-description-page': 'Wikibooks:StronicowyParser',
				'NumerSubst-numerowanie_nie_na_stronie_zbiorczej': 'Włącz numerowanie nagłówków nie na stronie zbiorczej.',
				'NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej': "Włącz normalne numerowanie nie na stronie zbiorczej.",
				'NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej': "Włącz asynchroniczne numerowanie nie na stronie zbiorczej.",
				'NumerSubst-numerowanie_na_stronie_zbiorczej': 'Włącz numerowanie nagłówków na stronie zbiorczej.',
				'NumerSubst-numerowanie_normalne_na_stronie_zbiorczej': "Włącz normalne numerowanie na stronie zbiorczej.",
				'NumerSubst-numerowanie_asynchroniczne_na_stronie_zbiorczej': "Włącz asynchroniczne numerowanie na stronie zbiorczej.",
  			});
  			gConfig.register('NumerSubst', {name: mw.msg('NumerSubst-name'), descriptionPage: mw.msg('NumerSubst-description-page')}, [
			{
				name: 'numerowanie_nie_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_nie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
			    legacy: [window, 'wb_NumerSubst-numerowanie_nie_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie_normalne_nie_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
			    legacy: [window, 'wb_NumerSubst-numerowanie_normalne_nie_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie_asynchroniczne_nie_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: false,
			    legacy: [window, 'wb_NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
			    legacy: [window, 'wb_NumerSubst-numerowanie_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie-normalne_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_normalne_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: true,
			    legacy: [window, 'wb_NumerSubst-numerowanie_normalne_na_stronie_zbiorczej']
			},
			{
				name: 'numerowanie_asynchroniczne_na_stronie_zbiorczej',
				desc: mw.msg('NumerSubst-numerowanie_asynchroniczne_nie_na_stronie_zbiorczej'),
				type: 'boolean',
				deflt: false,
			    legacy: [window, 'wb_NumerSubst-numerowanie_asynchroniczne_na_stronie_zbiorczej']
			},
			]);
		}
		gadget_numerowanie_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_nie_na_stronie_zbiorczej')==true);
		gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_normalne_nie_na_stronie_zbiorczej')==true);
		gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_asynchroniczne_nie_na_stronie_zbiorczej')==true);
		/**/
		gadget_numerowanie_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_na_stronie_zbiorczej')==true);
		gadget_numerowanie_normalne_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_normalne_na_stronie_zbiorczej')==true);
		gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=(gConfig.get('NumerSubst', 'numerowanie_asynchroniczne_na_stronie_zbiorczej')==true);
	}
	gadget_numerowanie_nie_na_stronie_zbiorczej=(gadget_numerowanie_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_nie_na_stronie_zbiorczej:true;
	gadget_numerowanie_normalne_nie_na_stronie_zbiorczej=(gadget_numerowanie_normalne_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_normalne_nie_na_stronie_zbiorczej:true;
	gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej=(gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej:false;
	/**/
	gadget_numerowanie_na_stronie_zbiorczej=(gadget_numerowanie_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_na_stronie_zbiorczej:true;
	gadget_numerowanie_normalne_na_stronie_zbiorczej=(gadget_numerowanie_normalne_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_normalne_na_stronie_zbiorczej:true;
	gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej=(gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej!==undefined)?gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej:false;
	
	var zmienna_this=this;
	this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu=function(aktualna_strona){
		var promise_numerowanie=DodatkiSkrypt.Scribunto.StronicowyParser.CzyStronaSubst().DodatkiSkryptThen(function(wikikod){
			if(wikikod){
				var gadget_numerowanie=gadget_numerowanie_na_stronie_zbiorczej;
				var gadget_numerowanie_normalne=gadget_numerowanie_normalne_na_stronie_zbiorczej;
				var gadget_numerowanie_asynchroniczne=gadget_numerowanie_asynchroniczne_na_stronie_zbiorczej;
			}else{
				var gadget_numerowanie=gadget_numerowanie_nie_na_stronie_zbiorczej;
				var gadget_numerowanie_normalne=gadget_numerowanie_normalne_nie_na_stronie_zbiorczej;
				var gadget_numerowanie_asynchroniczne=gadget_numerowanie_asynchroniczne_nie_na_stronie_zbiorczej;
			}
			return Promise.resolve([gadget_numerowanie,gadget_numerowanie_normalne,gadget_numerowanie_asynchroniczne]);
		});
		return promise_numerowanie;
	}
	
	var promise_numerowanie=this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu();
	
	//gadget_numerowanie=((gadget_numerowanie!==undefined)?gadget_numerowanie:true);
	
	this.NumerowanieNaglowkowStronZObiektami=function(id_numerowanie,prefix){
		var fun_hnumer=DodatkiSkrypt.Szereg.HNumer.LiczonyHNumer();
		var numeracja=new Array();
		var czy_numerowac=false;
		$(id_numerowanie).find('.mw-headline').each(function(i,element){
			var szablon_spec=$(element).parents('.rodzic_szablon_subst_js, .artykułsubst, .strona_start');
			var szablon_spec_w_drzewie=$(id_numerowanie).find(szablon_spec);
			if((szablon_spec.length>0)&&(szablon_spec_w_drzewie.length>0)){return;}
			/**/
			var szablon=$(element).parent().find('.mw-numbering-main-page, .numeracja');
			if(szablon.length>0){return;}
			var parent=element.parentNode;
			if(!parent){return;}
			czy_numerowac=true;
			var poziom_naglowka=DodatkiSkrypt.Szereg.HNumer.PoziomNapisuWprowadzeniaTekstu(parent);
			var numer=fun_hnumer(poziom_naglowka);
			var czy_ponumerowany=$(parent).children('.numeracja');
		    if(numeracja.length<numer){numeracja.push(1);}
		    else if(numeracja.length>numer){numeracja=numeracja.slice(0,numer);numeracja[numer-1]+=parseInt(1);}
			else if(numeracja.length==numer){numeracja[numer-1]+=parseInt(1);};
		    if(czy_ponumerowany.length==0){
		    	var span=document.createElement('span');
			    span.setAttribute('class',"numeracja");
			    span.innerHTML=((prefix!=="")?(prefix+"."):"")+numeracja.join('.')+".&nbsp;";
			    parent.insertBefore(span,parent.firstChild);
		    }else{
		    	czy_ponumerowany[0].innerHTML=((prefix!=="")?(prefix+"."):"")+numeracja.join('.')+".&nbsp;";
		    }
		});
		return czy_numerowac;
	}
	this.NumerowanieNaglowkowStron=function(id_numerowanie,prefix,czy_bez_prefix){
		return promise_numerowanie.DodatkiSkryptThen(function(data){
			var gadget_numerowanie=data[0];var gadget_numerowanie_normalne=data[1];var gadget_numerowanie_asynchroniczne=data[2];
			if(!gadget_numerowanie){return;}
			if(!czy_bez_prefix){prefix="";};
			var tab_promise=new Array();
			var czy_numerowac=zmienna_this.NumerowanieNaglowkowStronZObiektami(id_numerowanie,prefix);
			var strona_start=$(id_numerowanie).find('.strona_start');
			if(strona_start.length>0){
				for(var i=0;i<strona_start.length;++i){
					var artykulsubst=$(strona_start[i]).find(".artykułsubst");
					var obiekt;
					if(artykulsubst.length>0){
						obiekt=$(artykulsubst).find('.zawartość')[0];
					}else{
						obiekt=$(strona_start[i]).find('.ciało_strona')[0];
					}
					if(obiekt){
						var prefix2=((strona_start.length==1)?((!czy_numerowac)?prefix:""):"");
						if(prefix2!=""){
							var promise=zmienna_this.NumerowanieNaglowkowStron(obiekt,prefix2,czy_bez_prefix);
							tab_promise.push(promise);
						}else if(artykulsubst.length>0){
							var str_adres=$(artykulsubst).find('.adres');
							if((str_adres.length>0)&&(obiekt!=null)){
								if(!gadget_numerowanie_normalne){
									var adres=str_adres[0].innerHTML.trim();
									var artykul=DodatkiSkrypt.Scribunto.Nazwy["NAZWAARTYKUŁUKSIĄŻKI"](adres);
									var aktualna_strona=DodatkiSkrypt.Scribunto.Nazwy["PEŁNANAZWASTRONY"](adres);
									var promise=Promise.all([artykul,aktualna_strona]).DodatkiSkryptThen(function(data){
										var promise_numerowanie_domyslne=promise_numerowanie;
										if(gadget_numerowanie_asynchroniczne){
											promise_numerowanie=zmienna_this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu(aktualna_strona);
										};
										return promise_numerowanie.DodatkiSkryptThen(function(data_promise_numerowanie){
											return zmienna_this.PreparujStronyJednostek(obiekt,data[0],data[1],true).DodatkiSkryptThen(function(){
												return zmienna_this.NumerowanieNaglowkowStron(obiekt,"");
											}).DodatkiSkryptFinally(function(){
												promise_numerowanie=promise_numerowanie_domyslne;
											});
										});
									}).DodatkiSkryptCatch(function(data){
										return zmienna_this.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix);
									});
									tab_promise.push(promise);
								}else{
									var promise=zmienna_this.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix);
									tab_promise.push(promise);
								}
							}else{
								var promise=zmienna_this.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix);
								tab_promise.push(promise);
							}
						}else{
							var promise=zmienna_this.NumerowanieNaglowkowStron(obiekt,"",czy_bez_prefix);
							tab_promise.push(promise);
						}
					}
				}
			}
			return Promise.all(tab_promise);
		});
	}
	this.FunkcjaZdarzenStronyGlownejPodrecznika=function(){
		console.log("TYTAN")
	}
	this.NumerowanieStronGłównychPodręcznikowWedlugZebranychDanych=function(id_numerowanie,json){
		console.log(json,"GIGAT")
		function JSONDane(json,numer_porzadkowy){
			for(var rozdzial in json){
				var tab_rozdzial=json[rozdzial];
				for(var numer_rozdzialu in tab_rozdzial){
					var tab_numer_rozdzial=tab_rozdzial[numer_rozdzialu];
					for(var artykul in tab_numer_rozdzial){
						var tab_artykul=tab_numer_rozdzial[artykul];
						for(var numer_artykulu in tab_artykul){
							var tab_numer_artykulu=tab_artykul[numer_artykulu];
							for(var i in tab_numer_artykulu){
								var tab_i=tab_numer_artykulu[i];
								if(tab_i["numer"]==numer_porzadkowy){
									var czy_podreczniku=tab_i["czy w podręczniku"];
									var zebrane_dane={
										"rozdział":DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(rozdzial)))),
										"numer rozdziału":numer_rozdzialu,
										"artykuł":((!czy_podreczniku)?(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(artykul)))))):(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(artykul)))))),
										"numer artykułu":numer_artykulu,
										"link":((tab_i["link"])?(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(tab_i["link"])))):undefined),
										"przekierowanie":((tab_i["przekierowanie"]!==undefined)?
((!czy_podreczniku)?(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["przekierowanie"])))))):(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["przekierowanie"])))))):undefined),
										"pełna nazwa książki":((tab_i["pełna nazwa książki"]!=undefined)?
(DodatkiSkrypt.Szereg.Kodowanie.EncodeWiki(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tab_i["pełna nazwa książki"])))))):undefined),
										"kod języka":tab_i["kod języka"],
										"kod projektu":tab_i["kod projektu"],
										"nazwa":((tab_i["nazwa"]!==undefined)?(DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(tab_i["nazwa"]))))):undefined),
										"spis treści":tab_i["spis treści"],
										"dodane":tab_i["dodane"],
										"czy w podręczniku":czy_podreczniku,
									};
									return zebrane_dane;
								}
							}
						}
					}
				}
			}
			return null;
		}
		var promise=DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DodatkiSkrypt.Info,new Array("page")).DodatkiSkryptThen(function(){
			var j=1;
			var dane;var yes=true;
			var RozdzialBezNumeracji=function(tekst){
				var czy=/^[\d\.]+\s+/g.test(tekst)||/^[\d\.]+\s*$/g.test(tekst);
				if(czy){
					var num=tekst.match(/^([\d\.]+)/g).toString();
					var tab=num.split(".");
					if(tab.length==1){
						if(/^\d+$/g.test(num)){
							return tekst;
						}
					}else{
						if(tab[tab.length-1]==""){tab.splice(tab.length-1,1);};
					}
					var tak=true;
					for(var i=0;i<tab.length;++i){
						tak=tak&&(/^\d+$/g.test(tab[i]));
						if(!tak){break;};
					}
					if(tak){
						tekst=tekst.replace(/^[\d\.]+\s*/g,"");
					}
				}
				return tekst;
			}
			var OperacjeNaTestowychElementach=function(element){
				var iterator=DodatkiSkrypt.Szereg.Html.IteratorDzieciPoElemencieHtml(element)
				var __element;
				do{
					__element=iterator();
					if(__element){
						if(!__element.tagName){
							var text=__element.nodeValue;
							text=RozdzialBezNumeracji(text);
							text=text.replace(/^\d+\s+/g,"");
							text=text.replace(/^\s*[IVXL]+\s+/g,"");
							text=text.replace(/\s*[0-9a-zA-Z]+\)\s+/g,"")
							__element.nodeValue=text;
							break;
						}
					}
				}while(__element);
			}
			var Numerowanie=function(element,tag,tekst,pierwsze_dziecko,nazwa,czy_edit){
				dane=((yes)||(!dane))?JSONDane(json,j):dane
				console.log(dane,"TYTAN")
				if(dane===null){return;}
				var Numer=function(dane){
					var numer_rozdzialu=dane["numer rozdziału"];
					var numer_artykulu=dane["numer artykułu"];
					var numer=((numer_rozdzialu!="")&&(numer_artykulu!=""))?(numer_rozdzialu+"."+numer_artykulu):((numer_rozdzialu)?numer_rozdzialu:numer_artykulu);
					if(numer==""){return null;}
					numer="("+numer+") ";
					return numer;
				}
				if(dane["dodane"]){
					yes=true;
					++j;
					dane=((yes)||(!dane))?JSONDane(json,j):dane;
					if(dane==null){return;}
				}
				var spis_tresci=dane["spis treści"];
				var rozdzial=dane["rozdział"];
				var artykul=dane["artykuł"];
				var przekierowanie=dane["przekierowanie"];
				var numer_artykulu=dane["numer artykułu"];
				if((spis_tresci===undefined)&&(rozdzial=="Spis treści")&&(artykul=="")&&(numer_artykulu=="")){
					++j;
					dane=JSONDane(json,j);
					if(dane===null){return;}
					rozdzial=dane["rozdział"];
					artykul=dane["artykuł"];
					przekierowanie=dane["przekierowanie"];
				}
				var NumerujLinki=function(dane,czy_a){
					var numer=Numer(dane);
					if(!numer){return;};
					var tak=false;
					$(element).parents('.mw-headline, div.center, h1, h2, h3, h4, h5, h6').each(function(i,element){
						$(element).find('> .mw-numbering-main-page, > .link > .mw-numbering-main-page').each(function(i,element){
							if(element.innerHTML==numer){tak=true;}
						});
					});
					if(tak){return;};
					var span=document.createElement('span');
					$(span).addClass('mw-numbering-main-page');
					span.innerHTML=numer;
					if($(element).hasClass('mw-headline')){
						element2=$(element).parent();
						if(element2.length>0){element=element2[0];};
					}
					if(!czy_a){
						$(element).before(span);
					}else{
						element.insertBefore(span,(pierwsze_dziecko)?pierwsze_dziecko:element.firstChild);
					}
				}
				if(tag=="A"){
					
					tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieArtykularnychZnakowych(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Kodowanie.DecodeHtml(tekst)));
					var czy_poza=(!dane["czy w podręczniku"]);
					var kod_jezyka=dane["kod języka"];var kod_projektu=dane["kod projektu"];
					var link=dane["link"];
					if((czy_poza)&&(((kod_jezyka!=null)&&(kod_jezyka!=""))||((kod_projektu!=null)&&(kod_projektu!="")))&&(link)&&(link!=(przekierowanie||artykul))){
						console.log(tekst,"TYTAN2")
						var nazwa=dane["nazwa"];
						var przestrzenie_alternatywne={
							"w":"wikipedia",
							"b":"wikibooks",
							"wikt":"wiktionary",
							"q":"wikiquote",
							"s":"wikisource",
							"voy":"wikivoyage",
							"n":"wikinews",
							"v":"wikiversity",
						};
						var przestrzenie_poza={
							"commons":"wikimedia",
							"species":"wikimedia",
						};
						link=link.replace(/^\s*:/g,"");
						var klucz=link.match(/^([^:]*)/g);
						var artykul_z_kodami=link.replace(/^([^:]*:)(.*)$/g,function(s,a,b){
							return DodatkiSkrypt.Szereg.Styl.PoprawMianoNazwyStrony(b);
						});
						var projekt=przestrzenie_alternatywne[klucz];
						var href;
						if(projekt){
							href="https://"+((klucz!="b")?"pl":"en")+"."+projekt+".org/wiki/"+artykul_z_kodami;
						}else{
							if(!przestrzenie_poza[klucz]){
								href="https://"+klucz+".wikibooks.org/wiki/"+artykul_z_kodami;
							}else{
								href="https://"+klucz+"."+przestrzenie_poza[klucz]+".org/wiki/"+artykul_z_kodami;
							}
						}
						console.log("S"+href+"S","S"+tekst+"S","TYTAN3",(href==tekst))
						if(href==tekst){
							NumerujLinki(dane);
							yes=true;
							++j;
						};
						//});
					}else{
						var pelna_nazwa_ksiazki=dane["pełna nazwa książki"];
						var numer_rozdzialu=dane["numer rozdziału"];
						var numer_artykulu=dane["numer artykułu"];
						var nazwa_artykulu=dane["nazwa"];
						/**/
						var artykul_edit;
						if(czy_edit){
							artykul_edit=artykul.replace(/^([^#]*)#(.*)$/g,"$1");
							artykul_edit=artykul_edit.replace(/^(.*)\?\s*\a+[\a\s]*=.*$/g,"$1");
						}
						/**/
						var nazwa=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(nazwa))));
						tekst=((czy_poza)?(DodatkiSkrypt.Szereg.Napis.OdWielkiejPierwszaLiteraTekstu(tekst)):tekst);
						console.log(artykul,tekst,"TYTAN1")
						console.log(nazwa,nazwa_artykulu,"TYTAN2")
						console.log(przekierowanie,tekst,"TYTAN3")
						console.log(pelna_nazwa_ksiazki,tekst,"TYTAN4");
						if(((((artykul)&&(artykul!=""))||((numer_artykulu)&&(numer_artykulu!="")))&&(((!czy_edit)&&(artykul==tekst)&&((!nazwa_artykulu)||(nazwa==nazwa_artykulu)))||((czy_edit)&&(artykul_edit==tekst)&&((!nazwa_artykulu)||(nazwa==nazwa_artykulu)))))||(((!czy_edit)&&(przekierowanie)||(pelna_nazwa_ksiazki))&&(((((!czy_poza)&&((przekierowanie===undefined)||(((przekierowanie!=null)&&(przekierowanie!=""))!=""))))&&((pelna_nazwa_ksiazki?(pelna_nazwa_ksiazki+"/"):"")+(przekierowanie||artykul))||(pelna_nazwa_ksiazki))==tekst))){
							NumerujLinki(dane);
							/**/
							$(element).parents('ul,ol').first().each(function(i,element){
								$(element).addClass('css_numersubst');
							});
							$(element).parents('dd, li, span:not(.link), b, i').first().each(function(i,element){
								OperacjeNaTestowychElementach(element);
							});
							/**/
							$(element).parents('div.toc_ogólnie_spis.toc_artykuł').find('a > span.tocnumber').each(function(i,element){
								var numer_toc=element.innerHTML;
								var numer=numer_rozdzialu+(((numer_rozdzialu!="")&&(numer_artykulu!=""))?("."+numer_artykulu):numer_artykulu);
								numer=numer+(((numer!="")&&(numer_toc!=""))?("."+numer_toc):numer_toc);
								element.innerHTML=numer;
							});
							yes=true;
							++j;
						}
					}
				}else{
					tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(DodatkiSkrypt.Szereg.ZmienianieKodoweZnakoweSpecjalnePrzedOdpowiednieZnaki(tekst)));
					//rozdzial=DodatkiSkrypt.Szereg.Napis.UsuwanieApostrofowe(rozdzial);
					tekst=RozdzialBezNumeracji(tekst);
					tekst=DodatkiSkrypt.Szereg.Napis.UsuwanieBezbarwnychZnakowych(tekst);
					console.log(rozdzial,tekst,(rozdzial==tekst),"TYTAN11")
					if((rozdzial==tekst)&&(artykul=="")&&(((spis_tresci>0)&&(($(element).hasClass('mw-headline'))||($(element).hasClass('center'))/*||($(element).parents('.center,center').length>0)*/||(tag=="CENTER")))||((spis_tresci<0)&&(/*($(element).parents('li, dd').length>0)||*/(tag=="DD")||(tag=="LI")||(tag=="DT")))||((spis_tresci==0)&&(/*($(element).parents('p,i,b').length>0)||*/(tag=="P")||(tag=="I")||(tag=="B")||(tag=="CENTER")||(tag=="TD")||(tag=="TH")||(tag=="CAPTION"))))){
						NumerujLinki(dane,true);
						if(tag=="LI"){
							$(element).parents('ul,ol').first().each(function(i,element){
								$(element).addClass('css_numersubst');
							});
							$(element).each(function(i,element){
								OperacjeNaTestowychElementach(element);
							})
						}
						yes=true;
						++j;
					}else{
						yes=false;
					}
				}
			}
			var FunkcjaZnacznikaP=function(element){
				var str_p=$(element).parents("P").first();
				if(str_p.length>0){
					var klon=document.createElement('div');
					var czy_w_nim_a=false;
					var pierwsze_dziecko=undefined;
					for (const element_dzieci of str_p[0].childNodes){
						var nowy_tag=(element_dzieci.tagName)?(element_dzieci.tagName.toUpperCase()):null;
						if(nowy_tag!=="BR"){
							if(!pierwsze_dziecko){
								pierwsze_dziecko=element_dzieci;
							}
							if((element_dzieci==element)||($(element_dzieci).find(element).length>0)){czy_w_nim_a=true;}
							klon.appendChild(element_dzieci.cloneNode(true));
						}else{
							if(czy_w_nim_a){
								czy_w_nim_a=undefined;
								if(!$(klon.firstChild).hasClass('mw-numbering-main-page')){
									var tekst_rozdzialu=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(klon.innerHTML));
									var element_rozdzialu=str_p[0];
									Numerowanie(element_rozdzialu,"P",tekst_rozdzialu,pierwsze_dziecko);
									break;
								}
							}
							pierwsze_dziecko=undefined;
							klon=document.createElement('div');
						}
					}
					if(czy_w_nim_a){
						if(!$(klon.firstChild).hasClass('mw-numbering-main-page')){
							var tekst_rozdzialu=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(klon.innerHTML));
							var element_rozdzialu=str_p[0];
							Numerowanie(element_rozdzialu,"P",tekst_rozdzialu,pierwsze_dziecko);
						}
					}
				}
			}
			var bookname=DodatkiSkrypt.Info.page.bookname;
			var namespace=DodatkiSkrypt.Info.page.namespace;
			bookname=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(bookname);
			namespace=DodatkiSkrypt.Szereg.Kodowanie.DecodeWiki(namespace);
			$('#mw-content-text .mw-parser-output').each(function(i,element){
				var iterator=DodatkiSkrypt.Szereg.Html.IteratorPrzodkowyPoElemencieHtml(element);
				while(true){
					var element=iterator();
					if(!element){break;};
					(function(element){
						var tag_name=element.tagName;
						var tag;
						if(tag_name){tag=tag_name.toUpperCase();}else{tag=null;}
						var tekst;
						if(!tag){
							FunkcjaZnacznikaP(element);
						}else if($(element).hasClass('mw-headline')){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
					
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if((tag=="DIV")&&($(element).hasClass('center'))){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if((tag=="TD")||(tag=="TH")||(tag=="CAPTION")){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
					
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if((tag=="P")||(((tag=="B")||(tag=="I"))&&($(element).find('br').length==0))){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
					
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if((tag=="DD")||(tag=="DT")){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							var czy_li=false;
							for(var begin=div.firstChild;begin!=null;begin=begin.nextSibling){
								if(begin.tagName!=null){
									var tag_dziecko=begin.tagName.toUpperCase();
									if((!czy_li)&&((tag_dziecko=="DL")||(tag_dziecko=="DD"))){
										czy_li=true;
									}
									if(czy_li){
										div.removeChild(begin);
									}
								}
							}
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							Numerowanie(element,tag,tekst);
						}else if(tag=="LI"){
							var div=document.createElement('div');
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							var czy_li=false;
							for(var begin=div.firstChild;begin!=null;begin=begin.nextSibling){
								if(begin.tagName!=null){
									var tag_name=begin.tagName.toUpperCase();
									if((!czy_li)&&((tag_name=="UL")||(tag_name=="OL"))){
										czy_li=true;
									}
									if(czy_li){
										div.removeChild(begin);
									}
								}
							}
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							if(!tekst){return;}
							Numerowanie(element,tag,tekst);
						}else if(tag=="CENTER"){
							var div=document.createElement('div')
							div.innerHTML=element.innerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							tekst=DodatkiSkrypt.Szereg.Styl.UsuwanieZnacznikoweHTMLBezModyfikacjiTekstu(DodatkiSkrypt.Szereg.Styl.UsuwanieStyloweHTML(div.innerHTML));
							if(!tekst){return;}
							Numerowanie(element,tag,tekst);
						}else if(tag=="A"){
							FunkcjaZnacznikaP(element);
							var editsection=$(element).parents('.mw-editsection').parents('h1, h2, h3, h4, h5, h6');
							if(editsection.length>0){return;}
							if($(element).hasClass('a.external')){return;};
							var div=document.createElement('div');
							div.innerHTML=element.outerHTML;
							$(div).find('a.gadget-replylinks-reply').remove();
							var element_a=$(div).children('a')[0];
							if(!element_a){return;};
							var href=element_a.getAttribute("href");
							if(href=="#"){return;}	
							if(!href){href=""};
							tab_href=DodatkiSkrypt.Szereg.Napis.UrojoneStrony(href);
							href=tab_href.href;
							var czy_edit=tab_href.edit;
							if((namespace=="")||(namespace=="Wikijunior")){
								href=href.replace(/^([^\/]*)(\/)(.*)$/g,function(s,s1,s2,s3){
									if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){
										return s3;
									}
									return s;
								});
							}else if(namespace=="Wikipedysta"){
								href=href.replace(/^([^\/]*\/[^\/]*)(\/)(.*)$/g,function(s,s1,s2,s3){
									if(s1==((namespace!="")?(namespace+":"+bookname):bookname)){
										return s3;
									}	
									return s;
								});
							}
							tekst=href;
							var nazwa=element.innerHTML;
							Numerowanie(element,tag,tekst,undefined,nazwa,czy_edit);
						}else{return;};
					})(element);
				}
			});
			return Promise.resolve();
		});
		return promise;
	}
	this.NumerujRozdzialyArtykulu=function(element,artykul,aktualna_strona){
		return promise_numerowanie.DodatkiSkryptThen(function(data){
			var gadget_numerowanie=data[0];var gadget_numerowanie_normalne=data[1];var gadget_numerowanie_asynchroniczne=data[2];
			if(!gadget_numerowanie){return;}
			artykul=(artykul)?artykul:DodatkiSkrypt.Info.page.articlename;
			aktualna_strona=(aktualna_strona)?aktualna_strona:DodatkiSkrypt.Info.page.fullname;
			var id_numerowanie=((element)?(element):(document.querySelector('#mw-content-text .mw-parser-output')));
			if(!gadget_numerowanie_normalne){
				var promise_numerowanie_domyslne=promise_numerowanie;
				if(gadget_numerowanie_asynchroniczne){
					promise_numerowanie=zmienna_this.UstalanieZmiennychNumerowanieNapisoweWprowadzeniaTekstu(aktualna_strona);
				};
				var promise=promise_numerowanie.DodatkiSkryptThen(function(){
					return zmienna_this.PreparujStronyJednostek(id_numerowanie,artykul,aktualna_strona,true).DodatkiSkryptThen(function(dane){
						if((!dane)
			        	     ||(($(id_numerowanie).hasClass('.rodzic_szablon_subst_js'))
			            	          ||($(id_numerowanie).hasClass('.szablon_subst_js'))
			                	          ||($(id_numerowanie).parents('.rodzic_szablon_subst_js, .szablon_subst_js').length>0)
			            	)
						){return;}
						var span=document.createElement('span');
						span.innerHTML=dane+".&nbsp;";
						span.setAttribute("id","mw-article-numbering");
						var firstheading=document.querySelector('#firstHeading');
						firstheading.insertBefore(span,firstheading.firstChild);
						return Promise.resolve();
					})
				}).DodatkiSkryptFinally(function(){
					promise_numerowanie=promise_numerowanie_domyslne;
				});
				return promise;
			}else{
				return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"");
			}
		});
	}
	this.PreparujStronyJednostek=function(id_numerowanie,artykul,aktualna_strona,czy_bez_prefix){
		var artykul_parametr=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(artykul);
		var aktualna_strona_parametr=DodatkiSkrypt.Szereg.Styl.SpecjalneKodyWiki(aktualna_strona).replace(/[\s_]+/g," ");
		var promise=DodatkiSkrypt.api.ZadaniaApi({
			action: 'parse',
			format: 'json',
			prop: 'text',
			title: aktualna_strona,
			text: '{{#if:{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}|{{#if:{{#ifeq:{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|'+aktualna_strona_parametr+'|tak|{{#ifeq:{{ArtykułSubst|pobierz pełną nazwę książki=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|{{#if:{{#invoke:Techniczne|PrzekierowanieDoStrony|{{msg:PEŁNANAZWAKSIĄŻKI|'+aktualna_strona_parametr+'}}|wyspecjalizowana=tak}}|{{#invoke:Techniczne|PrzekierowanieDoStrony|{{msg:PEŁNANAZWAKSIĄŻKI|'+aktualna_strona_parametr+'}}|wyspecjalizowana=tak}}|{{msg:PEŁNANAZWAKSIĄŻKI|'+aktualna_strona_parametr+'}}}}|tak}}}}|{{#if:{{#invoke:StronicowyParser|CzyStronaSubst}}|{{#switch:{{NAMESPACE}}||Wikijunior={{PobierzNumerNagłówka|{{msg:NAZWAARTYKUŁUKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}|{{Ns:User}}|{{Ns:Project}}={{#if:{{NAZWAPRZESTRZENIKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|{{PobierzNumerNagłówka|{{msg:NAZWAARTYKUŁUKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}}}}}|{{#if:{{#invoke:StronicowyParser|CzySpisTreści|artykuł='+artykul_parametr+'|wyspecjalizowana=tak}}|{{#switch:{{NAMESPACE}}||Wikijunior={{#tag:nowiki|{{#invoke:Techniczne|EncodeParametr|{{#invoke:StronicowyParser|PobierzDaneKsiążki|spis='+artykul_parametr+'|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|wyspecjalizowana=tak}}}}}}|{{Ns:User}}|{{Ns:Project}}={{#if:{{NAZWAPRZESTRZENIKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|{{#tag:nowiki|{{#invoke:Techniczne|EncodeParametr|{{#invoke:StronicowyParser|PobierzDaneKsiążki|spis='+artykul_parametr+'|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|wyspecjalizowana=tak}}}}}}}}}}|{{#switch:{{NAMESPACE}}||Wikijunior={{PobierzNumerArtykułu|'+artykul_parametr+'|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}|{{Ns:User}}|{{Ns:Project}}={{#if:{{NAZWAPRZESTRZENIKSIĄŻKI|bez dodatkowych sprawdzeń=tak}}|{{PobierzNumerArtykułu|'+artykul_parametr+'|nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki={{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}|bez kategorii stronicowych=tak}}}}}}}}}}|STRONASTART}}|nie}}',
			disabletoc: true,
			disablelimitreport: true,
			disableeditsection: true,
			disablestylededuplication: true,
			contentmodel: 'wikitext',
		},null,true,null).DodatkiSkryptThen(function(data){
			var dane=data.parse.text["*"];
			console.log(dane,"TYTAN")
			if(dane==null){console.log("Uzyskano w zapytaniu błąd skryptów Lua.");return;}else if(dane=="nie"){return;}
			/**/
			if(dane!="STRONASTART"){
				if((dane!=null)&&(dane!="")&&(dane!="(błąd)")){
					if((!/^[\[].*[\]]$/g.test(dane))&&(!/^[{].*[}]$/g.test(dane))){
						console.log("Numer artykułu: "+aktualna_strona+", jest: "+dane+".");
						return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,dane,czy_bez_prefix).then(function(){return dane});
					}else{
						dane=DodatkiSkrypt.Szereg.Tekst.Decode(dane);
						var json=JSON.parse(dane);
						if(json){
							console.log("Numerowanie strony głównej podręcznika na podstawie zebranych danych według tabeli JSON.");
							return zmienna_this.NumerowanieStronGłównychPodręcznikowWedlugZebranychDanych(id_numerowanie,json).DodatkiSkryptThen(function(){
								console.log("NUMEROWANIE A")
								return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"");
							}).DodatkiSkryptThen(function(){return ""});
						}else{
							console.log("Strona: "+aktualna_strona+", nie ma numeru.")
							return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"").then(function(){return ""});
						}
					}
				}else{
					console.log("Strona: "+aktualna_strona+", nie ma numeru.")
					return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"").then(function(){return ""});
				}
			}else{
				console.log("Strony, z innym parametrem strony symulowanych, niż aktualna.");
				return zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"").then(function(){return ""});
			}
		}).DodatkiSkryptCatch(function(error){return Promise.reject(error);});
		return promise;
	}
}
var promise=new Promise(function(resolve,reject){
	function Czekaj(){
		if(window.DodatkiSkrypt){
			resolve(window.DodatkiSkrypt);
		}else{
			setTimeout(Czekaj,0);
		}
	}	
	Czekaj();
});
promise.then(function(DodatkiSkrypt){
	return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](window,new Array("gConfig")).DodatkiSkryptThen(function(){
		NumerSubst.numer=new NumerSubst.NumerowanieNaglowkow();
		return DodatkiSkrypt.Szereg.Zmienne["CzekajNaZbiórZmiennych"](DodatkiSkrypt.Info,new Array("page")).DodatkiSkryptThen(function(){
			DodatkiSkrypt.Scribunto.StronicowyParser.CzyStronaSubst().DodatkiSkryptThen(function(wikikod){
				if(!wikikod){
					$(document).DodatkiSkryptReady(function(){
						return NumerSubst.numer.NumerujRozdzialyArtykulu();
					});
				}
			});
		});
	});
});
window.NumerSubst=NumerSubst;
})(mediaWiki,jQuery);