Moduł:StronicowyParser/SpisTreści

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
 Dokumentacja modułu [stwórz] [odśwież]
local p={};
function p.ZbieranieInformacjiWoluminuDanegoSpisuRzeczy(self,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_artykul_korzystany,adres_ksiazki_glownego_spisu_tresci)
   local parametry_modul=require("Module:Parametry");
   if((not nazwa_przestrzeni)or(not nazwa_przestrzeni_ksiazki)or(not nazwa_ksiazki))then return 0;end;
   local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":") or "")
                         ..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/") or "")
                                 ..nazwa_ksiazki;
   local nazwa_modulu=pelna_nazwa_ksiazki..((nazwa_spisu_tresci~="")and("/"..nazwa_spisu_tresci) or "");
   local techniczne_modul=require("Module:Techniczne");
   local szablonowe_modul=require("Module:Szablonowe");
   local nazwy_modul=require("Module:Nazwy");
   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 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;
   end;
   local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
   local tekst_rozwiniety_calego_artykulu=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,nazwa_modulu,true);
   if(not tekst_rozwiniety_calego_artykulu)then return 0;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][Śś][Cc][Ii]))$";
    local tablica_obiektow_strony_dany_modul={};
    local tablica_parametrow_szablonu_strony={};
    local iterator=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_obiektow_strony_dany_modul,tablica_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,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 tabela_parametrow_szablonu,nazwa_szablonu,tablica_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_parametrow_szablonu_strony,kod);
    			
    				local czy_szablony_ozdobne=stronicowyparser_obiekty_modul.szablony_ozdobne_stron_woluminu[nazwa_szablonu];
    				if(czy_szablony_ozdobne)then return;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_parametrow_szablonu_strony,kod);
    				if(tab_wyzyskane_od_nazwy_szablonu)then return;end;
    				-----
    				return "";
    			elseif(obiekt=="WIKITABELA")then
   					szablon=mw.ustring.match(szablon,"^{|(.-)|}$");
   					szablon=mw.ustring.gsub(szablon,"[|!][|!]","\n");
   					szablon=mw.ustring.gsub(szablon,"\n|[%-%+][^%S\n]+[^|\n]*","\n");
   					szablon=mw.ustring.gsub(szablon,"\n|%-","\n");
   					szablon=mw.ustring.gsub(szablon,"\n|%+","\n");
   					szablon=mw.ustring.gsub(szablon,"\n|","\n");
					return szablon;
    			end;
    			return;
    	    end;
			if(not czy_naglowek)then
				local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(str,pelna_nazwa_strony,tablica_analizy_dany_modul)
				for szablon,obiekt,kod,poziom_iteracji in iter do
					local wynik=FunkcjaIteratoraTekstuZakodowego(szablon,obiekt,kod);
					if(wynik)then
						str=szablonowe_modul:PrzeksztalacanieBazyDanychKodowaniaTekstu(str,pelna_nazwa_strony,tablica_analizy_dany_modul,wynik,obiekt,kod,poziom_iteracji);
					end;
				end;
				return str;
			end;
			return str;
    end );

    local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
	
	local odczyt_jakie_nie_rozdzialy=stronicowyparser_obiekty_modul.tab_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.tab_nazw_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 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 tab_dozwolone_szablonowe_w_napisach_do_wprowadzenia_tekstu=stronicowyparser_obiekty_modul.tab_dozwolone_szablonowe_w_napisach_do_wprowadzenia_tekstu;
    ----
    
    local function AnalizaRozdzialu(rozdzial,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,tablica_obiektow_strony_dany_modul,tablica_parametrow_szablonu_strony);
        end;
        
        if(not tabela_artykulow)then tabela_artykulow={};end;
        local spreparowany_uzyskany_tekst_rozdzialu=nil;
        ----
        local tabela_rozdzial_artykolow;
        ----
        local function AnalizaTekstuProwadzeniaTekstu(rozdzial)
           local rozdzial_na_tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(rozdzial,nil,tablica_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
           		if(obiekt=="SZABLON")then
					local wynik=stronicowyparser_rozdzialy_modul.ObiektySzablonoweFormatowaniaTekstu(szablon,tab_dozwolone_szablonowe_w_napisach_do_wprowadzenia_tekstu,tablica_parametrow_szablonu_strony,kod);
					if(not wynik)then
						local rozdzial_na_tekst=mw.ustring.gsub(szablon,"^{{[^{}|]*|([^{}|]*).*}}$","%1");
						return rozdzial_na_tekst;
					else
						return wynik;
					end;
   	   			elseif((obiekt~="MATH")and(obiekt~="NOWIKI")and(obiekt~="PRE")and(obiekt~="ŹRÓDŁO"))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;
				elseif(obiekt=="NOWIKI")then
					local rozdzial_na_tekst=specjalne_modul["UsuńZnaczniki"](szablon);
					return rozdzial_na_tekst;
				end;
   	   		end);
   	   		----
			rozdzial_na_tekst=specjalne_modul["UsuńZnakiSpecjalne"](rozdzial_na_tekst);
			return rozdzial_na_tekst;
        end;
   	   	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=AnalizaTekstuProwadzeniaTekstu(rozdzial);
			----
   	   		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
        			czy_rozdzial=true;
        			if((poziom_rozdzialu or 0)>0)then
        				return "","",rozdzial,true;
        			end;
        		end;
        		if(not tak)then
        			tak=true;
        			local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=mw.ustring.match(text,"^"..re);
        			if(przedrostek_listy and tekstowy_przedrostek and wyzyskane_wywolanie_szablonu_spis_tresci)then
        				return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
        			end;
        		end;
        		if(not iter)then
        			iter=mw.ustring.gmatch(text,"\n"..re);
        		end;
        		local przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci=iter();
        		return przedrostek_listy,tekstowy_przedrostek,wyzyskane_wywolanie_szablonu_spis_tresci,false;
        	end;
        end;
        
        ----
         local function LiniaArtykolow(linia) 
        	 local iter=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(linia,nazwa_modulu,tablica_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 tabela_parametrow_szablonu,nazwa_szablonu,tablica_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_parametrow_szablonu_strony,kod);
        	 	return stronicowyparser_obiekty_modul.szablony_kompletowania_stron_woluminu[nazwa_szablonu];
        	 end;
          	 local tak_pierwsze=SzablonAnalizujKompletnosc(szablon);
             for szablon,obiekt,kod in iter do
             	if(obiekt=="SZABLON")then
              		local szablon=tablica_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]));
    	
    	local function Ile(numer_rodzaju_artykulu)
            local ile=0;
            for i=2,11,1 do
            	ile=ile+#(tabela_rozdzial_artykolow[i] or {});
            end;
            return ile;
        end;
    	
    	for przedrostek_listy,tekstowy_przedrostek,linia, w_rozdziale in iterator do
    		local ile=0;
			linia=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstuZgodnieZJegoSzablonowymiElementami(linia,nil,tablica_obiektow_strony_dany_modul,tablica_parametrow_szablonu_strony,function(szablon,obiekt,kod--[[,czy_sam_siebie]])
				if(obiekt=="SZABLON")then
					local tabela_parametrow_szablonu,nazwa_szablonu,tablica_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_parametrow_szablonu_strony,kod);
					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_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;
				elseif(obiekt=="LINKW")then
					if(specjalne_modul["CzyLinkWewnętrzny"](szablon))then
						ile=ile+1;
						return true,obiekt,kod;
					end;
				end;
			end);
			----
    		local czy_linia=mw.ustring.match(linia,"^%s*[%-%+%=%~]+.*$");
    		----
    		local nowa_linia=false;
    		local function WsadzanieParametryDoTablicy(tabela_rozdzial_artykolow2,numer_podtablicy_w_tablicy,tab_stare)
    			if(not w_rozdziale)then
    				local function CzyZaliczac()
    					return mw.ustring.match(linia,"^%s*%a+") or mw.ustring.match(linia,"^%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)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=AnalizaTekstuProwadzeniaTekstu(linia);
			----
   	   					tabela_rozdzial_artykolow[1]={rozdzial_na_tekst,{-#przedrostek_listy,przedrostek_listy,tekstowy_przedrostek,false,},linia,};
   	   					tab_stare[2][4]=true;
   	   					tab_stare[5]=(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;
    		local function AnalizaLiniiObiekty(linia)
    			local tab_linia=LiniaArtykolow(linia);
	    	    for k=1,#tab_linia,1 do
    				local iterator2=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tab_linia[k],nazwa_modulu,tablica_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 tabela_parametrow_szablonu,nazwa_szablonu,tablica_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_parametrow_szablonu_strony,kod);
								--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_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_obiektow_strony_dany_modul);
												if(not tab_nieobslugiwane)then tab_nieobslugiwane={};end;
												for szablon,obiekt,kod in iter do
													tab_nieobslugiwane[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
										local tabela_parametrow_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_parametrow_szablonu_strony,kod);
										przedrostek_listy="";
										tekstowy_przedrostek=tabela_parametrow_wywolania[tabela_spisu[1]];
										szablon=tabela_parametrow_wywolania[tabela_spisu[2]];
										przerwij=true;
									end;
								end;
							end;
							--[[if(przerwij)then
								local iterator3=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(szablon,nazwa_modulu,tablica_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_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;local id;local parametry_szablonu;local kom;
							local link_szablon=nil;
							if((--[[wliczaj_artykuly_tego_rozdzialu]] true)and(not przerwij)and((not tab_nieobslugiwane)or((not tab_nieobslugiwane[kod]))))then
								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,nil,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_parametrow_szablonu_strony,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_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_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_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;
   		    					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_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;
   		    						if(tab_pozycja_elementow_w_spisie_rzeczy[2])then
   		    							tab_pozycja_elementow_w_spisie_rzeczy[2]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[2],[2]="tak",};
   		    							tab_pozycja_elementow_w_spisie_rzeczy[2]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[2],nazwa_modulu,tablica_obiektow_strony_dany_modul);
   		    						end;
   		    					----
   	   								if(znaki_niedozwolone)then
   	   									if(not stronicowyparser_zbieraniedanychstron_modul.CzyJestTakiProblemowyElement(self,"niedozwolone znaki w spisach treści"))then
        									stronicowyparser_zbieraniedanychstron_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_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,};
        											--table.insert(tabela_rozdzial_artykolow[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
        											WsadzanieParametryDoTablicy(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,};
        										--table.insert(tabela_rozdzial_artykolow[numer_rodzaju_artykulu_w_podreczniku],tab_stare);
        										WsadzanieParametryDoTablicy(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,(numer_rodzaju_artykulu>1) and (Ile(numer_rodzaju_artykulu)) 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);
        						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_obiektow_strony_dany_modul);
   		    							else
   		    								tab_pozycja_elementow_w_spisie_rzeczy[1]=ParametrPierwszy(tab_pozycja_elementow_w_spisie_rzeczy[1],false);
   		    							end;
   		    						end;
   		    						if(tab_pozycja_elementow_w_spisie_rzeczy[2])then
   		    							tab_pozycja_elementow_w_spisie_rzeczy[2]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[2],[2]="tak",};
   		    							tab_pozycja_elementow_w_spisie_rzeczy[2]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[2],nazwa_modulu,tablica_obiektow_strony_dany_modul);
   		    						end;
   		    						if(tab_pozycja_elementow_w_spisie_rzeczy[3])then
   		    							tab_pozycja_elementow_w_spisie_rzeczy[3]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[3],[2]="tak",};
   		    							tab_pozycja_elementow_w_spisie_rzeczy[3]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[3],nazwa_modulu,tablica_obiektow_strony_dany_modul);
   		    						end;
   			    					if(tab_pozycja_elementow_w_spisie_rzeczy[4])then
   			    						tab_pozycja_elementow_w_spisie_rzeczy[4]=parametry_modul["Odstępy"]{[1]=tab_pozycja_elementow_w_spisie_rzeczy[4],[2]="tak",};
	   		    						tab_pozycja_elementow_w_spisie_rzeczy[4]=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tab_pozycja_elementow_w_spisie_rzeczy[4],nazwa_modulu,tablica_obiektow_strony_dany_modul);
   		    						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_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,Ile(numer_rodzaju_artykulu),};
        							--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);
        						else
        							link_szablon=licencja_z_autorem and (czy_artykul_korzystany and mw.ustring.match(szablon,"({{[^{}]+}})") or nil) or nil;
   	   							end;	
   	   						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 wywolanie_spisu_tresci=mw.ustring.match(szablon,"^{{%s*[Ll]icencja%s*|([^{}]-)}}$");
       							if(wywolanie_spisu_tresci)then
       								local tabela_parametrow,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_parametrow_szablonu_strony,kod);
       								if(tabela_parametrow)then
       	    							local autor=tabela_parametrow["Autor"];
	       	    						local szkoly=tabela_parametrow["Ukończone szkoły"];
    	   	    						local email=tabela_parametrow["Email"];
       		    						local dotyczy=tabela_parametrow["Dotyczy"];
       	    							local licencjonowanie=tabela_parametrow["Licencjonowanie"];
       	    							local umowa_prawna=tabela_parametrow["Umowa prawna"];
       	    							local konsekwencje=tabela_parametrow["Konsekwencje"];
       		    						local frame=mw.getCurrentFrame();
    	   	    						if(autor~=nil)then
	       	    							autor=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(autor,nazwa_modulu,tablica_obiektow_strony_dany_modul);}
	       	    						end;	
    	   	    						if(szkoly~=nil)then
       		    							szkoly=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szkoly,nazwa_modulu,tablica_obiektow_strony_dany_modul);}
       	    							end; 
       	    							if(email~=nil)then
       	    								email=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(email,nazwa_modulu,tablica_obiektow_strony_dany_modul);}
       	    							end;
       	    							if(dotyczy~=nil)then
       	    								dotyczy=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(dotyczy,nazwa_modulu,tablica_obiektow_strony_dany_modul);}
	    	   	    					end;
    		  	    					if(licencjonowanie~=nil)then
	       		    						licencjonowanie=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(licencjonowanie,nazwa_modulu,tablica_obiektow_strony_dany_modul);}
       	    							end;
       	    							if(umowa_prawna~=nil)then
       	    								umowa_prawna=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(umowa_prawna,nazwa_modulu,tablica_obiektow_strony_dany_modul);}
       	    							end;
       	    							if(konsekwencje~=nil)then
       	    								konsekwencje=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(konsekwencje,nazwa_modulu,tablica_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;
    		   	    					break;
       								elseif(not stronicowyparser_zbieraniedanychstron_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then
       	   								stronicowyparser_zbieraniedanychstron_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera");
       	   							end;
       							end
       						end;
    					end;
    				end;
    			end;
    		end;
    		if(not czy_linia)then AnalizaLiniiObiekty(linia);end;
    	end;
    	numer_rozdzialu_w_ksiazce=numer_rozdzialu_w_ksiazce+1;
    end
    local parsuj_rozdzialami=nil;
    for rozdzial,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
    	AnalizaRozdzialu(rozdzial,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",tekst_rozwiniety_calego_artykulu,1,nil,nil,nil);
    end;
    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,__FUNCTION)
	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 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=__FUNCTION and __FUNCTION(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;
    	  			else
    	  				return 2;
    	  			end;
    	  	end;
    	end;
    end;

	local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="")and(nazwa_przestrzeni..":")or(""))..((nazwa_przestrzeni_ksiazki~="")and(nazwa_przestrzeni_ksiazki.."/")or(""))..nazwa_ksiazki;
	local adres_ustawien=((nazwy_np_modul.Template~="")and (nazwy_np_modul.Template..":") or "").."NawigacjaSpecjalna/Nawigacja/"..pelna_nazwa_ksiazki;
	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);
		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_obiektow_strony_dany_modul={};
	local szablonowe_modul=require("Module:Szablonowe");
	local tekst_zakodowany=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,adres_ustawien,tablica_obiektow_strony_dany_modul,nil,nil);
	local stronicowyparser_obiekty_modul=mw.loadData('Module:StronicowyParser/obiekty');
	local iterator=szablonowe_modul:IteratorSzablonowyZakodowanegoTekstu(tekst_zakodowany,adres_ustawien,tablica_obiektow_strony_dany_modul);
	local szablon_uklad_autonawigacji;
	for szablon,obiekt,kod in iterator do
		if(obiekt=="SZABLON")then
			local nazwa_szablonu=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
			if(nazwa_szablonu==stronicowyparser_obiekty_modul.uklad_autonawigacji)then 
				szablon_uklad_autonawigacji=szablon;
				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);
		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_parametry_szablonu_uklad_autonawigacji,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon_uklad_autonawigacji);
	if(not tabela_parametry_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);
		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_parametry_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_parametry_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 nazwa_aktualna_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"]();
			local nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](spis_tresci);
			if(nazwa_aktualna_ksiazki==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);
		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_parametry_szablonu_uklad_autonawigacji)do
		tabela_parametry_szablonu_uklad_autonawigacji[name]=frame:preprocess{text=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(value,adres_ustawien,tablica_obiektow_strony_dany_modul,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_parametry_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_parametry_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 tabela_artykolow_ksiazek_wedlug_strony_glownej_podrecznika,tabela_licencji_ksiazek_wedlug_strony_glownej_podrecznika;
	if((not czy_bez_spisow_tresci)and(not czy_bez_analizy_spisow_tresci))then
		local spis_tresci_main=tabela_parametry_szablonu_uklad_autonawigacji["spis treści"];
	
		local nazwa_modulu=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,"");
		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]=nazwa_modulu,};
		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 "";
		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);
		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_parametry_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 dodaj=nil;
			if(tablista_artykolow[1][1][2][1]==nil)then dodaj=2;else dodaj=1;end;
			for _,value in ipairs(tablista_artykolow)do
				 local numer_rozdzialu=value[1][2][1];
				if(not numer_rozdzialu)then 
					value[1][2][1]=dodaj;
			    	value[1][1]=value[1][1];
				elseif(numer_rozdzialu>0)then 
					value[1][2][1]=value[1][2][1]+dodaj; 
				end;
			end;
			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,};
			numer=numer+1;
			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
   			---
   			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);
			----
			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;
	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_parametry_szablonu_uklad_autonawigacji[STRONA(liczba)];
			local nazwa=tabela_parametry_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;
	for strona,nazwa in iter do
		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,});
		end;
   		---
    	strona=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=strona,[2]=nazwa_modulu,};
    	
		local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(strona,pudelko_modul["Kod języka tego projektu"](),pudelko_modul["Kod projektu tego projektu"]());
		local parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true);
        local naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true);
        nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"]{nazwa=nazwa_strony_linku,['kod języka']=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,}
		local biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
		if(biezaca_wiki)then
			local pelna_nazwa_ksiazki_biezacej=nazwy_modul["PEŁNANAZWAKSIĄŻKI"]{nazwa=nazwa_strony_linku,}
			if(pelna_nazwa_ksiazki_biezacej==pelna_nazwa_ksiazki)then
				local artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_strony_linku);
				local adres=artykul..(parametry_strony and ("?"..parametry_strony) or "")..(naglowek_strony and ("#"..naglowek_strony) or "")
				
				local przekierowanie=pelna_nazwa_ksiazki.."/"..artykul;
			
        		local strona=techniczne_modul.PrzekierowanieDoStrony(przekierowanie);
        		if(strona)then artykul=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);end;

            	local nazwa_artykulu_przekierowania=strona and (nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](przekierowanie)..(parametry_strony and ("?"..parametry_strony) or "")..(naglowek_strony and ("#"..naglowek_strony) or "")) or nil;
            	----
            	if(not dodatkowe_artykuly)then dodatkowe_artykuly={};end;
            	table.insert(dodatkowe_artykuly,{((nazwa_artykulu_przekierowania) and ({nazwa_artykulu_przekierowania,adres}) or adres),false,});
            	----
				local tab_stare={((nazwa or nazwa_artykulu_przekierowania) and ({nazwa_artykulu_przekierowania or artykul,nazwa,nazwa_artykulu_przekierowania and artykul or nil,}) or adres),{1,"*","",false,},"[[:"..adres..(nazwa and ("|"..adres) or "").."]]",false,};
				if(not tablista_artykolow[#tablista_artykolow][2])then tablista_artykolow[#tablista_artykolow][2]={};end;
				table.insert(tablista_artykolow[#tablista_artykolow][2],tab_stare);
			else
				local adres=nazwa_strony_linku..(parametry_strony and ("?"..parametry_strony) or "")..(naglowek_strony and ("#"..naglowek_strony) or "")
				
				if(not dodatkowe_artykuly)then dodatkowe_artykuly={};end;
				table.insert(dodatkowe_artykuly,{((adres) and (kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,kod_jezyka_koncowy,kod_projektu_koncowy}) or adres),true,});
				----
				local tab_stare={((adres) and (nazwa) and({adres,nazwa,nil,nil,nil,nil,}) or adres),{1,"*","",false,},"[[:"..adres..(nazwa and ("|"..nazwa) or "").."]]",false,#tablista_artykolow[#tablista_artykolow][2],};
			
				if(not tablista_artykolow[#tablista_artykolow][3])then tablista_artykolow[#tablista_artykolow][3]={};end;
				table.insert(tablista_artykolow[#tablista_artykolow][3],tab_stare);
			end;
		else
			local adres=nazwa_strony_linku..(parametry_strony and ("?"..parametry_strony) or "")..(naglowek_strony and ("#"..naglowek_strony) or "");
			
			if(not dodatkowe_artykuly)then dodatkowe_artykuly={};end;
			table.insert(dodatkowe_artykuly,{((adres) and (kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,kod_jezyka_koncowy,kod_projektu_koncowy}) or adres),true,});
			----
			local tab_stare={((adres) and (nazwa or kod_jezyka_koncowy or kod_projektu_koncowy) and({adres,nazwa,nil,nil,kod_jezyka_koncowy,kod_projektu_koncowy,}) or adres),{1,"*","",false,},"[[:"..((kod_jezyka_koncowy)and(kod_jezyka_koncowy..":") or "")..((kod_projektu_koncowy)and(kod_projektu_koncowy..":") or "")..adres..(nazwa and ("|"..nazwa) or "").."]]",false,#tablista_artykolow[#tablista_artykolow][2],};
			
			if(not tablista_artykolow[#tablista_artykolow][3])then tablista_artykolow[#tablista_artykolow][3]={};end;
			table.insert(tablista_artykolow[#tablista_artykolow][3],tab_stare);
			
		end;
	end;
	----
	return tablista_artykolow,licencja,nazwa_glownego_spisu,tab_inne_spisy,dodatkowe_artykuly,adres_ksiazki_glownego_spisu_tresci;
end;
return p;