Wikipedysta:Persino/Gadget-StronicowyParser.js/NumerSubst.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.
mw.loader.using('ext.gadget.gConfig', function(){
let globalne_zmienne=this;
StronicowyParser.NumerowanieNaglowkow=function(){
	let gadget_numerowanie=undefined;
	if((globalne_zmienne.gConfig!==undefined)&&(globalne_zmienne.gConfig.register!==undefined)&&(globalne_zmienne.gConfig.get!==undefined)){
  		mw.messages.set({
			'NumerSubst-numerowanie': 'Włącz numerowanie nagłówków.',
			'NumerSubst-name': 'Numerowanie nagłówków',
			'NumerSubst-description-page': 'Wikibooks:StronicowyParser/NumerSubst',
  		});
  		gConfig.register('NumerSubst', {name: mw.msg('NumerSubst-name'), descriptionPage: mw.msg('NumerSubst-description-page')}, [
		{
			name: 'numerowanie',
			desc: mw.msg('NumerSubst-numerowanie'),
			type: 'boolean',
			deflt: true,
		    legacy: [window, 'wb_NumerSubst-numerowanie']
		}]);
		gadget_numerowanie=(gConfig.get('NumerSubst', 'numerowanie')==true);
	}
	
	//let podglad=document.querySelector('body:not(.action-view)');
	//if(podglad){return;}
	
	gadget_numerowanie=((gadget_numerowanie!==undefined)?gadget_numerowanie:true);
	let zmienna_this=this;
    this.NumerowanieNaglowkowStron=async function(id_numerowanie,prefix,tab_promise){
    	await StronicowyParser.muteks.zablokuj(true);
		var headline=id_numerowanie.getElementsByClassName('mw-headline');
		//if((headline==null)||(headline.length==0)){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.zwolnij();};return;}
		
		let aktualna_strona=StronicowyParser.pageinfo.fullname;
		let artykul=StronicowyParser.pageinfo.articlename;
		
		let namespacenumber = StronicowyParser.pageinfo.namespacenumber;
		let bookname=StronicowyParser.pageinfo.bookname;
		let diff_brudnopis=/^Brudnopis\/[^\/]*\/[^\/]*$/g;
		let diff_user=/^[^\/]*\/[^\/]*$/g;
		let wikijunior_mainpage="Strona_główna";
		let test_main_page=(((namespacenumber !== 0)  && (namespacenumber != 104) && ( namespacenumber != 4) && (namespacenumber != 2))  
	    	 || ((namespacenumber == 104) && (bookname == wikijunior_mainpage)) 
	    	|| ((namespacenumber == 4) && (! diff_brudnopis.test(bookname)))
	    	|| ((namespacenumber == 2) && (! diff_user.test(bookname)))
	    );

		let json_wikikod=null;
		if((prefix=="")&&(artykul=="")&&(!test_main_page)){
			//if(tab_promise){tab_promise.wygeneruj(1);};
			await StronicowyParser.api.ZadaniaApi({
				action: 'expandtemplates',
				format: 'json',
				prop: 'wikitext',
				title: aktualna_strona,
				text: '{{#invoke:StronicowyParser|PobierzDaneKsiążki||nagłówek=tak|poziomowo=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki='+aktualna_strona+'|wyspecjalizowana=tak}}',
				smaxage: 600,
				maxage: 600,
			}).then(function(data){
			//	await StronicowyParser.muteks.zablokuj(true);
				let wikikod=data.expandtemplates.wikitext;
				json_wikikod=JSON.parse(wikikod);
			//	StronicowyParser.muteks.odblokuj();
			//	if(tab_promise){tab_promise.zwolnij();}
			}).catch(()=>{});
		}
		function CzyMaNumeracje(){
			if(json_wikikod){
				for(let p in json_wikikod){
					for(let s in json_wikikod[p]){
						for(let f in json_wikikod[p][s]){
							if(((f!="")?true:false)){return true;}
						}
					}
				}
			}
			return false;
		}
		let czy_ma_numeracje=CzyMaNumeracje();
		console.log(json_wikikod,"MAMUT1");
		if(!czy_ma_numeracje){json_wikikod=null;}
		console.log(json_wikikod,czy_ma_numeracje,"MAMUT2");
		let hnumer=new StronicowyParser.HNumer();
		
		let fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
		let fun_hnumer_2=new Array();
		let fun_hnumer_3=new Array();
		let fun_strona_hnumer=new Array();
		let numeracja=new Array(0);
		let numeracja_2=new Array();
		let numeracja_3=new Array();
		
		let poziom_naglowka_podrecznika=undefined;
		let tab_spis_tresci={"Spis treści":true,}
		let artykuly_ze_spisem_tresci={"Spis treści":true,}
		let fullname=StronicowyParser.pageinfo.fullname;
		let tak=false;
		let tak_poprzednie=Array();
		let poziom_naglowka_spisu_tresci=new Array();
		let poziom_naglowka_spisu_tresci2=new Array(false);
		let numeracja_strona=Array();
		let pierwszy_naglowek=true;
		let jeden_glowny_naglowek=false;
		
		let pierwszy_naglowek_2=new Array();
		let jeden_glowny_naglowek_2=new Array();
		
		let headline_artykul=$('#mw-content-text .mw-parser-output .mw-headline');
		
		let prefix2=Array();let artykul2=Array();let jeden_glowny_naglowek2=Array();let pierwszy_naglowek2=Array();
        
        let strona_start_poprzednie=Array();
        
        let strona_start=$('.strona_start');
		let czy_id_numerowanie=strona_start.find(id_numerowanie);
		let prefix_strona_start=undefined;;
		let artykul_strona_start=artykul;
		
		let main_spis_tresci=undefined;
		
		async function Headline(i,element_headline){
			//let element_headline=headline[i];
			let parent=element_headline.parentNode;
			if(!parent){
				return;
			}else{
				let h=parent.tagName.toUpperCase();
				if(/^H\d+$/g.test(h)){
					let numer=h.replace(/^H/g,"");
					numer=parseInt(numer);
					if((isNaN(numer))||(numer<1)||(numer>6)){
						return;
					}	
				}else{
					return;
				}
			}
			let strona_aktualna=$('.strona_start').find(element_headline).parents('.strona_start');
			async function PrefixNumeracji(){
				let tab_promise=new StronicowyParser.GenerowaneObiekty(1);
				StronicowyParser.api.ZadaniaApi({
					action: 'expandtemplates',
					format: 'json',
					prop: 'wikitext',
					title: aktualna_strona,
					text: '{{ArtykułSubst|pobierz pełną nazwę artykułu=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
					smaxage: 600,
					maxage: 600,
				}).then(async function(data){
						let artykul_subst=data.expandtemplates.wikitext;
                        if(artykul_subst!==fullname.replace(/[\s_]+/g," ")){
							artykul_strona_start=(!/^[^\/]*$/g.test(artykul_subst))?(artykul_subst.replace(/^[^\/]*\/(.*)$/g,"$1")):"";
							tab_promise.wygeneruj(1);
							StronicowyParser.api.ZadaniaApi({
								action: 'expandtemplates',
								format: 'json',
								prop: 'wikitext',
								title: artykul_subst,
								text: '{{PobierzNumerArtykułu|'+artykul_strona_start+'|nagłówek=tak|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
								smaxage: 600,
								maxage: 600,
							}).then(async function(data){
									wikikod=data.expandtemplates.wikitext;
									if(!/^\s*$/g.test(wikikod)){
										prefix_strona_start=wikikod+".";
									}else{
										prefix_strona_start="";
									}
									tab_promise.zwolnij();
							}).catch(()=>{tab_promise.zwolnij();});
                        }
                        tab_promise.zwolnij();
				}).catch(()=>{tab_promise.zwolnij();});
				
				return StronicowyParser.CzekajNaZakaczenie(tab_promise);
				
			}
			let elem=$(element_headline).parents(".strona_start");
			if((elem!==null)&&(elem.length>0)&&(((strona_start_poprzednie.length>0)&&(strona_start_poprzednie[strona_start_poprzednie.length-1]!==elem[0]))||(strona_start_poprzednie.length==0))){
				strona_start_poprzednie.push(elem[0]);
				
				fun_strona_hnumer.push(fun_hnumer);
				fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
				numeracja_strona.push(numeracja);
				
				numeracja=new Array();
				
				tak_poprzednie.push(tak);
				tak=false;
				
				pierwszy_naglowek2.push(pierwszy_naglowek);
				pierwszy_naglowek=true;
				
				prefix2.push(prefix);
				artykul2.push(artykul);
				
				jeden_glowny_naglowek2.push(jeden_glowny_naglowek);
				pierwszy_naglowek2.push(pierwszy_naglowek);
				
				poziom_naglowka_spisu_tresci2.push(false);
				
				if((strona_start.length>0)&&(czy_id_numerowanie)&&(czy_id_numerowanie.length==0)){
					await PrefixNumeracji();
					if(prefix_strona_start){
						prefix=prefix_strona_start;
						artykul=artykul_strona_start;
						prefix_strona_start=undefined;
					}
				}else{
					artykul=artykul_strona_start;
					prefix_strona_start=undefined;
				}
			}else if((strona_start_poprzednie.length>0)&&((elem===null)||(elem.length==0))){
				strona_start_poprzednie.pop();
				
				fun_hnumer=fun_strona_hnumer.pop();
				numeracja=numeracja_strona.pop();
				
				tak=tak_poprzednie.pop();
				
				prefix=prefix2.pop();
				pierwszy_naglowek=pierwszy_naglowek2.pop();
				artykul=artykul2.pop();
				jeden_glowny_naglowek=jeden_glowny_naglowek2.pop();
				
				poziom_naglowka_spisu_tresci2.pop();
			}
			let rozdzial=element_headline.innerHTML.replace(/<style\s*>(.*)<\/style>/g,"").replace(/<style\s+[^<>]*>(.*)<\/style>/g,"").replace(/<[^<>]+>/g,"").replace(/^[_\s]*/g,"").replace(/[_\s]*$/g,"").replace(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/[_\s]+/g," ");
			
			let poziom_naglowka=StronicowyParser.hnumer.PoziomNaglowka(parent);
		    if(poziom_naglowka===null){StronicowyParser.muteks.odblokuj();return;}
		    if(pierwszy_naglowek){
		    	function CzyTylkoJedenGlownyNaglowek(){
		    		let spis=undefined;
		    		if((artykul!="")&&(!StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul))){
		    			jeden_glowny_naglowek=false;
		    			pierwszy_naglowek=false;
		    			return;
		    		}
		    		for(let m=i+1;m<headline_artykul.length;++m){
		    			let element_headline=headline_artykul[m];
		    			let head=$(headline_artykul[m]).parents('.strona_start');
		    			if((strona_start_poprzednie.length==0)||((head!==null)&&(head.length>0)&&(head[0]==strona_start_poprzednie[strona_start_poprzednie.length-1]))){
		    				let parent=element_headline.parentNode;
							let poziom_naglowka_nastepny=StronicowyParser.hnumer.PoziomNaglowka(parent);
							if(poziom_naglowka_nastepny<=poziom_naglowka){
								jeden_glowny_naglowek=false;
								pierwszy_naglowek=false;
								return;
							}
						}
		    		}
		    		jeden_glowny_naglowek=true;
		    		pierwszy_naglowek=false;
		    	}
		    	CzyTylkoJedenGlownyNaglowek();
		    }
		    numer=fun_hnumer(poziom_naglowka);
		    if((tak)&&(poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1])&&(poziom_naglowka_spisu_tresci.length>0)&&(poziom_naglowka_spisu_tresci[poziom_naglowka_spisu_tresci.length-1]>=poziom_naglowka)){
				fun_hnumer=fun_hnumer_3.pop();
				numeracja=numeracja_3.pop();
				poziom_naglowka_spisu_tresci.pop();
				poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=false;
			}
			let numeruj=$(parent).parents('.numeruj').parents('#mw-content-text .mw-parser-output');
			let table=$(parent).parents('table').parents('#mw-content-text .mw-parser-output');
			let nie_numeruj=$(parent).parents('.nie_numeruj').parents('#mw-content-text .mw-parser-output');
		    if(((table!==null)&&((table.length>0)&&(numeruj!==null)&&(numeruj.length>0)))||(((table==null)||(table.length==0))&&((nie_numeruj==null)||(nie_numeruj.length==0)))){
		    	let nazwa=element_headline.innerHTML.replace(/<[^<>]+>/g,"");
		    	let rozdzial_naglowka=undefined;
		    	if((json_wikikod)&&(json_wikikod[nazwa])){
		    		let rozdzial=json_wikikod[nazwa];
		    		for(let p in rozdzial){rozdzial_naglowka=p;break;}
		    	}
		    	
		    	let rozdzial_json=json_wikikod&&((((main_spis_tresci)&&(json_wikikod[main_spis_tresci])&&(json_wikikod[main_spis_tresci][""]))?json_wikikod[main_spis_tresci][""][nazwa]:null)||json_wikikod[nazwa]);
		    	if((!json_wikikod)||((json_wikikod[nazwa])&&((json_wikikod[nazwa][""])||(json_wikikod[nazwa]["0"])))||(!rozdzial_json)||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
		    		console.log(nazwa,"TYTANA")
		    		main_spis_tresci=(((json_wikikod)&&(json_wikikod[nazwa]))?nazwa:null);
		    		let czy_ponumerowany=parent.getElementsByClassName('numeracja');
		    		let numeruj=undefined;
					if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
		    		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(!numeruj){
		    			let 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;";
		    		}
		    	}else{
		    		console.log(nazwa,"TYTANB")
		    		let numer_rozdzialu;
		    	    for(let p in rozdzial_json){numer_rozdzialu=p;break;}
		    	    numeracja=numer_rozdzialu.split(".");
		    	    for(let i in numeracja){numeracja[i]=parseInt(numeracja[i]);};
		    	    let czy_ponumerowany=parent.getElementsByClassName('numeracja');
		    	    let numeruj=undefined;
		    	    if((czy_ponumerowany!==null)&&(czy_ponumerowany.length>0)){numeruj=true;}
		    	    if(!numeruj){
		    			let span=document.createElement('span');
			    		span.setAttribute('class',"numeracja");
			    		span.innerHTML=numer_rozdzialu+".&nbsp;";
			    		parent.insertBefore(span,parent.firstChild);
		    		}else{
		    			czy_ponumerowany[0].innerHTML=numer_rozdzialu+".&nbsp;";
		    		}
		    	}
		    }
		    if(!jeden_glowny_naglowek){
				if((!tak)&&((artykul=="")||(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(artykuly_ze_spisem_tresci,artykul)))&&(StronicowyParser.wzor.DopasujCiagDoWzorowTablicy(tab_spis_tresci,rozdzial))){
					poziom_naglowka_spisu_tresci.push(poziom_naglowka);
					poziom_naglowka_spisu_tresci2[poziom_naglowka_spisu_tresci2.length-1]=true;
					tak=true;
					fun_hnumer_3.push(fun_hnumer);
					fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
					numeracja_3.push(numeracja);
					numeracja=new Array(0);
				}
			}else{
				jeden_glowny_naglowek=false;
				numeracja_2.push(numeracja);
		    	numeracja=new Array();
		    	fun_hnumer_2.push(fun_hnumer);
		        fun_hnumer=StronicowyParser.hnumer.LiczonyHNumer();
		    }
		}
		if(!json_wikikod){
			for(let i=0;i<headline.length;++i){
				await Headline(i,headline[i]);
			}
		}else{
			console.log(json_wikikod,"GABUS");
		    let dzieci=$(id_numerowanie).find("h1 .mw-headline, h2 .mw-headline, h3 .mw-headline, h4 .mw-headline, h5 .mw-headline, h6 .mw-headline, p, a,ul li, ol li");
		    let i=0;
		    for(let k=0;k<dzieci.length;++k){
		    	let element=dzieci[k];
		    	let naglowek;
		    	if($(element).hasClass('mw-headline')){
		    		naglowek=element.innerHTML.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
		    		console.log(naglowek,"GABUS");
		    		await Headline(i,element);
		    		++i;
		    	}else{
		    		let tag=element.tagName.toUpperCase();
		    		if(tag=="P"){
		    			let zawartosc=element.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
		    			naglowek=zawartosc;
		    				/**/
		    			console.log(zawartosc,"GABUS")
		    		}else if(tag=="A"){
		    			if($(element).children('.tocnumber, .toctext').length==0){
		    				let zawartosc=element.innerHTML;
		    				let href=StronicowyParser.kodowanie.DecodeHtml(element.getAttribute('href'),true);
		    				if((href)&&(!/^[Hh][Tt][Tt][Pp][Ss]?:\/\//g.test(href))){
		    					href=href.replace(/^.*\?title=([^&]+).*$/g,"$1").replace(/\/wiki\//g,"").replace(/^([^#]*).*$/g,"$1");
		    					if(!/^[^\/]*$/g.test(href)){
		    						let artykul=href.replace(/^[^\/]*\//g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
		    						/**/
		    						console.log(zawartosc,artykul,"GABUS");
		    					}
		    				}
		    			}
		    		}else if(tag=="LI"){
                        let kopia=element.cloneNode(true);
                        $(kopia).children('ul, ol').remove();
		    			if($(kopia).find('a').length==0){
		    			      let zawartosc=kopia.innerHTML.replace(/<[^<>]+>/g,"").replace(/'+/g,"").replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
		    			      naglowek=zawartosc;
		    			      /**/
		    			      console.log(zawartosc,"LI","GABUS") 
		    			}
		    		}else{
		    			console.log("Błąd wewnętrzny skryptu!")
		    			return;
		    		}
		    	}
		    }
	    }
		
		StronicowyParser.muteks.odblokuj();
		if(tab_promise){tab_promise.zwolnij();};
	}
	this.NumerujRozdzialyArtykulu=async function(tab_promise){
		if(!gadget_numerowanie){if(tab_promise){tab_promise.zwolnij();};return;};
		await StronicowyParser.muteks.zablokuj(true);
		let id_numerowanie=document.querySelector('body:not(.ns-6) #mw-content-text .mw-parser-output, body.ns-6 #mw-content-text');
		if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.zwolnij();};return;}
		
		let aktualna_strona=StronicowyParser.pageinfo.fullname;
		let aktualna_strona_parametr=StronicowyParser.ParametrNumerowanySzablonu(aktualna_strona);
		if(tab_promise){tab_promise.wygeneruj(1);};
		StronicowyParser.api.ZadaniaApi({
					action: 'expandtemplates',
					format: 'json',
					prop: 'wikitext',
					title: aktualna_strona,
					text: '{{#invoke:StronicowyParser|CzyStronęNumerować|'+aktualna_strona_parametr+'}}',
					smaxage: 600,
					maxage: 600,
				}).then(async function(data){
						await StronicowyParser.muteks.zablokuj(true);
						let wikikod=data.expandtemplates.wikitext;
						let czy_wikikod=/^[_\s]*$/g.test(wikikod);
						if(!czy_wikikod){
							var artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
							if(artykul==""){
									if(tab_promise){tab_promise.wygeneruj(1);};
									zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
									StronicowyParser.muteks.odblokuj();
									if(tab_promise){tab_promise.zwolnij();};
									return;
							}
							artykul=StronicowyParser.ParametrNumerowanySzablonu(artykul);
							if(tab_promise){tab_promise.wygeneruj(1);};
							StronicowyParser.api.ZadaniaApi({
								action: 'expandtemplates',
								format: 'json',
								prop: 'wikitext',
								title: aktualna_strona,
								text: '{{PobierzNumerArtykułu|'+artykul+'|nagłówek=tak|poziomowo=tak|bez kategorii stronicowych=tak|nie js=tak}}',
								smaxage: 600,
								maxage: 600,
							}).then(async function(data){
									await StronicowyParser.muteks.zablokuj(true);
									let wikikod=data.expandtemplates.wikitext;
									wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
									let czy_wikikod=/^[_\s]*$/g.test(wikikod);
									if((czy_wikikod)||(wikikod=="(błąd)")){
										wikikod="";
									}else{
										wikikod=wikikod.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"")+".";
									}
									if(tab_promise){tab_promise.wygeneruj(1);};
        							zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
        							StronicowyParser.muteks.odblokuj();
        							if(tab_promise){tab_promise.zwolnij();};
							}).catch((error) => {if(tab_promise){tab_promise.zwolnij();};});
						}
						StronicowyParser.muteks.odblokuj();
						if(tab_promise){tab_promise.zwolnij();};
				}).catch((error) => {if(tab_promise){tab_promise.zwolnij();};});
				StronicowyParser.muteks.odblokuj();
				if(tab_promise){tab_promise.zwolnij();};
	}
	this.NumerujRozdzialyPrzedSciaganiemArtykulow=async function(tab_promise){
		if(!gadget_numerowanie){if(tab_promise){tab_promise.zwolnij();};return;};
		await StronicowyParser.muteks.zablokuj(true);
		let id_numerowanie=document.querySelector('#mw-content-text .mw-parser-output');
		if(id_numerowanie==null){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.zwolnij();};return;}
		let aktualna_strona=StronicowyParser.pageinfo.fullname;
		let artykul=StronicowyParser.pageinfo.articlename.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
		let book=StronicowyParser.pageinfo.book.replace(/^[\s_]+/g,"").replace(/[\s_]+$/g,"").replace(/[\s_]+/g," ");
		if((artykul==book)||(artykul=="Wersja do druku")){
			if(tab_promise){tab_promise.wygeneruj(1);};
			zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,"",tab_promise);
			StronicowyParser.muteks.odblokuj();
			if(tab_promise){tab_promise.zwolnij();};
			return;
		}
		if(tab_promise){tab_promise.wygeneruj(1);};
		StronicowyParser.api.ZadaniaApi({
					action: 'expandtemplates',
					format: 'json',
					prop: 'wikitext',
					title: aktualna_strona,
					text: '{{PobierzNumerNagłówka|'+artykul+'|nagłówek=tak|poziomowo=tak|bez kategorii stronicowych=tak|bez dodatkowych sprawdzeń=tak}}',
					smaxage: 600,
					maxage: 600,
			}).then(async function(data){
					await StronicowyParser.muteks.zablokuj(true);
					let wikikod=data.expandtemplates.wikitext;
					wikikod=wikikod.replace(/^[\s_]*/g,"").replace(/[\s_]*$/g,"").replace(/[\s_]+/g," ");
					let czy_wikikod=/^[_\s]*$/g.test(wikikod);
					if((czy_wikikod)||(wikikod=="(błąd)")){
						wikikod="";
					}else{
						wikikod=wikikod+".";
					}
					if(tab_promise){tab_promise.wygeneruj(1);};
        			zmienna_this.NumerowanieNaglowkowStron(id_numerowanie,wikikod,tab_promise);
        			StronicowyParser.muteks.odblokuj();
        			if(tab_promise){tab_promise.zwolnij();};
			}).catch((error) => {if(tab_promise){tab_promise.zwolnij();};});
		  StronicowyParser.muteks.odblokuj();
		  if(tab_promise){tab_promise.zwolnij();};
	}
	this.NumerujRozdzialyPoSciagnieciuArtykulu=async function(element,tab_promise){
		if(!gadget_numerowanie){if(tab_promise){tab_promise.zwolnij();};return;}
		await StronicowyParser.muteks.zablokuj(true);
		let parent=element.parentNode;
		if(!parent){StronicowyParser.muteks.odblokuj();if(tab_promise){tab_promise.zwolnij();};return;}
		if(tab_promise){tab_promise.wygeneruj(1);};
		new Promise((resolve,reject)=>{
			let czas=0;
			function Naglowek(resove,reject){
				let numeracja=parent.querySelector('.numeracja');
				if(numeracja===null){
					if(czas>60000){reject();};
					czas+=300;
					setTimeout(()=>{Naglowek(resove,reject)},300);
				}else{
					resolve(numeracja);	
				}
			}
			setTimeout(()=>{
			   Naglowek(resolve,reject);
			},300);
		}).then(async function(numeracja){
			await StronicowyParser.muteks.zablokuj(true);
			let numeracja_naprawa=numeracja.innerHTML.replace(/&nbsp;/g,"");
			if(tab_promise){tab_promise.wygeneruj(1);};
			zmienna_this.NumerowanieNaglowkowStron(element,numeracja_naprawa,tab_promise);
			StronicowyParser.muteks.odblokuj();
			if(tab_promise){tab_promise.zwolnij();};
		}).catch((data)=>{if(tab_promise){tab_promise.zwolnij();};});
		StronicowyParser.muteks.odblokuj();
		if(tab_promise){tab_promise.zwolnij();};
	}
}
StronicowyParser.numerowanie=new StronicowyParser.NumerowanieNaglowkow();
});