Przejdź do zawartości

Moduł:StronicowyParser/SpisTreści

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [stwórz] [odśwież]
local p={};
local function Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)
	local parametry_modul=require("Module:Parametry");
    local ile=0;
	for i,tabela_rozdzial_artykulow2_i in pairs(tabela_rozdzial_artykulow2)do
		i=parametry_modul.TypeNumber(i) and i or nil;
		if((i)and(i>1))then
             ile=ile+#(tabela_rozdzial_artykulow2_i or {});
		end;
    end;
    return ile;
end;
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykulow2,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]])
	local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
	local tab_pozycja_elementow_w_spisie_rzeczy,numer_rodzaju_artykulu,id,parametry_szablonu,kom=stronicowyparser_potrzebne_modul.AnalizujLinkSzablonyOrazLinki(szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nil,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych);
	---
	local numer_rodzaju_artykulu_poprz=numer_rodzaju_artykulu;
	if(numer_rodzaju_artykulu)then
		--mw.log(szablon,numer_rodzaju_artykulu,wliczaj_artykuly_tego_rozdzialu)
		numer_rodzaju_artykulu=(wliczaj_artykuly_tego_rozdzialu)and numer_rodzaju_artykulu or (numer_rodzaju_artykulu+6);
	end;
	---
	--Rozdzialy początek
	local znaki_niedozwolone;
    local function ParametrPierwszy(tab_artykul,czy_niedozwolone)
   		local artykul=tab_artykul[1];
   		local parametry=tab_artykul[2];
   		local naglowek=tab_artykul[3];
   		local tablica_przekierowania=tab_artykul[4];
   		----
   		local znaki_niedozwolone;
   		if(czy_niedozwolone)then
   		    znaki_niedozwolone=mw.ustring.match(artykul,"[|<>{}%[%]]");
   		 end;
   		 ----
   		 --if(artykul)then
   		    	--artykul=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(artykul,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
   		    	--artykul=parametry_modul["Odstępy"]{[1]=artykul,[2]="tak",}
   	   			--artykul=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](artykul);
   	     --end;
   	   	----
   	    --if(parametry)then
   	   		--	parametry=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(parametry,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul)
   	   		--	parametry=parametry_modul["Odstępy"]{[1]=parametry,[2]="tak",}
   	   	    --	parametry=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](parametry);
   		--end;
	   	----
   	    --if(naglowek)then
   	   		--	naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
   	   		--	naglowek=parametry_modul["Odstępy"]{[1]=naglowek,[2]="tak",}
   	   		--	naglowek=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](naglowek);
   	   	--end;
   	   	----
   	    tab_artykul=((artykul)and(parametry or naglowek))and{[1]=artykul,[2]=parametry,[3]=naglowek,["LINK"]=true,} or artykul;
	    return tab_artykul,znaki_niedozwolone,tablica_przekierowania;
   	end;
   	local parametry_modul=require("Module:Parametry");
   	local szablonowe_modul=require("Module:Szablonowe");
   	local techniczne_modul=require("Module:Techniczne");
   	local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
   	local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
    local szablony_dozwolone_w_nazwach_linkowych=stronicowyparser_obiekty_modul.szablony_dozwolone_w_nazwach_linkowych;
    local szablony_rozwijane_przez_javascript_nazwowe_linkowe=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_nazwowe_linkowe;
	----
	
   	local function RozwijanieNazwy(szablon,obiekt,kod)
   		 if(obiekt=="SZABLON")then
			    local tab_szablony=stronicowyparser_obiekty_modul.szablony_stronicowego_parsera.szablony_kontenerowe;
				local tab_szablony_stronicowe_niekontenerowe=stronicowyparser_obiekty_modul.szablony_stronicowe_niekontenerowe;
				local tab_szablony_stronicowe_formatowania_tekstu=stronicowyparser_obiekty_modul.szablony_stronicowe_formatowania_tekstu;
	
				local tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego=stronicowyparser_obiekty_modul.szablony_stronicowe_kontenerowe_formatowania_wzorowego;
				----			
   				local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_nazwach_linkowych,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
				if(not wynik)then
				    local wynik,jaki_wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
						if(szablony_rozwijane_przez_javascript_nazwowe_linkowe[nazwa_szablonu])then
							local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul,
							function(szablon,obiekt,kod)
								if(obiekt=="SZABLON")then
									local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
										if(
											(tab_szablony[nazwa_szablonu])
											or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
											or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu])
											or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
										)then
            								tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
            								tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_spisu_tresci~="") and ("/"..nazwa_spisu_tresci) or ""));
											return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true);
										end;
									end);
									if(wynik)then return wynik;end;
								end;
							end);
							return szablon,true;
						elseif(nazwa_szablonu=="Br")then
							return " ",false;
						elseif(
								(tab_szablony[nazwa_szablonu])
								or(tab_szablony_stronicowe_niekontenerowe[nazwa_szablonu])
								or(tab_szablony_stronicowe_formatowania_tekstu[nazwa_szablonu])
								or(tab_szablony_stronicowe_kontenerowe_formatowania_wzorowego[nazwa_szablonu])
						)then
            				tabela_parametrow_szablonu["nazwa przestrzeni nazw"]=tabela_parametrow_szablonu["nazwa przestrzeni nazw"] or nazwa_przestrzeni;
            				tabela_parametrow_szablonu["nazwa jednostki"]=tabela_parametrow_szablonu["nazwa jednostki"] or (((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_spisu_tresci~="") and ("/"..nazwa_spisu_tresci) or ""));
							return szablonowe_modul.KodSymbolicznySzablonu(nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow,true),true;	
						end;
					end);
				    if(wynik)then return wynik,jaki_wynik;end;
				else
					return wynik,false;
				end;
				return nil,true;
   		 elseif(obiekt=="ZNACZNIK")then
		    local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
			if(nazwa=="br")then
				return " ";
			end;
   		end;
   	    return szablon;
   end;
    if((numer_rodzaju_artykulu_poprz)and(numer_rodzaju_artykulu_poprz==1)and(tab_pozycja_elementow_w_spisie_rzeczy)and(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
   		local numer_rodzaju_artykulu_w_podreczniku=numer_rodzaju_artykulu+1;
   	    local czy_tablica=nil;local tablica_przekierowania=nil;
	    if(tab_pozycja_elementow_w_spisie_rzeczy[1])then
   		    czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
   		    if(not czy_tablica)then
   		    	--tab_pozycja_elementow_w_spisie_rzeczy[1]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[1],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
   		    	--tab_pozycja_elementow_w_spisie_rzeczy[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[1],[2]="tak",}
   	   			--tab_pozycja_elementow_w_spisie_rzeczy[1]=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tab_pozycja_elementow_w_spisie_rzeczy[1]);
   	   			znaki_niedozwolone=mw.ustring.match(tab_pozycja_elementow_w_spisie_rzeczy[1],"[|<>{}%[%]]");
   	   			tablica_artykulow_zebranych={tab_pozycja_elementow_w_spisie_rzeczy[1],0,false,};
   			else
   			    tab_pozycja_elementow_w_spisie_rzeczy[1],znaki_niedozwolone,tablica_przekierowania=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],true);
   			    local czy_inna_ksiazka=tablica_przekierowania and tablica_przekierowania[1] and tablica_przekierowania[1][5] or nil;
   			    if(not czy_inna_ksiazka)then
	   		    	czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
	   		    else
	   		    	local artykul=tablica_przekierowania[2];
	   		    	local parametry=tablica_przekierowania[3];
	   		    	local naglowek=tablica_przekierowania[4];
	   		    	czy_tablica=(artykul)and(parametry or naglowek);
	   		    end;
   		        if(not czy_tablica)then
   		        	local aktualny_artykul_ksiazki;
   		    		if(not czy_inna_ksiazka)then
   		    			aktualny_artykul_ksiazki=tab_pozycja_elementow_w_spisie_rzeczy[1];
   		    		else
   		    			aktualny_artykul_ksiazki=tablica_przekierowania[2] 
   		    			        or (parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1])and tab_pozycja_elementow_w_spisie_rzeczy[1][1] or tab_pozycja_elementow_w_spisie_rzeczy[1]);
   		    		end;
   		    		tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
   		    	else
   		    		local aktualny_artykul_ksiazki;
   		    		if(not czy_inna_ksiazka)then
   		    			aktualny_artykul_ksiazki=tab_pozycja_elementow_w_spisie_rzeczy[1][1];
   		    		else
   		    			aktualny_artykul_ksiazki=tablica_przekierowania[2] 
   		    			       or (parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1])and tab_pozycja_elementow_w_spisie_rzeczy[1][1] or tab_pozycja_elementow_w_spisie_rzeczy[1]);
   		    		end;
   		    		if(tablica_artykulow_zebranych[1]~=aktualny_artykul_ksiazki)then
   	   					tablica_artykulow_zebranych={aktualny_artykul_ksiazki,0,false,};
   	   				else
   	   					tablica_artykulow_zebranych[3]=true;
   	   				end;
   	   			end;
   			 end;
	    end;
	  ----
      local szablonowe_modul=require("Module:Szablonowe");
      ----
   	  if(tab_pozycja_elementow_w_spisie_rzeczy[2])then
			local czy_szablon_wszystko=false;
   		    tab_pozycja_elementow_w_spisie_rzeczy[2]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[2],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
   		    	local wynik,czy_szablon=RozwijanieNazwy(szablon,obiekt,kod);
				czy_szablon_wszystko=czy_szablon_wszystko or czy_szablon;
				return wynik;
   		    end);
			if(czy_szablon_wszystko)then
				local frame=mw.getCurrentFrame();
				tab_pozycja_elementow_w_spisie_rzeczy[2]=frame:preprocess(tab_pozycja_elementow_w_spisie_rzeczy[2]);
			end;
			
   		    local specjalne_modul=require("Module:Specjalne");
   		    tab_pozycja_elementow_w_spisie_rzeczy[2]=specjalne_modul["UsuńZnakiSpecjalne"](tab_pozycja_elementow_w_spisie_rzeczy[2]);
   		    tab_pozycja_elementow_w_spisie_rzeczy[2]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[2],[2]="tak",[4]="tak",};
   	   end;
   	   ----
   	   if(znaki_niedozwolone)then
   	   		local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
   	   		if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"niedozwolone znaki w spisach treści"))then
        		stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"niedozwolone znaki w spisach treści");
        	end;
        end;
   	   	local nazwa_jednostki=stronicowyparser_potrzebne_modul.UzyskanieTylkoNazwyLubTabeliNazwyLinkuStronyWoluminuZTabeliZParametramiOrazIdentyfikatorem(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
        local stara_nazwa_jednostki=nazwa_jednostki;	
            					
        if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku]={};end;
        --local linia_artykokow=--[[(not przerwij) and ]]tab_linia[k]--[[ or szablon]];
        linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
            				
        --local przekierowanie=pelna_nazwa_ksiazki..((nazwa_jednostki~="") and ("/"..nazwa_jednostki) or "");
        --local strona=techniczne_modul.PrzekierowanieDoStrony(przekierowanie);
        --local strona=(tablica_przekierowania)
		local przekierowanie;
        if(--[[strona--]]tablica_przekierowania)then
            --nazwa_jednostki=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
        	--przekierowanie=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](przekierowanie)
           przekierowanie=tablica_przekierowania[2];
           if((czy_tablica)and(stara_nazwa_jednostki~=""))then
            	przekierowanie=przekierowanie and ((tablica_przekierowania[3] or tablica_przekierowania[4])
            										and {przekierowanie, tablica_przekierowania[3], tablica_przekierowania[4],["LINK"]=true,}
            										or przekierowanie
            									 )
            								or nil;
                nazwa_jednostki={nazwa_jednostki, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],["LINK"]=true,};
                local czy_w_tab=tablica_artykulow_zebranych[2];
                local czy_wsadzac=tablica_artykulow_zebranych[3];
            	if((not czy_wsadzac)and(czy_w_tab==0)and(tablica_artykulow_zebranych[1]==stara_nazwa_jednostki))then
            		local tab_stare={{stara_nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],tablica_przekierowania and (tablica_przekierowania[2] and przekierowanie or nil) or nil,((tablica_przekierowania)and(tablica_przekierowania[1])) and tablica_przekierowania[1] or nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],true,tab_pozycja_elementow_w_spisie_rzeczy[6],},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
        			--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
        			--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        			 __FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        			tablica_artykulow_zebranych[2]=1;
            	end;
            end;
        else
            nazwa_jednostki=tab_pozycja_elementow_w_spisie_rzeczy[1];
            if((czy_tablica)and(stara_nazwa_jednostki~=""))then
      			local czy_w_tab=tablica_artykulow_zebranych[2];
      			local czy_wsadzac=tablica_artykulow_zebranych[3];
            	if((not czy_wsadzac)and(czy_w_tab==0)and(tablica_artykulow_zebranych[1]==stara_nazwa_jednostki))then
            		local tab_stare={{stara_nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],nil,nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],true,tab_pozycja_elementow_w_spisie_rzeczy[6],},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
        			--table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
        			--WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        			 __FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        			tablica_artykulow_zebranych[2]=1;
        		end;
            end;
        end;
        local ile_dodac_do_poziomu_artykulu=tablica_artykulow_zebranych[2];
        local ile_dodac_do_poziomu_artykulu_lub_nil=((ile_dodac_do_poziomu_artykulu)and(ile_dodac_do_poziomu_artykulu>0))and ile_dodac_do_poziomu_artykulu or nil;
        local tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[2] or tablica_przekierowania or tab_pozycja_elementow_w_spisie_rzeczy[5] or tab_pozycja_elementow_w_spisie_rzeczy[6] or ile_dodac_do_poziomu_artykulu_lub_nil) and ({nazwa_jednostki,tab_pozycja_elementow_w_spisie_rzeczy[2],tablica_przekierowania and (tablica_przekierowania[2] and przekierowanie or nil) or nil,((tablica_przekierowania)and(tablica_przekierowania[1])) and tablica_przekierowania[1] or nil,nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[5],ile_dodac_do_poziomu_artykulu_lub_nil,tab_pozycja_elementow_w_spisie_rzeczy[6],}) or nazwa_jednostki),{#przedrostek_listy--[[+(ile_dodac_do_poziomu_artykulu and ile_dodac_do_poziomu_artykulu or 0)]],przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,(numer_rodzaju_artykulu>1) and (Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2)) or nil,};
        --table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
        --WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        --mw.logObject(tab_stare,"TYTAN1")
        __FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        --mw.logObject(tabela_rozdzial_artykulow2,"TYTAN2")
    elseif((numer_rodzaju_artykulu_poprz)and(numer_rodzaju_artykulu_poprz>=2)and(tab_pozycja_elementow_w_spisie_rzeczy)and(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
        if(tab_pozycja_elementow_w_spisie_rzeczy[1])then
        	if(not parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]))then
        		--tab_pozycja_elementow_w_spisie_rzeczy[1]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[1],[2]="tak",};
   		    	--tab_pozycja_elementow_w_spisie_rzeczy[1]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[1],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
   		    else
   		    	tab_pozycja_elementow_w_spisie_rzeczy[1]=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
   		    end;
        end;
   	    local szablonowe_modul=require("Module:Szablonowe");
   	    if(tab_pozycja_elementow_w_spisie_rzeczy[2])then
			local czy_szablon_wszystko=false;
   		    tab_pozycja_elementow_w_spisie_rzeczy[2]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[2],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
   		    	local wynik,czy_szablon=RozwijanieNazwy(szablon,obiekt,kod);
				czy_szablon_wszystko=czy_szablon_wszystko or czy_szablon;
				return wynik;
   		    end);
			if(czy_szablon_wszystko)then
				local frame=mw.getCurrentFrame();
				tab_pozycja_elementow_w_spisie_rzeczy[2]=frame:preprocess(tab_pozycja_elementow_w_spisie_rzeczy[2]);
			end;
			
   		    local specjalne_modul=require("Module:Specjalne");
   		    tab_pozycja_elementow_w_spisie_rzeczy[2]=specjalne_modul["UsuńZnakiSpecjalne"](tab_pozycja_elementow_w_spisie_rzeczy[2]);
   		    tab_pozycja_elementow_w_spisie_rzeczy[2]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[2],[2]="tak",[4]="tak",};
   		end;
   	    if(tab_pozycja_elementow_w_spisie_rzeczy[3])then
   		    tab_pozycja_elementow_w_spisie_rzeczy[3]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[3],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
   		    tab_pozycja_elementow_w_spisie_rzeczy[3]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[3],[2]="tak",[4]="tak",};
   		end;
   	    if(tab_pozycja_elementow_w_spisie_rzeczy[4])then
	   		tab_pozycja_elementow_w_spisie_rzeczy[4]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[4],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
	   		tab_pozycja_elementow_w_spisie_rzeczy[4]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[4],[2]="tak",[4]="tak",};
   		end;
        local wiki_modul=require("Module:Wiki");
        -----
        local numer_rodzaju_artykulow_w_nie_podreczniku=numer_rodzaju_artykulu+1;
        -----
        if(not tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku])then 
        	tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku]={};
        end;
        --local linia_artykokow=--[[(not przerwij) and ]]tab_linia[k]--[[ or szablon]];
        linia_artykokow=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(linia_artykokow,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
            				
        local tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[1])and((tab_pozycja_elementow_w_spisie_rzeczy[2])or(tab_pozycja_elementow_w_spisie_rzeczy[3])or(tab_pozycja_elementow_w_spisie_rzeczy[4])or(tab_pozycja_elementow_w_spisie_rzeczy[5])or(tab_pozycja_elementow_w_spisie_rzeczy[6])))and({tab_pozycja_elementow_w_spisie_rzeczy[1],tab_pozycja_elementow_w_spisie_rzeczy[2],nil,nil,tab_pozycja_elementow_w_spisie_rzeczy[3],tab_pozycja_elementow_w_spisie_rzeczy[4],tab_pozycja_elementow_w_spisie_rzeczy[5],nil,tab_pozycja_elementow_w_spisie_rzeczy[6],}) or tab_pozycja_elementow_w_spisie_rzeczy[1],{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,false,false,Ile(numer_rodzaju_artykulu,tabela_rozdzial_artykulow2),};
       --table.insert(tabela_rozdzial_artykulow2[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
       --WsadzanieParametryDoTablicy(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
       __FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykulow2,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare);
    end;
    --mw.logObject(tabela_rozdzial_artykulow2,"TYTAN")
    return numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych;
end;
function p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
	local specjalne_modul=require("Module:Specjalne");
	local szablonowe_modul=require("Module:Szablonowe");
	local html_modul=require("Module:Html");
	local parametry_modul=require("Module:Parametry");
	local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
	
	local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
	local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
    local rozdzial_na_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(rozdzial,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
    	if(obiekt=="SZABLON")then
    		-----
    		local szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu;
    		local szablony_dozwolone_w_nazwach_linkowych=stronicowyparser_obiekty_modul.szablony_dozwolone_w_nazwach_linkowych;
    		local szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu;
    		-----
			local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
			if(wynik)then return wynik;end;
			local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,szablony_dozwolone_w_nazwach_linkowych,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
			if(wynik)then return wynik;end;
			----
			local dodatek=stronicowyparser_rozdzialy_modul.ObiektySzablonoweUzyskiwaniaUruchomieniaTekstu(szablon,pelna_nazwa_spisu_tresci_szablonowa,tablica_danych_parametrow_szablonu_strony,kod);
			if(dodatek)then return dodatek;end;
			local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
					----
				local tab_szablon_link_intelignetny=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
				if(tab_szablon_link_intelignetny)then
					return (not tab_szablon_link_intelignetny[4]) and tabela_parametrow_szablonu[2] or tabela_parametrow_szablonu[1];
				else
					local nazwa_zamiast_linku=stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoObiektu(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod);
					if(nazwa_zamiast_linku)then return nazwa_zamiast_linku;end;
				end;
				local nazwa_zamiast_linku=stronicowyparser_potrzebne_modul.NazwaInnegoSzablonowegoLinkowegoSpisuRzeczy(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow,tablica_danych_parametrow_szablonu_strony,kod);
				if(nazwa_zamiast_linku)then return nazwa_zamiast_linku;end;
				----
				if(szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu[nazwa_szablonu])then 
					local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul);
					return szablon;
				end;
			end);
			if(wynik)then return wynik;end;
			----
			local rozdzial_na_tekst=mw.ustring.gsub(szablon,"^{{[^{}|]*|([^{}|]*).*}}$","%1");
			return rozdzial_na_tekst;
    	elseif(obiekt=="NOWIKI")then
    		local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
    		if(zawartosc)then
    			local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
				return rozdzial_na_tekst;
			else
				return "";
			end;
    	elseif(obiekt=="PRE")then
    		local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguPre(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
    		if(zawartosc)then
    			local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
				return rozdzial_na_tekst;
			else
				return "";
			end;
		elseif(obiekt=="ŹRÓDŁO")then
			local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguSyntaxHighLight(szablon,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,kod);
			if(zawartosc)then
				local rozdzial_na_tekst=html_modul.ZnakiSpecjalneTaguNowiki(zawartosc);
				return rozdzial_na_tekst;
			else
				return "";
			end;
   		elseif((obiekt~="MATH")and(obiekt~="GALERIA")and(obiekt~="MAPAOBRAZU")and(obiekt~="INNEPRE"))then
   	   		local rozdzial_na_tekst=specjalne_modul["UsuńKomentarze"](szablon);
   	   		rozdzial_na_tekst=specjalne_modul["ZamieńLinkiZewnętrzneNaTekst"](rozdzial_na_tekst);
			rozdzial_na_tekst=specjalne_modul["ZamieńLinkiWewnętrzneNaTekst"](rozdzial_na_tekst);
			rozdzial_na_tekst=specjalne_modul["UsuńSzablonyStylów"](rozdzial_na_tekst);
			rozdzial_na_tekst=specjalne_modul["UsuńZnaczniki"](rozdzial_na_tekst);
			rozdzial_na_tekst=specjalne_modul["UsuńKategorie"](rozdzial_na_tekst);
			rozdzial_na_tekst=specjalne_modul["UsuńWywołaniaPlików"](rozdzial_na_tekst);
			rozdzial_na_tekst=specjalne_modul["UsuńInterwiki"](rozdzial_na_tekst);
			rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
			return rozdzial_na_tekst;
		else
			return "";
		end;
    end);
   	----
	rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
	rozdzial_na_tekst=specjalne_modul["UsuńZbędneBiałeZnaki"](rozdzial_na_tekst);
	return rozdzial_na_tekst;
end;
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH)
   local parametry_modul=require("Module:Parametry");
   if((not nazwa_przestrzeni)or(not nazwa_przestrzeni_ksiazki)or(not nazwa_ksiazki))then return 0;end;
   local nazwy_modul=require("Module:Nazwy");
   local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
   local nazwa_modulu=pelna_nazwa_ksiazki..((nazwa_spisu_tresci~="")and("/"..nazwa_spisu_tresci) or "");
   ---
   local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
   local pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki and nazwa_spisu_tresci) 
                                             and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci) 
                                                   or nil;
   local pelna_nazwa_spisu_tresci_szablonowa=pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej and (((nazwa_przestrzeni=="")and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)or nil;
   ---
   local techniczne_modul=require("Module:Techniczne");
   local szablonowe_modul=require("Module:Szablonowe");
   local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_modulu);
   local przekierowanie_spisu_tresci=nil;
   
   local tab_nazwa_spisow_przekierowaniowych={};
   --[[if(adres_ksiazki_glownego_spisu_tresci)then
		if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni]={};end;
		if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki]={};end;
		if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=true;end;
   end;]]
   --if(adres_ksiazki_glownego_spisu_tresci)then
   	--	local nazwa_przestrzeni=adres_ksiazki_glownego_spisu_tresci[1];
   	--	local nazwa_przestrzeni_ksiazki=adres_ksiazki_glownego_spisu_tresci[2];
   	--	local nazwa_ksiazki=adres_ksiazki_glownego_spisu_tresci[3];
   	--	if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni]={};end;
	--	if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki]={};end;
