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_artykolow)
    local ile=0;
    for i=2,11,1 do
        ile=ile+#(tabela_rozdzial_artykolow[i] or {});
    end;
    return ile;
end;
local function WstawianieElementowychZarejestrowanychStronDoBazyWoluminu(self,__FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY,tabela_rozdzial_artykolow,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");
	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+5);
	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 wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachOrazZnacznikachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
   				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
					if(szablony_rozwijane_przez_javascript_nazwowe_linkowe[nazwa_szablonu])then
						local szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul);
						return szablon;
					end;
				elseif(nazwa_szablonu=="Br")then
					return " ";
				else
					return wynik;
				end;
   		    end);
   			if(wynik)then return wynik;end;
   		 elseif(obiekt=="ZNACZNIK")then
		    local nazwa,zawartosc,atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeZnacznika(szablon,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);
	   		    czy_tablica=parametry_modul.TypeTable(tab_pozycja_elementow_w_spisie_rzeczy[1]);
   		        if(not czy_tablica)then
   		    		tablica_artykulow_zebranych={tab_pozycja_elementow_w_spisie_rzeczy[1],0,false,};
   		    	else
   		    		if(tablica_artykulow_zebranych[1]~=tab_pozycja_elementow_w_spisie_rzeczy[1][1])then
   	   					tablica_artykulow_zebranych={tab_pozycja_elementow_w_spisie_rzeczy[1][1],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
   		    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)
   		    	return RozwijanieNazwy(szablon,obiekt,kod);
   		    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_artykolow[numer_rodzaju_artykulu_w_podreczniku])then tabela_rozdzial_artykolow[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)
        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 {przekierowanie, tab_pozycja_elementow_w_spisie_rzeczy[1][2], tab_pozycja_elementow_w_spisie_rzeczy[1][3],} 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,},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
        			--table.insert(tabela_rozdzial_artykolow[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
        			--WsadzanieParametryDoTablicy(tabela_rozdzial_artykolow,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        			 __FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykolow,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,},{#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,w_rozdziale,},linia_artykokow,id,true,};
        			--table.insert(tabela_rozdzial_artykolow[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
        			--WsadzanieParametryDoTablicy(tabela_rozdzial_artykolow,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        			 __FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykolow,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 tab_stare={((tab_pozycja_elementow_w_spisie_rzeczy[2] or tablica_przekierowania or tab_pozycja_elementow_w_spisie_rzeczy[5]) 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],}) 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_artykolow)) or nil,};
        --table.insert(tabela_rozdzial_artykolow[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
        --WsadzanieParametryDoTablicy(tabela_rozdzial_artykolow,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        --mw.logObject(tab_stare,"TYTAN1")
        __FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykolow,numer_rodzaju_artykulu_w_podreczniku,tab_stare);
        --mw.logObject(tabela_rozdzial_artykolow,"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
   		    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)
   		    	return RozwijanieNazwy(szablon,obiekt,kod);
   		    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_artykolow_w_nie_podreczniku=numer_rodzaju_artykulu+1;
        -----
        if(not tabela_rozdzial_artykolow[numer_rodzaju_artykolow_w_nie_podreczniku])then 
        	tabela_rozdzial_artykolow[numer_rodzaju_artykolow_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])))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],}) 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_artykolow),};
       --table.insert(tabela_rozdzial_artykolow[numer_rodzaju_artykolow_w_nie_podreczniku],tab_stare);
       --WsadzanieParametryDoTablicy(tabela_rozdzial_artykolow,numer_rodzaju_artykolow_w_nie_podreczniku,tab_stare);
       __FUNKCJA_DO_WSTAWIANIA_DO_SPISU_RZECZY(tabela_rozdzial_artykolow,numer_rodzaju_artykolow_w_nie_podreczniku,tab_stare);
    end;
    --mw.logObject(tabela_rozdzial_artykolow,"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 rozdzial_na_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(rozdzial,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
    	if(obiekt=="SZABLON")then
    		-----
    		local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
    		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 stronicowyparser_rozdzialy_modul=require("Module:StronicowyParser/Rozdziały");
			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(not wynik)then
				----
				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.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachOrazZnacznikachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
					----
					local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
					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];
					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;
			else
				return wynik;
			end;
    	elseif(obiekt=="NOWIKI")then
    		local nazwa,zawartosc,tab_atrybuty=szablonowe_modul.WydzielanieNazwyTekstuOrazOpcjiAtrybutowychZeTaguNowiki(szablon,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_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_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ńLinkiWewnętrzneNaTekst"](rozdzial_na_tekst);
			rozdzial_na_tekst=specjalne_modul["ZamieńLinkiZewnę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 pelna_nazwa_ksiazki_przekierowania=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona);
   		if(pelna_nazwa_ksiazki_przekierowania~=pelna_nazwa_ksiazki)then return 0;end;
    	nazwa_modulu=nazwy_modul["PEŁNANAZWASTRONY"](strona);
    	nazwa_spisu_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
    	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 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,czy_glowna_strona)
    	return nil;
    end);
   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,--[[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_linkow_wewnetrznych=not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu("LINKW")) 
    			                                        	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 bez_kodow=not mw.ustring.match(szablon,szablonowe_modul.NormaWzoruKodowaniaTekstu());
    				if(bez_kodow)then return;end;
    				-----
    				--local czy_szablon,zawartosc=mw.ustring.match(szablon,"^{{%s*([^{}|]-)%s*|([^{}]*)}}$");
    				--if(not czy_szablon or not zawartosc)then return;end;
                	--local nazwa_szablonu=szablonowe_modul["SzablonowaNazwaStrony"](czy_szablon);
                	local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachOrazZnacznikachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,pelna_nazwa_spisu_tresci_szablonowa,function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)
    			
    					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;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);
					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);
    	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 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_artykolow;

   	   	if(not tabela_artykulow[numer_rozdzialu_w_ksiazce])then 
   	   		tabela_artykulow[numer_rozdzialu_w_ksiazce]={};
   	   		----
   	   		tabela_rozdzial_artykolow=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_artykolow[1]={rozdzial_na_tekst,{poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany,},rozdzial,};
   	   		spreparowany_uzyskany_tekst_rozdzialu=rozdzial_na_tekst;
   	   	end;
   	   
   	    if((poziom_rozdzialu)and(not czy_jest_spis_tresci)and(not dalej_nie_rozwazaj_spis_tresci)and(jakie_spisy_tresci[spreparowany_uzyskany_tekst_rozdzialu]))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;
        				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 LiniaArtykolow(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;
        	 
        	 function SzablonAnalizujKompletnosc(szablon)
        	 	----
        		local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachOrazZnacznikachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,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_artykolow=mw.text.split(linia,"%s*,%s*",false);
            for i=1,#tabela_linii_artykolow,1 do
              	tabela_linii_artykolow[i],_=mw.ustring.gsub(tabela_linii_artykolow[i],"&#"..mw.ustring.byte(',')..";",",");
            end;
            
            return tabela_linii_artykolow;
        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 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.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachOrazZnacznikachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,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;
				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_artykolow2,numer_podtablicy_w_tablicy,tab_stare)
    				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_artykolow2[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_artykolow=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_artykolow[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_artykolow[numer_podtablicy_w_tablicy]={};
   	   						table.insert(tabela_rozdzial_artykolow[numer_podtablicy_w_tablicy],tab_stare);
   	   					else
   	   						table.insert(tabela_rozdzial_artykolow2[numer_podtablicy_w_tablicy],tab_stare);
    					end;
    				else
    					table.insert(tabela_rozdzial_artykolow2[numer_podtablicy_w_tablicy],tab_stare);
    				end;
    			end;
    		end;
    		local function AnalizaLiniiObiekty(linia_rozwazana)
    			local tab_linia=LiniaArtykolow(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");
	    				if(czy_szablon or czy_link)then
	    					local przerwij=nil;
	    					if(czy_szablon)then
	    						----
								local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachOrazZnacznikachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,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_artykolow,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_artykolow)
   	   						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.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachOrazZnacznikachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,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;
    	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.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 nazwa_przestrzeni2=nazwy_modul["NAZWAPRZESTRZENI"](strona_spisu_tresci);
    	  		local nazwa_przestrzeni_ksiazki2=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona_spisu_tresci);
    	  		local nazwa_ksiazki2=(nazwa_przestrzeni_ksiazki2=="") 
    	  			                        and nazwy_modul["NAZWAKSIĄŻKI"](strona_spisu_tresci) 
    	  			                           or nazwy_modul["SUBNAZWAKSIĄŻKI"](strona_spisu_tresci);
    	  		---- 
    	  		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 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);
		return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},nil,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,nazwa_szablonu_uklad_autonawigacji,tabela_modyfikatorow_uklad_autonawigacji;
	for szablon,obiekt,kod in iterator do
		if(obiekt=="SZABLON")then
			local wynik=szablonowe_modul.UzyskanieWynikuZOperacjiSzablonowychNaSzablonachOrazZnacznikachZDanychObiektuSZABLON(szablon,tablica_danych_parametrow_szablonu_strony,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);
		return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},nil,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);
		return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and "" or {przekierowanie_spisu_tresci,"",},nil,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 pelna_nazwa_ksiazki_spisu_tresci=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci);
			if(pelna_nazwa_ksiazki_spisu_tresci==pelna_nazwa_ksiazki)then
				sub_nazwa_spis_tresci=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](spis_tresci);
			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);
		return tabela_artykulow,tabela_licencji_spisu_tresci,(not przekierowanie_spisu_tresci) and sub_nazwa_spis_tresci or {przekierowanie_spisu_tresci,sub_nazwa_spis_tresci,},nil,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_artykolow;
	local licencja;
	local numer=1;
	----
	--local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
	----
	local tabela_artykolow_ksiazek_wedlug_strony_glownej_podrecznika,tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
	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 pelna_nazwa_ksiazki_wedlug_glownego_spisu_tresci=parametry_modul.CzyTak(spis_tresci_main) 
	                                                  and nazwy_modul["PEŁNANAZWAKSIĄŻKI"](spis_tresci_main) 
	                                                      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) 
	                                                      or "";
	 else
	 	nazwa_glownego_spisu="";
	 end;
	 if((not czy_bez_spisow_tresci)and(not czy_bez_analizy_spisow_tresci))then	                                                      
		tabela_artykolow_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_artykolow_ksiazek_wedlug_strony_glownej_podrecznika)or(tabela_artykolow_ksiazek_wedlug_strony_glownej_podrecznika==0))then
			return tabela_artykolow_ksiazek_wedlug_strony_glownej_podrecznika;
		end;

		local IteratorSpisTresci=function()
			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_artykolow=tabela_artykolow_ksiazek_wedlug_strony_glownej_podrecznika;
		licencja=tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
		
		function Spis(tablista_artykolow,spis_tresci)
			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)),{1,nil,nil,},["spis"]={spis_tresci_strona or nazwa_glownego_spisu or "",numer}},[2]=nil,[3]=nil,};
			---
			if((parametry_modul.TypeTable(tablista_artykolow)) and parametry_modul["CzySąElementyTablicy"](tablista_artykolow))then
				if(not tablista_artykolow[1][1][2][1])then
					for numer,tab_lista in ipairs(tablista_artykolow[1])do
						if(numer>1)then
							tab_element[numer]=tab_lista;
						end;
					end;
					table.remove(tablista_artykolow,1);
				end;
				---
				for _,tab_lista in ipairs(tablista_artykolow)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;
			
			end;
			---
			numer=numer+1;
			---
			if(not tablista_artykolow)then tablista_artykolow={};end;
			----
			table.insert(tablista_artykolow,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_artykolow[1][2])then tablista_artykolow[1][2]={};end;
				local tab_stare={czy_spis_tresci_table and {spis_tresci_strona,nil,przekierowanie_strona} or spis_tresci,{1,"","",true,},"[[:"..pelna_nazwa_ksiazki.."/"..spis_tresci_strona.."]]",false,};
				table.insert(tablista_artykolow[1][2],1,tab_stare);
			end;
			return tablista_artykolow;
		end;
		if((not tablista_artykolow)or(tablista_artykolow==0))then tablista_artykolow={};end;
		tablista_artykolow=Spis(tablista_artykolow);
	
		for spis_tresci in iter do
   			---
   			local function ZbieranieDanychSpisowychRzeczy()
   				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]="",};
				---
				local tablista_artykolow_iter,tablica_licencji,przekierowanie_spisu_tresci=p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,spis_tresci,false,nil,__FUNKCJA_ZBIERANIA_DANYCH);
				----
				if((tablista_artykolow_iter)and(tablista_artykolow_iter~=0))then
					local tablista_artykolow_iter=Spis(tablista_artykolow_iter,(not przekierowanie_spisu_tresci)and spis_tresci or {przekierowanie_spisu_tresci,spis_tresci,});
					for _,value in ipairs(tablista_artykolow_iter)do
						table.insert(tablista_artykolow,value);
					end;
				end;
   			end;
			ZbieranieDanychSpisowychRzeczy();
		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_artykolow=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_artykolow)then tablista_artykolow={};end;
				table.insert(tablista_artykolow,{[1]={"Dodatkowe artykuły",{1,nil,nil},["dodatkowe"]="tak",},[2]=nil,});
				tabela_rozdzial_artykolow=tablista_artykolow[#tablista_artykolow];
			end;
   			---
    		strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=pelna_nazwa_ksiazki,};
    		local WsadzanieParametryDoTablicy=function(tabela_rozdzial_artykolow,numer_rodzaju_artykolow_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_artykolow[numer_rodzaju_artykolow_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_artykolow,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_artykolow,licencja,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci;
end;
return p;