--		if(not tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki])then tab_nazwa_spisow_przekierowaniowych[nazwa_przestrzeni][nazwa_przestrzeni_ksiazki][nazwa_ksiazki]=true;end;
--   end;
   
   if(strona)then
   		local html_modul=require("Module:Html");
   		strona=html_modul.DecodeHtml(strona,true);
   		local tabela_nazw={};
   		local pelna_nazwa_ksiazki_przekierowania=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona,tabela_nazw);
   		if(pelna_nazwa_ksiazki_przekierowania~=pelna_nazwa_ksiazki)then return 0;end;
    	nazwa_modulu=nazwy_modul["PEŁNANAZWASTRONY"](strona,tabela_nazw);
    	nazwa_spisu_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona,tabela_nazw);
    	przekierowanie_spisu_tresci=nazwa_spisu_tresci;
    	----
    	pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki and nazwa_spisu_tresci) 
                                             and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci) 
                                                   or nil;
		pelna_nazwa_spisu_tresci_szablonowa=pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej and (((nazwa_przestrzeni=="")and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)or nil;
   end;
   local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
   --local tekst_rozwiniety_calego_artykulu=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,nazwa_modulu,true);
    local __FUNKCJA_PARAMETRY=nil;
    local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
    	return nil;
    end,__FUNKCJA_PARAMETRY);

   if(not tekst_rozwiniety_calego_artykulu)then return 0;end;
   if(__FUNKCJA_ZBIERANIA_DANYCH)then
		__FUNKCJA_ZBIERANIA_DANYCH(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
	end;
   ----
	local techniczne_modul=require("Module:Techniczne");
   ----
    local tabelalisty2=nil;
    local licencja_z_autorem=true;
    local tabela_artykulow=nil;
    local tabela_licencji_spisu_tresci=nil;
    local parametry_modul=require("Module:Parametry");
    local html_modul=require("Module:Html");
    local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
    
    local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
    local linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy;
    local inne_linki_szablony_elementy_spisu_rzeczy=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy;
    local szablony_kompletowania_stron_woluminu=stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu;
	local szablony_licencji=stronicowyparser_obiekty_modul.szablony_licencji;
	local szablony_ozdobne_stron_woluminu=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu;
   
    local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały")
    
    --[[local pelna_nazwa_spisu_tresci_wzor="^("..((nazwa_przestrzeni~="")and techniczne_modul["WzórDanejPrzestrzeniNazw"](nazwa_przestrzeni) or "")
                                   ..techniczne_modul["WzórNazwyStrony"](((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki)
                                          ..((nazwa_spisu_tresci~="")and ("/"..nazwa_spisu_tresci) or "")
                                                  .."(/[Ss][Pp][Ii][Ss][%s_]+[Tt][Rr][Ee][ŚśSs][Cc][Ii]))$";]]
    --local tablica_analizy_obiektow_strony_dany_modul={};
    --local tablica_danych_parametrow_szablonu_strony={};
    local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,--[[function(pelna_nazwa_szablonu,tabela_modyfikatorow)
    	local pelna_nazwa_spisu_tresci,strona_ze_spisem_tresci=mw.ustring.match(pelna_nazwa_szablonu,pelna_nazwa_spisu_tresci_wzor);
    	if(pelna_nazwa_spisu_tresci and strona_ze_spisem_tresci)then
    		pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
    		local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
			if(tekst)then
    			----
    			if(not self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni])then self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni]={};end;
				local tablica_przestrzeni=self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron[nazwa_przestrzeni];
   
            	if(not tablica_przestrzeni[nazwa_przestrzeni_ksiazki])then tablica_przestrzeni[nazwa_przestrzeni_ksiazki]={};end;
            	local tablica_przestrzeni_ksiazki=tablica_przestrzeni[nazwa_przestrzeni_ksiazki];
               
				if(not tablica_przestrzeni_ksiazki[nazwa_ksiazki])then tablica_przestrzeni_ksiazki[nazwa_ksiazki]={};end;
				local tablica_ksiazki=tablica_przestrzeni_ksiazki[nazwa_ksiazki];
				if(not tablica_ksiazki.spis_tresci)then tablica_ksiazki.spis_tresci={};end;
				if(not tablica_ksiazki.spis_tresci[nazwa_spisu_tresci])then tablica_ksiazki.spis_tresci[nazwa_spisu_tresci]={};end
				local tablica_spis_tresci=tablica_ksiazki.spis_tresci[nazwa_spisu_tresci];
				tablica_spis_tresci.tekst=tekst;
				tablica_spis_tresci.adres_wzgledny_spisu_tresci=strona_ze_spisem_tresci;
    			----
    			return tekst;
    		end;
    	end;
    end]]nil,function(str,pelna_nazwa_strony,tablica_analizy_dany_modul,czy_naglowek)
    	    local FunkcjaIteratoraTekstuZakodowego=function(szablon,obiekt,kod)
    			if(obiekt=="SZABLON")then
    				----
    				local bez_kodow=not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu());
    				if(bez_kodow)then return;end;
    				----
    				local function PomijajLinkiOrazLicencje(szablon)
                		return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
    					
    						local czy_szablony_licencji=stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu];
    						if(czy_szablony_licencji)then return true;end;
    						local czy_szablony_ozdobne=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu[nazwa_szablonu];
    						if(czy_szablony_ozdobne)then return true;end;
    				
    						--local stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
    						--local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,nazwa_szablonu);
    						--if(wynik)then return wynik;end;
    						----
    						if((linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu])or(inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu]))then return true;end;
    						local tab_wyzyskane_od_nazwy_szablonu=stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu,tablica_danych_parametrow_szablonu_strony,kod);
    						if(tab_wyzyskane_od_nazwy_szablonu)then return true;end;
                		end);
    				end;
    				----
    				local CzySzablonLinkLubLicencja=function(szablon)
    					local ile_szablon_linki_lub_licencje=0;
    					local _,ile=mw.ustring.gsub(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("(SZABLON)"),
    												function(obiekt,kod)
    													kod=tonumber(kod);
    													local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
    													local wynik=PomijajLinkiOrazLicencje(szablon);
    													if(wynik)then ile_szablon_linki=ile_szablon_linki+1;end;
    													return nil;
    												end);
    					if((ile>0)and(ile_szablon_linki_lub_licencje>0))then return true;end;
    				end;
    				local bez_kodow_linkow_wewnetrznych=(
    														not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("LINK[WZ]"))
    														and not CzySzablonLinkLubLicencja(szablon)
    													)
    			                        				or not mw.ustring.match(szablon,"\n([#:*;]+)[^%S\n]*([%w%p]*)[^%S\n]*([^\n]+)")
    			                        				or not mw.ustring.match(szablon,"\n([#:*;]*)[^%S\n]*([%w%p]+)[^%S\n]*([^\n]+)");
    				if(bez_kodow_linkow_wewnetrznych)then return;end;
            		local wynik=PomijajLinkiOrazLicencje(szablon);
					if(wynik)then return;end;
    				-----
    				return "";
    			--[[elseif(obiekt=="WIKITABELA")then
   					szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
   					szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n\n");
   					szablon=mw.ustring.gsub(szablon,"\n|[%-%+][^%S\n]+[^|\n]*","\n\n");
   					szablon=mw.ustring.gsub(szablon,"\n|%-","\n\n");
   					szablon=mw.ustring.gsub(szablon,"\n|%+","\n\n");
   					szablon=mw.ustring.gsub(szablon,"\n|","\n\n");
					return szablon;]]
    			end;
    			return;
    	    end;
			if(not czy_naglowek)then
				str=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(str,pelna_nazwa_strony,tablica_analizy_dany_modul,function(szablon,obiekt,kod)
					local wynik=FunkcjaIteratoraTekstuZakodowego(szablon,obiekt,kod);
					if(wynik)then return wynik;end;
					return nil,true;
				end);
				return str;
			end;
			return str;
    end,function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
    	local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
    	local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
    	return tekst;
    end);
	----
    local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
	
	local odczyt_jakie_nie_rozdzialy=stronicowyparser_obiekty_modul.tablica_nazw_napisu_wprowadzenia_tekstu_pomijanych_w_rozwazaniach_na_stronach_otwarcia_woluminu;
	local jakie_nie_rozdzialy=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_nie_rozdzialy);
	
	local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
	local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
    
    setmetatable(jakie_nie_rozdzialy,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
	setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);

    local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
    local numer_rozdzialu_w_ksiazce=1;
    local parametry_modul=require("Module:Parametry");
    local html_modul=require("Module:Html");
    
    local szablonowe_modul=require("Module:Szablonowe");
    local tab_dozwolonych_szablonow_z_elementami_spisu_artykulow=stronicowyparser_obiekty_modul.tab_dozwolonych_szablonow_z_elementami_spisu_artykulow;
    
    local czy_jest_spis_tresci=nil;
    local poziom_spisu_tresci=nil;
    local dalej_nie_rozwazaj_spis_tresci=nil;
    local wliczaj_artykuly_tego_rozdzialu=nil;
    local specjalne_modul=require("Module:Specjalne");
    
    local tablica_artykulow_zebranych={};
    local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
    ----
    --local szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_dozwolone_w_napisach_do_wprowadzenia_tekstu;
    --local szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.szablony_rozwijane_przez_javascript_w_napisach_wprowadzenia_tekstu;
    ----
    local maksymalny_rozmiar_rozdzialu_zerowego=50;
    
    local function AnalizaRozdzialu(rozdzial,linia_rozdzialu,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany)
    	--rozdzial,_=mw.ustring.gsub(rozdzial,"{{[^|{}]+|([^|{}]+)[^{}]*}}","%1");
        
        --if(poziom_rozdzialu)then
        --	text=stronicowyparser_rozdzialy_modul.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia(text,nil,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
        --end;
        
        if(not tabela_artykulow)then tabela_artykulow={};end;
        local spreparowany_uzyskany_tekst_rozdzialu=nil;
        ----
        local tabela_rozdzial_artykulow;

   	   	if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then 
   	   		tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
   	   		----
   	   		tabela_rozdzial_artykulow=tabela_artykulow[numer_rozdzialu_w_ksiazce];
   	   		----
   	   		local rozdzial_na_tekst=p.AnalizaNapisuWprowadzeniaTekstu(rozdzial,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
			----
   	   		tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
   	   		spreparowany_uzyskany_tekst_rozdzialu=rozdzial_na_tekst;
   	   	end;
   	    local czy_spis_rzeczy_napis_wprowadzenia_tekstu=(poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]);
   	    if(czy_spis_rzeczy_napis_wprowadzenia_tekstu)then
    		poziom_spisu_tresci=poziom_rozdzialu;
    		czy_jest_spis_tresci=true;
   	    elseif((czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci))then
    		if((((poziom_spisu_tresci>0)and(poziom_rozdzialu>0))or((poziom_spisu_tresci<=0)and(poziom_rozdzialu<=0)))and(math.abs(poziom_spisu_tresci or 0)<math.abs(poziom_rozdzialu)))then
    			wliczaj_artykuly_tego_rozdzialu=true;
    		else
    			wliczaj_artykuly_tego_rozdzialu=nil;
    			dalej_nie_rozwazaj_spis_tresci=true;
    		end;
    	end;
   	   	
        local function iteratorTekstuNaglowka()
        	local re="([#:*;]*)[^%S\n]*([%d%.]*[^%S\n]*[^\n]+)";
        	local iter=nil;
        	local tak=nil;
        	local czy_rozdzial=nil;
        	return function()
        		if(not czy_rozdzial)then
        			if((poziom_rozdzialu or 0)>0)then
        				if(not iter)then
        					iter=mw.ustring.gmatch(rozdzial,"([^\n]+)");
        				end;
        				local wartosc=iter();
        				if(not wartosc)then 
        					czy_rozdzial=true;
        					iter=nil;
        				else 
        					return "","",wartosc,true;
        				end;
        			else
        				czy_rozdzial=true;
        			end;
        		end;
        		local function dane_iteratora()
        			if(not iter)then
        				iter=mw.ustring.gmatch(text,"\n"..re);
	        		end;
    	    		local przedrostek_listy,tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci=iter();
        			if(przedrostek_listy and tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci)then
        				local wyzyskane_wywolanie_szablonu_spis_tresci,tekstowy_przedrostek=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci);
        				return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
        			else
        				return nil;
        			end;
        		end;
        		if(not tak)then
        			tak=true;
        			local przedrostek_listy,tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
        			if(przedrostek_listy and tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci)then
        				local wyzyskane_wywolanie_szablonu_spis_tresci,tekstowy_przedrostek=stronicowyparser_rozdzialy_modul.RozdzieleniePrawidloweLiniiWeWprowadzenieTekstuNumeracjiOdJegoNapisu(tekstowy_przedrostek_z_wyzyskanym_wywolaniem_szablonu_spis_tresci);
        				return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
        			else
        				return dane_iteratora();
        			end;
        		end;
        		return dane_iteratora();
        	end;
        end;
        
        ----
         local function LiniaArtykulow(linia) 
        	 local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
        	 local szablon,obiekt,kod=iter();
        	 
        	 if((not szablon) or (not kod) or(not obiekt))then return {};end;
        	 
        	 local function SzablonAnalizujKompletnosc(szablon)
        	 	----
        		local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
						----
        	 		return stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu[nazwa_szablonu];
        		end);
    	 		return wynik;
        	 end;
        	 -----
          	 local tak_pierwsze=((obiekt=="SZABLON") and SzablonAnalizujKompletnosc(szablon) or nil);
          	 -----
             for szablon,obiekt,kod in iter do
             	if(obiekt=="SZABLON")then
              		local szablon=tablica_analizy_obiektow_strony_dany_modul[obiekt][kod];
              	   	   
               		local tak_drugie=SzablonAnalizujKompletnosc(szablon);
            		if(tak_pierwsze)then
            			if(tak_drugie)then
              		   		linia=mw.ustring.gsub(linia,"(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu()..")(%s*)("..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..")","%1,%2%3");
              			end;
              		else
              			if(tak_drugie)then
              	   			linia=mw.ustring.gsub(linia,"(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu(obiekt,kod)..")(%s*)(%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu()..")","%1,%2%3");
              			end;
          	   		end;
             	end;
            end;
            local tabela_linii_artykulow=mw.text.split(linia,"%s*,%s*",false);
            for i=1,#tabela_linii_artykulow,1 do
              	tabela_linii_artykulow[i]=mw.ustring.gsub(tabela_linii_artykulow[i],"&#"..mw.ustring.byte(',')..";",",");
            end;
            
            return tabela_linii_artykulow;
        end;
    	local iterator=iteratorTekstuNaglowka();
    	
    	local wliczaj_artykuly_tego_rozdzialu=((wliczaj_artykuly_tego_rozdzialu)or(not jakie_nie_rozdzialy[rozdzial]));
    	for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
    		local nie_pomijaj_tego_rozdzialu=false;
    		if((not przedrostek_listy)or(#przedrostek_listy==0))then
    			local rozdzial,czy_z_kropka=stronicowyparser_rozdzialy_modul.CzyZerowyNapisWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
				if(((rozdzial)and(#rozdzial<=maksymalny_rozmiar_rozdzialu_zerowego))or(not rozdzial))then
					nie_pomijaj_tego_rozdzialu=true;
				end;
			else
				local czy_pominac_ten_rozdzial_jako_linie=stronicowyparser_rozdzialy_modul.CzyNapisWprowadzeniaTekstuDwukropkowyZDwomaApostrofamiOrazLiniamiNieWoluminu(przedrostek_listy,linia,true,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
				if(not czy_pominac_ten_rozdzial_jako_linie)then
					nie_pomijaj_tego_rozdzialu=true;
				else
					nie_pomijaj_tego_rozdzialu=false;
				end;
    		end;
    		if(nie_pomijaj_tego_rozdzialu)then
    			local ile=0;
				local linia_rozwazana=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(linia,nil	,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,function(szablon,obiekt,kod--[[,czy_sam_siebie]])
					if(obiekt=="SZABLON")then
						return szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
							----
							local czy_link=linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu] 
										or inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu] 
													or stronicowyparser_potrzebne_modul.PodzielNaElementyNazwowyWikiLinkInteligentny(nazwa_szablonu	,tablica_danych_parametrow_szablonu_strony,kod);
							local czy_szablon=czy_link or szablony_kompletowania_stron_woluminu[nazwa_szablonu] 
												or szablony_licencji[nazwa_szablonu]
													--or szablony_ozdobne_stron_woluminu[nazwa_szablonu];
							if(czy_link)then ile=ile+1;end;
							return czy_szablon,obiekt,kod;
						end);
					elseif(obiekt=="LINKW")then
						if(specjalne_modul["CzyLinkWewnętrzny"](szablon))then
							ile=ile+1;
							return true,obiekt,kod;
						end;
					elseif(obiekt=="LINKZ")then
						ile=ile+1;
						return true,obiekt,kod;
					end;
				end);
				----
				local czy_linia_uwzgledniana=mw.ustring.match(linia_rozwazana,"^%s*%-%-+(.*)%-%-+%s*$");
	    		local czy_linia=((not czy_linia_uwzgledniana)and(mw.ustring.match(linia_rozwazana,"^%s*[%-%+%=%~]+.*$") 
    			                                            or ((#przedrostek_listy==0)and((mw.ustring.match(linia_rozwazana,"!"))and(mw.ustring.match(linia_rozwazana,"[^!]%s*$"))))
    			             or mw.ustring.match(linia_rozwazana,"^%s*<")) or nil);
    			----
    			local nowa_linia=false;
    			local function WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana)
	    			return function(tabela_rozdzial_artykulow2,numer_podtablicy_w_tablicy,tab_stare)
    					--if((czy_spis_rzeczy_napis_wprowadzenia_tekstu)and(numer_podtablicy_w_tablicy>2))then return;end;
    					if((czy_rozdzial_centrowany)and(w_rozdziale)and(czy_linia_uwzgledniana)and(tab_stare[2])and(tab_stare[2][1]))then
    						tab_stare[2][1]=tab_stare[2][1]+1;
    					end;
	    				if(not w_rozdziale)then
    						local function CzyZaliczac()
    							return ((not mw.ustring.match(linia,"^%w+%p+")) 
    								         and mw.ustring.match(linia,"^%s*'*%s*%w+"));
    						     --or mw.ustring.match(linia,"^%s*'*%s*"..szablonowe_modul.NormaWzoruKodowaniaTekstu("LINKZ"));
    						end;
    						if(nowa_linia)then
    							tab_stare[2][4]=true;
	    						table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
	    					elseif(((poziom_rozdzialu)or(#(przedrostek_listy or "")>0))and((ile>1)or(CzyZaliczac())))then
    							nowa_linia=true;
    							numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
    						
    							tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
   	   							tabela_rozdzial_artykulow=tabela_artykulow[numer_rozdzialu_w_ksiazce];
   		   		----
	   	   						local rozdzial_na_tekst=p.AnalizaNapisuWprowadzeniaTekstu(linia,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony);
			----
   	   							tabela_rozdzial_artykulow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
   	   							tab_stare[2][4]=true;
   	   							tab_stare[6]=(numer_podtablicy_w_tablicy>2) and 0 or nil;
   		   						tabela_rozdzial_artykulow[numer_podtablicy_w_tablicy]={};
	   	   						table.insert(tabela_rozdzial_artykulow[numer_podtablicy_w_tablicy],tab_stare);
	   	   					else
   	   							table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
    						end;
    					else
    						table.insert(tabela_rozdzial_artykulow2[numer_podtablicy_w_tablicy],tab_stare);
    					end;
    				end;
    			end;
	    		local function AnalizaLiniiObiekty(linia_rozwazana)
    				local tab_linia=LiniaArtykulow(linia_rozwazana);
	    		    for k=1,#tab_linia,1 do
    					local iterator2=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tab_linia[k],nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
	    				local tab_nieobslugiwane=nil;
	    				for szablon,obiekt,kod in iterator2 do
    						local czy_szablon=(obiekt=="SZABLON");local czy_link=((obiekt=="LINKW")or(obiekt=="LINKZ"));
	    					if(czy_szablon or czy_link)then
	    						local przerwij=nil;
		    					if(czy_szablon)then
		    						----
									local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu	,tabela_modyfikatorow)
										----
										--local przerwij=nil;
										local tabela_spisu=stronicowyparser_obiekty_modul.inne_linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
										if(tabela_spisu)then
											if(tabela_spisu[1]==true)then
												--local tabela_parametrow_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil	,tablica_danych_parametrow_szablonu_strony,kod);
												local numer_link=tabela_spisu["numer_link"];
										
												for name,value in pairs(tabela_parametrow_szablonu)do
													if(name~=numer_link)then
														local kod_w_nie_obslugiwanych=tabela_parametrow_szablonu[name];
														local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(kod_w_nie_obslugiwanych,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
														if(not tab_nieobslugiwane)then tab_nieobslugiwane={};end;
														for szablon,obiekt,kod in iter do
															if(not tab_nieobslugiwane[obiekt])then tab_nieobslugiwane[obiekt]={};end;
															tab_nieobslugiwane[obiekt][kod]=true;
														end;
													end;
												end;
												local tyt=tabela_parametrow_szablonu[numer_link];
												przedrostek_listy="";
												tekstowy_przedrostek,szablon=mw.ustring.match(tyt,"^'*[^%S\n]*([%d%.]*)[^%S\n]*([^\n]-)'*$");
												przerwij=true;
											else
												przedrostek_listy="";
												tekstowy_przedrostek=tabela_parametrow_szablonu[tabela_spisu["numer"]];
												szablon=tabela_parametrow_szablonu[tabela_spisu["link"]];
												przerwij=true;
											end;
										end;
									end);
								end;
								--[[if(przerwij)then
									local iterator3=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);
									for szablon2,obiekt2,kod2 in iterator3 do
										if(obiekt2=="SZABLON")then
											local tabela_parametrow_szablonu,nazwa_szablonu,tablica_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon2,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod2);
											local tabela_linku=stronicowyparser_obiekty_modul.linki_szablony_elementy_spisu_rzeczy[nazwa_szablonu];
											if(tabela_linku)then
												szablon=szablon2;
												break;
											end;
										elseif(obiekt2=="LINKW")then
											szablon=szablon2;
											break;
										end;
									end;
								end;]]
								local pozycja_artykulu=nil;local nazwa=nil;
								local tab_pozycja_elementow_w_spisie_rzeczy;local numer_rodzaju_artykulu_poprz;local id;local parametry_szablonu;local kom;
								local link_szablon=nil;
								local czy_obslugiwane=nil;
								local CzyObslugiwane=function()
									local wartosc=((tab_nieobslugiwane[obiekt])and(tab_nieobslugiwane[obiekt][kod]));
									czy_obslugiwane=wartosc;
									return (not wartosc);
								end;
								if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or(CzyObslugiwane())))then
									local linia_artykokow=tab_linia[k];
									numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy(linia,czy_linia_uwzgledniana),tabela_rozdzial_artykulow,tablica_artykulow_zebranych,wliczaj_artykuly_tego_rozdzialu,szablon,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,obiekt,kod,tab_nazwa_spisow_przekierowaniowych,--[[]]przedrostek_listy,tekstowy_przedrostek,w_rozdziale,linia_artykokow--[[]]);
									--mw.log()
									if((not czy_obslugiwane)and(not numer_rodzaju_artykulu_poprz))then
										link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
									end;
									--mw.logObject(tabela_rozdzial_artykulow)
   	   							else
   	   								link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
								end;
							--[[if(przerwij)then break;end;]]
    							if((not numer_rodzaju_artykulu_poprz)and(not przerwij)and(link_szablon)and((not tab_pozycja_elementow_w_spisie_rzeczy)or(not 		tab_pozycja_elementow_w_spisie_rzeczy[1]))and(czy_artykul_korzystany)and(licencja_z_autorem))then
    							---
    								local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,kod,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu_licencji,nazwa_szablonu_licencji,tabela_modyfikatorow_licencji)
    							
       									if(stronicowyparser_obiekty_modul.szablony_licencji[nazwa_szablonu_licencji])then
       										if(tabela_parametrow_szablonu_licencji)then
       	    									local autor=tabela_parametrow_szablonu_licencji["Autor"];
	       	    								local szkoly=tabela_parametrow_szablonu_licencji["Ukończone szkoły"];
    	   	    								local email=tabela_parametrow_szablonu_licencji["Email"];
       		    								local dotyczy=tabela_parametrow_szablonu_licencji["Dotyczy"];
       	    									local licencjonowanie=tabela_parametrow_szablonu_licencji["Licencjonowanie"];
       	    									local umowa_prawna=tabela_parametrow_szablonu_licencji["Umowa prawna"];
       	    									local konsekwencje=tabela_parametrow_szablonu_licencji["Konsekwencje"];
       			    							local frame=mw.getCurrentFrame();
    		   	    							if(autor~=nil)then
		       	    								autor=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(autor,nazwa_modulu	,tablica_analizy_obiektow_strony_dany_modul);}
	    	   	    							end;	
    		   	    							if(szkoly~=nil)then
	       		    								szkoly=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szkoly,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
       	    									end; 
       	    									if(email~=nil)then
       	    										email=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(email,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
       	    									end;
       	    									if(dotyczy~=nil)then
       	    										dotyczy=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(dotyczy,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
	    	   	    							end;
    		  	    							if(licencjonowanie~=nil)then
	       		    								licencjonowanie=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(licencjonowanie,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
       	    									end;
       	    									if(umowa_prawna~=nil)then
       	    										umowa_prawna=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(umowa_prawna,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
       	    									end;
       	    									if(konsekwencje~=nil)then
       	    										konsekwencje=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(konsekwencje,nazwa_modulu,tablica_analizy_obiektow_strony_dany_modul);}
	       	    								end;
    	   	    								if(autor~=nil)then 
       		  										tabela_licencji_spisu_tresci={autor, szkoly, email, dotyczy, licencjonowanie, umowa_prawna, konsekwencje};
		      	  									licencja_z_autorem=false; 
    		   	    							end;
    		   	    							return true;
       										elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then
	       	   									stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera");
	       	   								end;
       	   								end;
    								end);
   									if(wynik)then break;end;
       							end;
    						end;
    					end;
    				end;
    			end;
    			if(not czy_linia)then AnalizaLiniiObiekty(linia_rozwazana);end;
    		end;
    	end;
    	numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
    end;
    local parsuj_rozdzialami=nil;
    for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
    	---rozdzial_tab[1]=rozdzial;rozdzial_tab[2]=linia rozdziału
    	AnalizaRozdzialu(rozdzial_tab[1],rozdzial_tab[2],text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany);
    	if(not parsuj_rozdzialami)then  parsuj_rozdzialami=true;end
    end;
    if(not parsuj_rozdzialami)then
    	AnalizaRozdzialu("Spis treści",nil,tekst_rozwiniety_calego_artykulu,nil,nil,nil,nil);
    end;
    --mw.logObject(tabela_artykulow);
    if(czy_artykul_korzystany)then 
    	return tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci;
    else 
    	return tabela_artykulow,nil,przekierowanie_spisu_tresci;
    end;
end;
function p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)
	local parametry_modul=require("Module:Parametry");
	if(not parametry_modul.TypeTable(tabela_artykulow))then return;end;
	local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
	local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
	
	local odczyt_jakie_spisy_tresci=stronicowyparser_obiekty_modul.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu;
	local jakie_spisy_tresci=parametry_modul["KopiujTabelęElementów"](odczyt_jakie_spisy_tresci);
	setmetatable(jakie_spisy_tresci,parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
	
	for _,tab_lista in ipairs(tabela_artykulow)do
		if(tab_lista[2])then
  			for _,artykul_w_bazie_element in ipairs(tab_lista[2])do
  				local artykul_w_bazie=artykul_w_bazie_element[1];
 				local czy_table=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(artykul_w_bazie);
  				artykul_w_bazie=czy_table and artykul_w_bazie[1] or artykul_w_bazie;
	 			local artykul_bez_naglowka_w_bazie=stronicowyparser_potrzebne_modul.TylkoNazwaStronyWoluminuZTabeliPublikacji(artykul_w_bazie);
	 			if(jakie_spisy_tresci[artykul_bez_naglowka_w_bazie])then
	 				return artykul_bez_naglowka_w_bazie;
	 			end;
  			end;
 		end;
	end;
end;
function p.ZbieranieInformacjiSpisuRzeczyWoluminuEwentualnieWedleAutonawigacji(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,czy_artykul_korzystany,__FUNKCJA_SPISU_RZECZY,__FUNKCJA_ZBIERANIA_DANYCH)
	local adres_ksiazki_glownego_spisu_tresci=nil;
	local techniczne_modul=require("Module:Techniczne");
	local nazwy_modul=require("Module:Nazwy");
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	
	local pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
    local ile2,_=techniczne_modul.PoliczZbiory{[1]=pelna_nazwa_ksiazki,};
	   if(ile2>0)then
    		local strona_spisu_tresci=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_ksiazki);
    		if(strona_spisu_tresci)then
    			local html_modul=require("Module:Html");
    			strona_spisu_tresci=html_modul.DecodeHtml(strona_spisu_tresci,true);
    			local tabela_nazw={};
    	  		local nazwa_przestrzeni2=nazwy_modul["NAZWAPRZESTRZENI"](strona_spisu_tresci,tabela_nazw);
    	  		local nazwa_przestrzeni_ksiazki2=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_spisu_tresci,tabela_nazw);
    	  		local nazwa_ksiazki2=(nazwa_przestrzeni_ksiazki2=="") 
    	  			                        and nazwy_modul["NAZWAKSIĄŻKI"](strona_spisu_tresci,tabela_nazw) 
    	  			                           or nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_spisu_tresci,tabela_nazw);
    	  		---- 
    	  		if((nazwa_przestrzeni~=nazwa_przestrzeni2)or(nazwa_przestrzeni_ksiazki~=nazwa_przestrzeni_ksiazki2)or(nazwa_ksiazki~=nazwa_ksiazki2))then
    	  			if(((nazwa_przestrzeni2==nazwy_np_modul.Main)or(nazwa_przestrzeni2==nazwy_np_modul.Wikijunior))or(((nazwa_przestrzeni2==nazwy_np_modul.Wikibooks)or(nazwa_przestrzeni2==nazwy_np_modul.User))and(nazwa_przestrzeni_ksiazki2~="")))then
    	  					----
    						adres_ksiazki_glownego_spisu_tresci={nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2,};
    						local wynik=__FUNKCJA_SPISU_RZECZY and __FUNKCJA_SPISU_RZECZY(nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2) or nil;
    						if((wynik or 0)==1)then
    							return 1;
    						end;
    	  					 ----
    	  					nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki=nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2;
    	  					pelna_nazwa_ksiazki=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
    	  			else
    	  				return 2;
    	  			end;
    	  	end;
    	end;
    end;
	local parametry_modul=require("Module:Parametry");
	local function Spis(tablista_artykulow,spis_tresci,tab_inne_spisy,nazwa_glownego_spisu,numer)
		if((parametry_modul.TypeTable(tablista_artykulow)) and parametry_modul["CzySąElementyTablicy"](tablista_artykulow))then
			local czy_spis_tresci_table=parametry_modul.TypeTable(spis_tresci);
			local spis_tresci_strona=czy_spis_tresci_table and spis_tresci[1] or spis_tresci;
			----
			local przekierowanie_strona=czy_spis_tresci_table and spis_tresci[2] or nil;
			local tab_element={[1]={((not spis_tresci) and "Główny spis treści" or ("Spis treści - "..spis_tresci_strona)),{((spis_tresci) and 1 or nil),nil,nil,},["spis"]={spis_tresci_strona or nazwa_glownego_spisu or "",numer}},[2]=nil,[3]=nil,};
			---
			if(not tablista_artykulow[1][1][2][1])then
				for numer,tab_lista in ipairs(tablista_artykulow[1])do
					if(numer>1)then
						tab_element[numer]=tab_lista;
					end;
				end;
				table.remove(tablista_artykulow,1);
			end;
			---
			for _,tab_lista in ipairs(tablista_artykulow)do
				local numer_rozdzialu=tab_lista[1][2][1];
				local czy_rozdzial_centrowany=tab_lista[1][2][4];
				if(numer_rozdzialu>0)then 
					tab_lista[1][2][1]=numer_rozdzialu+1; 
				end;
				if(czy_rozdzial_centrowany)then break;end;
			end;
			---
			numer=numer+1;
			---
			--if(not tablista_artykulow)then tablista_artykulow={};end;
			----
			table.insert(tablista_artykulow,1,tab_element);
			if(spis_tresci)then
				if(not tab_inne_spisy)then tab_inne_spisy={};end;
				table.insert(tab_inne_spisy,spis_tresci);
				if(not tablista_artykulow[1][2])then tablista_artykulow[1][2]={};end;
				local tab_stare={czy_spis_tresci_table and {spis_tresci_strona,nil,przekierowanie_strona} or spis_tresci,{0,"","",true,},"[[:"..pelna_nazwa_ksiazki.."/"	..spis_tresci_strona.."]]",false,};
				table.insert(tablista_artykulow[1][2],1,tab_stare);
			end;
		end;
		return tablista_artykulow,tab_inne_spisy,numer;
	end;
    local function InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer)
    			--mw.logObject(tablista_artykulow,"TYTAn123fhh");
		local tablista_artykulow_iter,tablica_licencji,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,spis_tresci,false,nil,__FUNKCJA_ZBIERANIA_DANYCH);
		--mw.logObject(tablista_artykulow_iter,spis_tresci);
				----
		if((tablista_artykulow_iter)and(parametry_modul.TypeTable(tablista_artykulow_iter)))then
			tablista_artykulow_iter,tab_inne_spisy,numer=Spis(tablista_artykulow_iter,(not przekierowanie_spisu_tresci)and spis_tresci or {przekierowanie_spisu_tresci,spis_tresci,},tab_inne_spisy,nil,numer);
			for _,value in ipairs(tablista_artykulow_iter)do
				if((not tablista_artykulow)or(not parametry_modul.TypeTable(tablista_artykulow)))then tablista_artykulow={};end;
				table.insert(tablista_artykulow,value);
			end;
		end;
		return tablista_artykulow,tab_inne_spisy,numer;
	end;
	local function SpisRzeczy(tabela_artykulow,tab_inne_spisy)
		local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tabela_artykulow)
		if(artykul_spisu_rzeczy)then
			local numer=1;
			tabela_artykulow,tab_inne_spisy,numer=Spis(tabela_artykulow,nil,tab_inne_spisy,"",numer);
			tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tabela_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
		end;
		return tabela_artykulow,tab_inne_spisy;
	end;

	local adres_ustawien=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "").."NawigacjaSpecjalna/Nawigacja/"..pelna_nazwa_ksiazki;
	----
	adres_ustawien=techniczne_modul.PrzekierowanieDoStrony(adres_ustawien) or adres_ustawien;
	----
	local tekst=techniczne_modul.WikikodStrony{["przestrzeń"]="",["nazwa"]=adres_ustawien,};
	if(not tekst)then
		local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
		local tab_inne_spisy;
		tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
		return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
	end;
	local tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji={};
	local szablonowe_modul=require("Module:Szablonowe");
	local tekst_zakodowany=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,nil,nil);
	local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
	local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zakodowany,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji);
	local szablon_uklad_autonawigacji;
	local tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji={};
	local tabela_parametrow_szablonu_uklad_autonawigacji;
	local nazwa_szablonu_uklad_autonawigacji;
	local tabela_modyfikatorow_uklad_autonawigacji;
	for szablon,obiekt,kod in iterator do
		if(obiekt=="SZABLON")then
			local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachZnacznikachParserachZmiennychOrazModyfikatorachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,kod,adres_ustawien,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
				tabela_parametrow_szablonu_uklad_autonawigacji=tabela_parametrow_szablonu;
				nazwa_szablonu_uklad_autonawigacji=nazwa_szablonu;
				tabela_modyfikatorow_uklad_autonawigacji=tabela_modyfikatorow;
				if(nazwa_szablonu==stronicowyparser_obiekty_modul.uklad_autonawigacji)then 
					szablon_uklad_autonawigacji=szablon;
					return true;
				end;
			end);
			if(wynik)then break;end;
		end;
	end;
	if(not szablon_uklad_autonawigacji)then
		local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
		local tab_inne_spisy;
		tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
		return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
	end;
	--local tabela_parametrow_szablonu_uklad_autonawigacji,nazwa_szablonu_uklad_autonawigacji,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon_uklad_autonawigacji);
	if(not tabela_parametrow_szablonu_uklad_autonawigacji)then
		local tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
		local tab_inne_spisy;
		tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
		return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
	end;
	local parametry_modul=require("Module:Parametry");
	local automat_manualny=tabela_parametrow_szablonu_uklad_autonawigacji["automat manualny"];
	----
	local html_modul=require("Module:Html");
	----
	local czy_automat_manualny=(automat_manualny) and parametry_modul.CzyTak(automat_manualny) or nil;
	if(czy_automat_manualny)then
		local sub_nazwa_spis_tresci;
		local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści"];
		spis_tresci=spis_tresci and html_modul.DecodeHtml(spis_tresci,true) or nil;
		if(parametry_modul.CzyTak(spis_tresci))then
			local nazwy_modul=require("Module:Nazwy");
			local tabela_nazw={};
			local pelna_nazwa_ksiazki_spisu_tresci=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci,tabela_nazw);
			if(pelna_nazwa_ksiazki_spisu_tresci==pelna_nazwa_ksiazki)then
				sub_nazwa_spis_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci,tabela_nazw);
			else
				sub_nazwa_spis_tresci="";
			end;
		else
			sub_nazwa_spis_tresci="";
		end;
		local  tabela_artykulow,tabela_licencji_spisu_tresci,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,sub_nazwa_spis_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
		tabela_artykulow,tab_inne_spisy=SpisRzeczy(tabela_artykulow,nil);
		return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and sub_nazwa_spis_tresci or {przekierowanie_spisu_tresci,sub_nazwa_spis_tresci,},tab_inne_spisy,nil,adres_ksiazki_glownego_spisu_tresci;
	end;
	local frame=mw.getCurrentFrame();
	for name,value in pairs(tabela_parametrow_szablonu_uklad_autonawigacji)do
		tabela_parametrow_szablonu_uklad_autonawigacji[name]=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(value,adres_ustawien,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,function(szablon,obiekt,kod)
				if(obiekt=="ZMIENNA")then
					szablon,_=mw.ustring.gsub(szablon,"{{{([^|{}]*)|([^{}]-)}}}","{{(((}}%1{{!}}%2{{)))}}");
					szablon,_=mw.ustring.gsub(szablon,"{{{([^|{}]*)}}}","{{(((}}%1{{)))}}");
					return szablon;
				end;
			end),};
	end;
	local nazwy_modul=require("Module:Nazwy");
	local bez_spisow_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["bez spisów treści"];
	local czy_bez_spisow_tresci=(bez_spisow_tresci) and parametry_modul.CzyTak(bez_spisow_tresci) or nil;
	local bez_analizy_spisow_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["bez analizy spisów treści"];
	local czy_bez_analizy_spisow_tresci=(bez_analizy_spisow_tresci) and parametry_modul.CzyTak(bez_analizy_spisow_tresci) or nil;
	----
	local tab_inne_spisy;local nazwa_glownego_spisu;
	local tablista_artykulow;
	local licencja;
	local numer=1;
	----
	--local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
	----
	local tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;local tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;local przekierowanie_spisu_tresci;
	if(not czy_bez_spisow_tresci)then
		local spis_tresci_main=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści"];
	
		if(spis_tresci_main)then
			spis_tresci_main=html_modul.DecodeHtml(spis_tresci_main,true);
   			---
    		spis_tresci_main=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=spis_tresci_main,[2]=pelna_nazwa_ksiazki,};
		end;
	
		local tabela_nazw={};
		local pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci=parametry_modul.CzyTak(spis_tresci_main) 
	                                                  and nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci_main,tabela_nazw) 
	                                                      or pelna_nazwa_ksiazki;
		if(pelna_nazwa_ksiazki~=pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci)then
			return 0;
		end;
		nazwa_glownego_spisu=parametry_modul.CzyTak(spis_tresci_main) 
	                                                  and nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci_main,tabela_nazw) 
	                                                      or "";
	 else
	 	nazwa_glownego_spisu="";
	 end;
	 
	 if((not czy_bez_spisow_tresci)and(not czy_bez_analizy_spisow_tresci))then	                                                      
		tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika,tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_glownego_spisu,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci,__FUNKCJA_ZBIERANIA_DANYCH);
		if(przekierowanie_spisu_tresci)then
			nazwa_glownego_spisu={przekierowanie_spisu_tresci,nazwa_glownego_spisu,};
		end;
		if((not tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika)or(tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika==0))then
			return tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
		end;

		local IteratorSpisTresci=function()
			local liczba=1;
			return function()
				local spis_tresci=tabela_parametrow_szablonu_uklad_autonawigacji["spis treści "..liczba];
				liczba=liczba+1;
				return spis_tresci;
			end;
		end;
		
		local iter=IteratorSpisTresci();
		
		tablista_artykulow=tabela_artykulow_ksiazek_wedlug_strony_glownej_podrecznika;
		licencja=tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
		
		tablista_artykulow,tab_inne_spisy,numer=Spis(tablista_artykulow,nil,tab_inne_spisy,nazwa_glownego_spisu,numer);
		local artykul_spisu_rzeczy=p.CzyJestStronaInnegoGeneralnegoSpisuRzeczyArtykularnaNaGeneralnymSpiseRzeczyWePodreczniku(tablista_artykulow);
		if(artykul_spisu_rzeczy)then
			tabela_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,artykul_spisu_rzeczy,numer);
		end;
	
		for spis_tresci in iter do
   			---
   			if(not parametry_modul.CzyTak(spis_tresci))then return;end;
   			spis_tresci=html_modul.DecodeHtml(spis_tresci,true);
    		spis_tresci=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=spis_tresci,[2]="",};
			---
			tablista_artykulow,tab_inne_spisy,numer=InneSpisy(tablista_artykulow,tab_inne_spisy,spis_tresci,numer);
		end;
	end;
	----
	local IteratorFun=function()
		local liczba=1;
		local STRONA=function(liczba)return liczba*2-1;end;
		local NAZWA=function(liczba)return liczba*2;end;
		return function()
			local strona=tabela_parametrow_szablonu_uklad_autonawigacji[STRONA(liczba)];
			local nazwa=tabela_parametrow_szablonu_uklad_autonawigacji[NAZWA(liczba)];
			liczba=liczba+1;
			return strona,nazwa;
		end;
	end;
	local tablica_stron_ksiazki={};
	local tablica_stron_inne={};
	local iter=IteratorFun();
	local ksiazkawe_modul=require("Module:Książkowe");
	local pudelko_modul=require("Module:Pudełko");
	local wiki_modul=require("Module:Wiki");
	local dodatkowe_artykuly=nil;
	local tablica_artykulow_zebranych={};
	local tab_nazwa_spisow_przekierowaniowych={};
	local dodatkowe_artykuly=nil;
	local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne")
	local tabela_rozdzial_artykulow=nil;
	----
	local pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej=(nazwa_przestrzeni and nazwa_przestrzeni_ksiazki and nazwa_ksiazki) 
                                             and nazwy_modul["NazwaModułu"](((nazwy_np_modul.Template~=nazwa_przestrzeni) and (nazwa_przestrzeni) or ""),nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"")
                                                   or nil;
    local pelna_nazwa_spisu_tresci_szablonowa=pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej and (((nazwa_przestrzeni=="")and ":" or "")..pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej)or nil;
	----
	--local tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji={};
	----
	for strona,nazwa in iter do
		local function ZbieranieDanychStronZAutonawigacji()
			if(not parametry_modul.CzyTak(strona))then return;end;
			strona=html_modul.DecodeHtml(strona,true);
			nazwa=parametry_modul.CzyTak(nazwa) and html_modul.DecodeHtml(nazwa,true) or nil;
			if(not dodatkowe_artykuly)then
				if((not tablista_artykulow)or(not parametry_modul.TypeTable(tablista_artykulow)))then tablista_artykulow={};end;
				table.insert(tablista_artykulow,{[1]={"Dodatkowe artykuły",{1,nil,nil},["dodatkowe"]="tak",},[2]=nil,});
				tabela_rozdzial_artykulow=tablista_artykulow[#tablista_artykulow];
			end;
   			---
    		strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_ksiazki,};
    		local WsadzanieParametryDoTablicy=function(tabela_rozdzial_artykulow,numer_rodzaju_artykulow_w_nie_podreczniku,tab_stare)
    			if(not dodatkowe_artykuly)then dodatkowe_artykuly={};end;
    			----
    			local czy_table_baza_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab_stare[1]);
    			local adres=czy_table_baza_artykulu and tab_stare[1][1] or tab_stare[1];
    		
    			local czy_w_podreczniku=tab_stare[5];
    			local kod_jezyka_koncowy=czy_table_baza_artykulu and tab_stare[1][5] or nil;
    			local kod_projektu_koncowy=czy_table_baza_artykulu and tab_stare[1][6] or nil;
    			----
				table.insert(dodatkowe_artykuly,{((adres) and (kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,kod_jezyka_koncowy,kod_projektu_koncowy,}) or adres),nazwa,czy_w_podreczniku,});
				----
    			table.insert(tabela_rozdzial_artykulow[numer_rodzaju_artykulow_w_nie_podreczniku],tab_stare);
    		end;
    		local numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy;
    		numer_rodzaju_artykulu_poprz,tab_pozycja_elementow_w_spisie_rzeczy,tablica_artykulow_zebranych=WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,WsadzanieParametryDoTablicy,tabela_rozdzial_artykulow,tablica_artykulow_zebranych,true,{strona,nazwa,},nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"",pelna_nazwa_spisu_tresci_szablonowa,pelna_nazwa_ksiazki,tablica_analizy_obiektow_strony_dany_modul_uklad_autonawigacji,tablica_danych_parametrow_szablonu_strony_uklad_autonawigacji,nil,nil,tab_nazwa_spisow_przekierowaniowych,--[[]]"*","",false,"[[:"..strona..((parametry_modul.CzyTak(nazwa))and("|"..nazwa) or "").."]]");
		end;
		ZbieranieDanychStronZAutonawigacji();
	end;
	----
	return tablista_artykulow,licencja,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci;
end;
return p;