Moduł:StronicowyParser/Potrzebne

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.png Dokumentacja modułu [stwórz] [odśwież]
local p={};
--zamykanie
local znak_127=mw.ustring.char(127);
function p.ZamieniajSzablonyStart(self)
	 self.numer_szablonu=1;
end;
function p.ZamieniajSzablony(self,szablon1,szablon2,szablon3)
	local lewy=znak_127.."'\"`UNIQ--tzp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
	local prawy=znak_127.."'\"`UNIQ--tzk-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
	local rownosc=znak_127.."'\"`UNIQ--tr-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
	local pionowa=znak_127.."'\"`UNIQ--tp-"..self.numer_szablonu.."-QINU`\"'"..znak_127;
    local szablon2,_= mw.ustring.gsub(szablon2,"{{",lewy);
    local szablon2,_= mw.ustring.gsub(szablon2,"}}",prawy);
    local szablon2,_= mw.ustring.gsub(szablon2,"=",rownosc);
    local szablon2,_= mw.ustring.gsub(szablon2,"|",pionowa);
    self.numer_szablonu=self.numer_szablonu+1;
    return szablon1..szablon2..szablon3;
end;
function p.AnalizaSzablonu(numer_szablonu)
    local function LewyPrawyRownoscPionowa()
		local lewy=znak_127.."'\"`UNIQ--tzp-"..numer_szablonu.."-QINU`\"'"..znak_127;
		local prawy=znak_127.."'\"`UNIQ--tzk-"..numer_szablonu.."-QINU`\"'"..znak_127;
		local rownosc=znak_127.."'\"`UNIQ--tr-"..numer_szablonu.."-QINU`\"'"..znak_127;
		local pionowa=znak_127.."'\"`UNIQ--tp-"..numer_szablonu.."-QINU`\"'"..znak_127;
    	local zamykanie={
        	[lewy]="{{",
        	[prawy]="}}",
        	[rownosc]="=",
        	[pionowa]="|",
        };
        return zamykanie;
    end;
    return LewyPrawyRownoscPionowa();
end;
function p.OgolnyWzor(numer_szablonu)
	if(not numer_szablonu)then
		local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-(%d+)%-QINU`\"'"..znak_127;
    	return wzor;
	end;
    local wzor=znak_127.."'\"`UNIQ%-%-t%a+%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
    return wzor;
end;
function p.WzorRownosc(numer_szablonu)
    if(not numer_szablonu)then
    	local wzor=znak_127.."'\"`UNIQ%-%-tr%-(%d+)%-QINU`\"'"..znak_127;
    	return wzor;
    end;
    local wzor=znak_127.."'\"`UNIQ%-%-tr%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
    return wzor;
end;
function p.WzorPionowa(numer_szablonu)
    if(not numer_szablonu)then
    	local wzor=znak_127.."'\"`UNIQ%-%-tp%-(%d+)%-QINU`\"'"..znak_127;
    	return wzor;
    end;
    local wzor=znak_127.."'\"`UNIQ%-%-tp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
    return wzor;
end;
function p.WzorSzablon(numer_szablonu,ktore)
    if(not numer_szablonu)then
    	if(not ktore)then
    		local wzor=znak_127.."'\"`UNIQ%-%-tzp%-(%d+)%-QINU`\"'"..znak_127;
    		return wzor;
    	else
    		local wzor=znak_127.."'\"`UNIQ%-%-tzk%-(%d+)%-QINU`\"'"..znak_127;
    		return wzor;  
    	end;
    end;
    if(not ktore)then
    	local wzor=znak_127.."'\"`UNIQ%-%-tzp%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
    	return wzor;
    else
     	local wzor=znak_127.."'\"`UNIQ%-%-tzk%-"..numer_szablonu.."%-QINU`\"'"..znak_127;
    	return wzor;   		
    end;
end;
function p.MinMaxSzablon(zmienna)
    local numer_szablonu=1;
    local iterator=mw.ustring.gmatch(zmienna,p.WzorSzablon(nil,false));
    local __min=nil;
    local __max=0;
    for numer_zamykania in iterator do
    	numer_zamykania=tonumber(numer_zamykania) or 0;
    	if(not __min)then __min=numer_zamykania;else __min=math.min(__min,numer_zamykania) end;
    	__max=math.max(numer_zamykania,__max);
    end;
    return __min,__max;
end;
function p.KodujStroneSzablonowa(tekst_artykulu)
    p:ZamieniajSzablonyStart();
    local function ZamieniajSzablony(szablon1,szablon2,szablon3)
        return p:ZamieniajSzablony(szablon1,szablon2,szablon3);
    end;
    while mw.ustring.match(tekst_artykulu,"{{[^{}|]-|.-{{[^{}]-}}[^{}]-}}") do
        tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"({{[^{}|]-|.-)({{[^{}]-}})([^{}]-}})",ZamieniajSzablony);
    end;
    return tekst_artykulu;
end;
--koniec zamykanie
function p.LiczonyHNumer()
	local ulozenie=nil;
	local ostatnie=0;
	local h_numer_zapamietane=nil;
	return function(h_numer,h_numer_nowe,jakie)
		if(not h_numer_nowe)then
			if(not jakie)then
				if(h_numer==0)then
					return h_numer_zapamietane;
				elseif(h_numer<0)then
					h_numer=math.abs(h_numer);
				end;
			else
				if(h_numer==0)then 
					h_numer_zapamietane=0;
					return 0;
				end;
			end;
			if((ulozenie==nil)or(ulozenie>=h_numer))then
				ulozenie=h_numer-1;
        	elseif(ostatnie+1<h_numer-ulozenie)then
                ulozenie=h_numer-ostatnie-1;
	    	end;
    		ostatnie=h_numer-ulozenie;
    		h_numer=h_numer-ulozenie;
    		h_numer_zapamietane=h_numer;
    		return h_numer;
    	else
    		ulozenie=h_numer-h_numer_nowe;
    		ostatnie=h_numer-ulozenie;
    		return h_numer_nowe;
    	end;
	end;
end;
function p.PoziomAdresu(adres)
	local lens=#adres;
	local i=1;
	for p=1, lens,1 do
		local znak=mw.ustring.sub(adres,p,p);
		if(znak=="/")then
			i=i+1;
		end;
	end;
	return i;
end;
function p.NazwaNadStrony(adres,numer)
	if((numer)and(numer==1))then return nil;end;
	if((not numer)and(numer<1)or(numer~=math.floor(numer)))then return adres;end;
	local lens=#adres;
	local i=1;
	for p=1, lens,1 do
		local znak=mw.ustring.sub(adres,p,p);
		if(znak=="/")then
			i=i+1;
		end;
		if(i==numer)then
			return mw.ustring.sub(adres,1,p-1);
		end;
	end;
	return adres;
end;
function p.SubNazwaNadStrony(adres,numer,krok)
	if((not numer)or(numer<1)or(numer~=math.floor(numer)))then return adres;end;
	krok=krok or 1;
	if((krok<1)or(krok~=math.floor(krok)))then return adres;end;
	local lens=#adres;
	local i=1;
	local a=nil;local b=nil;
	for p=1, lens,1 do
		local znak=mw.ustring.sub(adres,p,p);
		if(znak=="/")then
			i=i+1;
			if(i==numer)then
				if(not a)then a=p+1;end;
			end;
			if(i==numer+krok)then 
				if(not b)then b=p-1;break;end;
			end;
		end;
	end;
	if(not a)then a=1;end;
	if(not b)then b=lens;end;
	return mw.ustring.sub(adres,a,b);
end;
function p.ParametryPudelkaKsiazki(self,frame)
  local nazwa_przestrzeni=self.args["nazwa przestrzeni nazw"];
  local nazwa_jednostki=self.args["nazwa jednostki"];
  if(((nazwa_przestrzeni)and(nazwa_jednostki))or((nazwa_przestrzeni)and(not nazwa_jednostki))or((not nazwa_przestrzeni)and(nazwa_jednostki)))then
	    if(nazwa_jednostki)then
	    	local html_modul=require("Module:Html");
			self.naglowek=html_modul["NagłówekStronyAdresu"](nazwa_jednostki,true);
			self.parametry=html_modul["ParametryStronyAdresu"](nazwa_jednostki);
	    end;
	    local pudelko_modul=require("Module:Pudełko");
		local nazwa_jednostki=pudelko_modul["Pełna nazwa jednostki 2"](frame);
		local nazwy_modul=require("Module:Nazwy");
		self.nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki);
		self.nazwa_ksiazki=nazwy_modul["NAZWAKSIĄŻKI"](nazwa_jednostki);
		self.nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](nazwa_jednostki);
  else
  	  local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;	
  	  self.nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
	  self.nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
	  self.nazwa_artykulu=tabela_listy_danych_analizy_ksiazki.nazwa_artykulu;
  end;
end;
function p.TabelaListyArtykulowKsiazki(self,frame)
  local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;	
  local nazwa_przestrzeni;local nazwa_ksiazki;
  if(tabela_listy_danych_analizy_ksiazki.zastepczy)then
		nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_przestrzeni;
		nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.normalna_nazwa_ksiazki;
  else
  		nazwa_przestrzeni=self.nazwa_przestrzeni;
		nazwa_ksiazki=self.nazwa_ksiazki;
  end;
  local lista_artykulow_w_ksiazkach_w_danej_przestrzeni=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu[nazwa_przestrzeni];
  if(not lista_artykulow_w_ksiazkach_w_danej_przestrzeni)then return nil;end;
  local tab_lista_artykulow_w_ksiazce=lista_artykulow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
  if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
  return tab_lista_artykulow_w_ksiazce.spis;
end;
function p.AnalizujArgumentySzablonu(self,frame)
  local parametry_modul=require("Module:Parametry");
  self.args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
end;
function p.Args(self)
	return self.args;
end;
function p.PelnaNazwaKsiazki(self,frame)
   return ((self.nazwa_przestrzeni~="")and(self.nazwa_przestrzeni..":") or "")..self.nazwa_ksiazki
end;
function p.NazwaArtykuluKsiazki(self,frame)
   return self.nazwa_artykulu..(self.parametry and ("?"..self.parametry) or "")..(self.naglowek and ("#"..self.naglowek) or "");
end;
function p.ObliczeniaInformacje(self,frame)
  p:AnalizujArgumentySzablonu(frame);
  p:ParametryPudelkaKsiazki(frame);
  local tab_lista_artykulow_w_ksiazce=p:TabelaListyArtykulowKsiazki(frame);
  if(not tab_lista_artykulow_w_ksiazce)then return nil;end;
  local parametry_modul=require("Module:Parametry");
  local args=parametry_modul.CzyTak(self.args["nagłówek"]);
  local tab_artykul_bez_naglowka=(not naglowek) and {} or nil;
  self.tab_artykul={};
  local html_modul=require("Module:Html");
  for _,tab_lista in ipairs(tab_lista_artykulow_w_ksiazce)do
	if(tab_lista[2])then
  		for _,artykul_w_bazie in ipairs(tab_lista[2])do
  			local artykul=(not naglowek) and html_modul["NazwaStronyAdresu"](artykul_w_bazie[1][1] or artykul_w_bazie[1]) or (artykul_w_bazie[1][1] or artykul_w_bazie[1]);
  			if(naglowek or not tab_artykul_bez_naglowka[artykul])then
  				if(not naglowek)then
  					tab_artykul_bez_naglowka[artykul]=true;
  				end;
  				table.insert(self.tab_artykul, parametry_modul.TypeTable(artykul_w_bazie[1]) and {artykul,artykul_w_bazie[1][2],} or artykul);
  			end;
  		end;
  	end;
  end;
  self.len_tab_artykul=#self.tab_artykul;
  return true;
end;
function p.PomiedzyArtykul(self,frame)
  self.numer=tonumber(frame.args[1]) or 1;
  self.reszta=math.fmod(self.numer,self.len_tab_artykul-2)+1;
  return self.tab_artykul[self.reszta+1];
end;
function p.LosowyArtykul(self,frame)
	self.numer=tonumber(frame.args[1]) or 1;
	self.reszta=math.fmod(self.numer,self.len_tab_artykul)+1;
	return self.tab_artykul[self.reszta];
end;
function p.TOCSilnik(lista_elementow_spisu_tresci, atrybuty)
        if(lista_elementow_spisu_tresci==nil)then return nil;end;
        local twor_listy="";
        local liczba_ulozenia_w_menu_spisu_tresci=lista_elementow_spisu_tresci[1][2];
        local poziom=1;
        local num={};
        for licznik, element_w_tablicy in ipairs(lista_elementow_spisu_tresci) do
        	if(licznik==1)then
        		   num[#num+1]=1;
                   twor_listy=(atrybuty and '<ul '..atrybuty..'>' or '<ul>')..'<li class=\"toclevel-1 tocsection-1\">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
                else
                  if(element_w_tablicy[2]==liczba_ulozenia_w_menu_spisu_tresci)then
                  	   num[#num]=num[#num]+1;
                       twor_listy=twor_listy..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
                  elseif(element_w_tablicy[2]>liczba_ulozenia_w_menu_spisu_tresci)then
                  	  num[#num+1]=1;
                  	  poziom=poziom+1;
                      twor_listy=twor_listy..'<ul><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'.."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
                      liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
                  elseif(element_w_tablicy[2]<liczba_ulozenia_w_menu_spisu_tresci)then
                  	   local num_length=#num;
                  	   for i=num_length,num_length-liczba_ulozenia_w_menu_spisu_tresci+element_w_tablicy[2]+1,-1 do 
                  	   	   table.remove(num);
                  	   end;
                  	   num[#num]=num[#num]+1;
                  	   
                  	   local roznica_poziomow=liczba_ulozenia_w_menu_spisu_tresci-element_w_tablicy[2];
                  	   poziom=poziom-roznica_poziomow;
                  	   
                       twor_listy=twor_listy..mw.ustring.rep('</li></ul>',roznica_poziomow)..'</li><li class="toclevel-'..poziom..' tocsection-'..licznik..'">'
                                             .."[["..element_w_tablicy[1][1].."|<span class=\"tocnumber\">"..table.concat(num,".").."</span><span class=\"toctext\">"..element_w_tablicy[1][2].."</span>]]";
                       liczba_ulozenia_w_menu_spisu_tresci=element_w_tablicy[2];
                  end;
               end;	
        end;
        twor_listy=twor_listy..mw.ustring.rep('</li></ul>',liczba_ulozenia_w_menu_spisu_tresci);
        return twor_listy;
end;
function p.TOC(lista_elementow_spisu_tresci,czy_nie_aktualny,toc_czy_tocramka,spis_artykulu,rozciagnij)
	    local twor_listy=p.TOCSilnik(lista_elementow_spisu_tresci);
	    if(not toc_czy_tocramka)then
	    	local czy_ukryte=twor_listy;
        	local parametry_modul=require("Module:Parametry");
        	local frame=mw.getCurrentFrame();
        	local args=frame.args;
        	local funkcja=args["funkcja"] or "UkrytaWikitabelowaListaMenu";
        	local wysokosc=parametry_modul.CzyTak(args["wysokość"]) and args["wysokość"]  or "700px";
        	local szerokosc=parametry_modul.CzyTak(args["szerokość"])and args["szerokość"]  or "100%";
        	local spis_tresci=parametry_modul.CzyTak(args["spis treści"])and args["spis treści"]  or "Spis treści";
        	twor_listy='<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="width:'..szerokosc..';max-height:'..wysokosc..';overflow:auto;padding-right:5px;box-sizing:border-box;">'..(czy_ukryte or "<ul></ul>").."</div>";
        	local wikikod_menu='{{Tabela nawigacyjna|styl=display:'..(czy_ukryte and "table" or "none")..';font-size:14px;background-color:white;line-height:1.2em;width:'..(rozciagnij and "100%" or "auto")..';box-sizing:border-box'..(spis_artykulu and ';border:#aaa 1px solid' or '')..'|tytuł=<div style="text-align:left;font-size:14px;background-color:white;line-height:1.2em;'..(spis_artykulu and ';border-bottom:#aaa 1px solid' or '')..';white-space:nowrap;min-width:130px;">'..spis_tresci..'</div>|spis='..twor_listy..'|funkcja='..funkcja..'|klasa=spis_treści}}';
        	local rozwiniety_wikikod=frame:preprocess(wikikod_menu);
	    	return rozwiniety_wikikod;
	    else
	    	return (twor_listy and ('\n=Spis treści=\n<div class="toc_ogólnie_spis '..(not czy_nie_aktualny and 'toc_spis' or 'toc_inny_spis')..'" style="margin-left:10px">'..twor_listy..'</div>') or "");
	    end;
end;
function p.AnalizaSzablonuStronicowegoParsera(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,__Funkcja, __Funkcja2)
	uzyskano_w_wyniku_parsowania_wywolanie_szablonu=mw.ustring.gsub(uzyskano_w_wyniku_parsowania_wywolanie_szablonu,"\n+","");
	local tab_wywolania={};
	local function GlownaFunkcja(wywolanie,oznaczenie_szablonu)
		local techniczne_modul=require("Module:Techniczne");
    	local tabela_parametrow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie);
    	if(not tabela_parametrow_szablonu)then return nil;end;
    
       __Funkcja(tabela_parametrow_szablonu,wywolanie);
    
    	if(__Funkcja2)then
    		__Funkcja2(oznaczenie_szablonu,wywolanie,tabela_parametrow_szablonu,uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
    	end;
    	for parametrs,wartosc in pairs(tabela_parametrow_szablonu) do
    		local __min,__max=p.MinMaxSzablon(wartosc);
    		if((__min~=nil)and(__max~=0)and(__max>=__min))then
    			for ss=__max,__min,-1 do
    				local parametr2,ile=mw.ustring.gsub(wartosc,p.OgolnyWzor(ss),p.AnalizaSzablonu(ss));
    				if((ile)and((tonumber(ile) or 0)>0))then
    					local iterator2=mw.ustring.gmatch(parametr2,"{{[^{}]+}}");
    					for wywolanie in iterator2 do
    						if(not tab_wywolania[ss])then
								GlownaFunkcja(wywolanie,ss);
							end;
    					end;
    					if(not tab_wywolania[ss])then
    				    	tab_wywolania[ss]=true;
    				    end;
    				end;
    	    	end;
    		end;
    	end;
	end;
    GlownaFunkcja(uzyskano_w_wyniku_parsowania_wywolanie_szablonu);
end;
function p.AnalizujLinkSzablonyOrazLinki(wyzyskane_wywolanie_szablonu_spis_tresci,nazwa_przestrzeni,nazwa_ksiazki,__FUNKCJA)
	local pozycja_artykulu=nil;local nazwa=nil;
	local pozycja_artykulu,nazwa=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)|([^%[%]{}]+)%]%]$") 
	if(not((pozycja_artykulu)and(nazwa)))then
		pozycja_artykulu=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"^%[%[([^%[%]{}]+)%]%]$");
	end;
	local function Artykul(strona)
        local nazwy_modul=require("Module:Nazwy");
        local html_modul=require("Module:Html");
        local parametry=html_modul["ParametryStronyAdresu"](strona);
        local naglowek=html_modul["NagłówekStronyAdresu"](strona);
        local nazwa_przestrzeni_strony=nazwy_modul["NAZWAPRZESTRZENI"](strona);
        local nazwa_ksiazki_strony=nazwy_modul["NAZWAKSIĄŻKI"](strona);
        local nazwa_artykulu_strony=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
        if((nazwa_przestrzeni_strony==nazwa_przestrzeni)and(nazwa_ksiazki_strony==nazwa_ksiazki))then
        	  return nazwa_artykulu_strony..(parametry and ("?"..parametry) or "")..(naglowek and ("#"..naglowek) or "");
        else
        	return;
        end;
	end;
	local id=nil;
	local parametry;
	if(not pozycja_artykulu)then
		local link_szablon=mw.ustring.match(wyzyskane_wywolanie_szablonu_spis_tresci,"({{[^{}]+}})");
		if(link_szablon)then
				local techniczne_modul=require("Module:Techniczne");
            	parametry=techniczne_modul["ParsujWywołanieSzablonu"](link_szablon);
            	local szablon=parametry[0];
            	if(szablon=="SpisTreści")then
                	    pozycja_artykulu=parametry[1];
                	    id=true;
            	elseif(szablon=="Sekcja referencyjna")then
                		local podstrona=parametry[3] or parametry["podstrona"];
                		local strona=parametry[1] or parametry["strona"];
                		if(not strona)then
                    		pozycja_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]();
                    	else
                    		pozycja_artykulu=(((podstrona) and (podstrona~="")) and (podstrona..((not mw.ustring.match(strona,"^#")) and "/" or "")) or "")..strona;
                    	end;
                    	nazwa=parametry["nazwa"] or parametry[2];
                else
                    if(szablon=="Link wewnętrzny")then
                    		local strona=parametry["strona"];
                    		nazwa=parametry["nazwa"];
                    	    pozycja_artykulu=Artykul(strona);
                    elseif(szablon=="LinkOgólne")then
                    		local strona=parametry[1];
                    		nazwa=parametry[2];
                    		local miano_przestrzeni_nazw=parametry["miano przestrzeni nazw"];
                    		if(miano_przestrzeni_nazw)then
                    			pozycja_artykulu=Artykul(((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw..":") or "")..parametry[1]);
                    		else
                    		    pozycja_artykulu=Artykul(parametry[1])
                    		end;
                    elseif(szablon=="LinkGłówna")then
                    		pozycja_artykulu=Artykul(parametry[1])
                    		nazwa=parametry[2];
                    elseif((szablon=="LinkWikijunior")or(szablon=="LinkWikijunior2"))then
                    		local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
                    		pozycja_artykulu=Artykul(nazwy_np_modul.Wikijunior..":"..parametry[1]);
                    		nazwa=parametry[2];
                    elseif((szablon=="LinkProjekt")or(szablon=="LinkProjekt2"))then
                    		local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
                    		pozycja_artykulu=Artykul(nazwy_np_modul.Wikibooks..":"..parametry[1]);
                    		nazwa=parametry[2];
                    elseif((szablon=="LinkUżytkownik")or(szablon=="LinkUżytkownik2"))then
                    		local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
                    		pozycja_artykulu=Artykul(nazwy_np_modul.User..":"..parametry[1]);
                    		nazwa=parametry[2];
                    elseif((__FUNKCJA)and(__FUNKCJA(parametry)))then
                    	return nil,nil,parametry,false,true;
                    end;
               end;
        end;
    else
    	local parametry_modul=require("Module:Parametry");
        pozycja_artykulu=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=pozycja_artykulu,[2]="tak",});
        local czy_pozycja_artykulu=mw.ustring.match(pozycja_artykulu,"^/(.-)/+$") or mw.ustring.match(pozycja_artykulu,"^/(.+)$");
        if(czy_pozycja_artykulu)then
        	if(parametry_modul["CzyTakCiąg"](czy_pozycja_artykulu))then
    	        pozycja_artykulu=czy_pozycja_artykulu;
    	    else
    	    	pozycja_artykulu=nil;
    	    end;
         else
        		pozycja_artykulu=Artykul(pozycja_artykulu);
         end;
	end;
	return pozycja_artykulu,nazwa,parametry,id,false;
end;
function p.NumerObiektu(frame, nazwa_obiektu)
  local pf=frame:getParent();
  local parametry_modul=require("Module:Parametry");
  local uchwyt_obiektu=(frame.args["uchwyt"])and parametry_modul["Odstępy"](frame.args["uchwyt"]) or nil;
  local nazwa_strony;
  local html_modul=require("Module:Html");
  local nazwy_modul=require("Module:Nazwy");
  local ksiazkowe_modul=require("Module:Książkowe");
  local techniczne_modul=require("Module:Techniczne");
  local nazwa_przestrzeni;local nazwa_ksiazki;local nazwa_artykulu;
  
  nazwa_artykulu=frame.args["nazwa artykułu"];
  nazwa_ksiazki=frame.args["nazwa książki"];
  
  local tabela_listy_danych_analizy_ksiazki=mw.loadData("Module:StronicowyParser/informacje").tablica_zebranych_danych_ksiazkowych;
  if(not parametry_modul.CzyTak{[1]=tabela_listy_danych_analizy_ksiazki,})then
	  return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
  end;
  local czy_aktualna_strona=nil;
  if((not nazwa_artykulu)and(not nazwa_ksiazki))then
  		czy_aktualna_strona=1;
  	    nazwa_strony="";
  elseif((nazwa_artykulu)and(not nazwa_ksiazki))then
  	  	czy_aktualna_strona=2;
  	  	nazwa_przestrzeni=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni;
  		nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki;
  	    nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
  	    nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
  	  	nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
  else
  	    nazwa_ksiazki=ksiazkowe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
  		nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
		nazwa_ksiazki=ksiazkowe_modul["NazwaKsiążki"](nazwa_ksiazki);
		nazwa_artykulu=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](nazwa_artykulu);
		nazwa_artykulu,_=mw.ustring.gsub(nazwa_artykulu,"([_%s]+)"," ");
		
		nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
  end;
  local link = function(adres_linku,nazwa_linku,klasa,styl)
       local czy_klasa=parametry_modul.CzyTak(klasa);
       local czy_styl=parametry_modul.CzyTak(styl);
       if(czy_klasa or czy_styl)then
       		spanramka=mw.html.create('span');
       		if(czy_klasa)then spanramka:attr("class",klasa);end;
       		if(czy_styl)then spanramka:attr('style',styl);end;
       		spanramka:wikitext(nazwa_linku);
       		local kod_html=spanramka:allDone();
       		return "[["..adres_linku.."|"..tostring(kod_html).."]]";
       else
       		return "[["..adres_linku.."|"..nazwa_linku.."]]";
       end;
  end;
  local wzor = function(uchwyt,numeracja,styl_main,styl_odstepu,pole_odstepu,styl_wzoru,klasa_wzoru,wzor,opis,opis2,klasa_opisu,styl_opisu,styl_opisu_2,wzor_opisu,wzor_opisu_2,styl_alternatywy_opisu,styl_alternatywy_opisu_2,pozycja_numeracji,klasa_numeracji,styl_numeracji,bez_automatu)
  	   divramka=mw.html.create('div');
  	   local parametry_modul=require("Module:Parametry");
  	   local czy_pozycja_numeracji_prawa=parametry_modul.CzyTak(pozycja_numeracji);
  	   if(parametry_modul.CzyTak(uchwyt))then
  	   		if(parametry_modul.CzyTak(bez_automatu))then
  	   			divramka:attr('id',"wzór_"..uchwyt);
  	   		else
  	   			if(numeracja)then
  	   				divramka:attr('id',"wzór_"..numeracja);
  	   			else
  	   				divramka:attr('id',"wzór_"..uchwyt);
  	   			end;
  	   		end;
  	   end;
  	   if(parametry_modul.CzyTak(styl_main))then
  	   		divramka:attr('style',styl_main);
  	   end;
  	   local uchwyt_fun=function()
  			if(parametry_modul.CzyTak(uchwyt))then
  				local divuchwytramka=mw.html.create('div');
  				divuchwytramka:attr('class',klasa_numeracji);
  				divuchwytramka:attr('style',styl_numeracji);
  				if(parametry_modul.CzyTak(bez_automatu))then
  	   				divuchwytramka:wikitext('(',uchwyt..")");
  	   			else
  	   				if(numeracja)then
  	   					divuchwytramka:wikitext('('..numeracja..")");
  	   				else
  	   					divuchwytramka:wikitext("(Niedopasowany uchwyt: "..uchwyt..")");
  	   				end;
  				end;
     			divramka:node(divuchwytramka);
  			end;
  	   end;
  	   local pole_odstepu_fun=function()
  			divramka:addClass("wzory");
  			local divramka2=mw.html.create('div');
  			divramka2:attr('style',styl_odstepu);
  			divramka2:wikitext(pole_odstepu);
  			divramka:node(divramka2);
  	   end;
  	   local opis_fun=function(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu)
  	        if(parametry_modul.CzyTak(opis))then
  	   			local divramka5=mw.html.create('div')
  	   			divramka5:attr('class',klasa_opisu)
  	   			divramka5:attr('style',styl_opisu)
  	   			divramka5:wikitext(wzor_opisu)
  	   			divramka:node(divramka5)
  			else
  	   			local divramka5=mw.html.create('div');
  	   			divramka5:attr('style',styl_alternatywy_opisu);
  	   			divramka:node(divramka5)
  	        end;
  	   end;
  	   if(not czy_pozycja_numeracji_prawa)then
  	   	   uchwyt_fun();
  	   else
  	   	   pole_odstepu_fun();
  	   end;
  	   opis_fun(opis2,styl_opisu_2,wzor_opisu_2,styl_alternatywy_opisu_2);
  	   local divramka4=mw.html.create('div');
  	   divramka4:attr('class',klasa_wzoru);
  	   divramka4:attr('style',styl_wzoru);
  	   divramka4:wikitext(wzor);
  	   divramka:node(divramka4);
       opis_fun(opis,styl_opisu,wzor_opisu,styl_alternatywy_opisu);
  	   if(czy_pozycja_numeracji_prawa)then
  	   	    uchwyt_fun();
  	   else
  	   	    pole_odstepu_fun();
  	   end;
  	   return tostring(divramka:allDone());
  end;
  local rysunek=function(uchwyt,numeracja,opis, rysunek, pozycja,rozmiar,klasa,styl,bez_automatu)
  	local divramka=mw.html.create('div');
  	divramka:attr('class',klasa);
  	divramka:attr('style',styl);
  	local czy_uchwyt=parametry_modul.CzyTak(uchwyt);
  	if(czy_uchwyt)then
  		if(numeracja)then
  			if(parametry_modul.CzyTak(bez_automatu))then
  				divramka:attr('id',"rysunek_"..uchwyt);
  			else
  				divramka:attr('id',"rysunek_"..numeracja);
  			end;
  		else
  			divramka:attr('id',"rysunek_"..uchwyt);
  		end;
  	end;
  	local czy_opis=parametry_modul.CzyTak(opis);
  	local wywolanie_rysunku="[[File:"..((rysunek)and rysunek or "Przykładowy rysunek.svg").."|thumb|"..(pozycja or "right").."|"..(rozmiar or "200px")..((czy_uchwyt or czy_opis)and ("|"..((parametry_modul.CzyTak(uchwyt))and "(Rys. "..((numeracja)and (parametry_modul.CzyTak(bez_automatu) and uchwyt or numeracja) or "Niedopasowany uchwyt: "..uchwyt)..")" or "").." "..opis) or "").."]]";
  	divramka:wikitext(wywolanie_rysunku);
  	return tostring(divramka:allDone());
  end;
  local wypowiedzenie = function(uchwyt,przedrostek,numeracja,klasa,styl,przedrostek2,rodzaj,kogo,czego,jakie,styl_naglowka,styl_tekstu,tekst,bez_automatu)
  	local divramka=mw.html.create('div');
  	if(parametry_modul.CzyTak(uchwyt))then
  		if(parametry_modul.CzyTak(bez_automatu))then
  			divramka:attr('id',przedrostek.."_"..uchwyt);
  		else
  			divramka:attr('id',przedrostek.."_"..(numeracja or uchwyt));
  		end;
  	end;
  	divramka:attr('class',klasa);
  	divramka:attr('style',styl);
  	local wikitext="";
  	if(parametry_modul.CzyTak(uchwyt))then
  		if(parametry_modul.CzyTak(bez_automatu))then
  			wikitext="("..przedrostek2.." "..uchwyt..")";
  		else
  			if(numeracja)then
  				wikitext="("..przedrostek2.." "..numeracja..")";
  			else
  				wikitext="("..przedrostek2.." Niedopawany uchwyt: "..uchwyt..")";
  			end;
  		end;
  	end;
  	if(parametry_modul.CzyTak(styl_naglowka))then
  		local spanramka=mw.html.create('span');
  		spanramka:attr('style',styl_naglowka);
  		spanramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
  		divramka:node(spanramka);
  	else
  		divramka:wikitext(rodzaj.." "..kogo.." "..czego.." "..jakie.." "..wikitext);
  	end;
  	divramka:wikitext('<BR>');
  	if(parametry_modul.CzyTak(styl_tekstu))then
  		local spanramka=mw.html.create('span');
  		spanramka:attr('style',styl_tekstu);
  		spanramka:wikitext(tekst);
  		divramka:node(spanramka);
  	else
  		divramka:wikitext(tekst);
  	end;
  	  	return tostring(divramka:allDone());
  end;
  local punkty = function(uchwyt,numeracja,przedrostek_id,klasa,styl,prefiks,bez_automatu)
  	local spanramka=mw.html.create('sup');
  	spanramka:attr('style',klasa);
  	if(parametry_modul.CzyTak(uchwyt))then
  		if(parametry_modul.CzyTak(bez_automatu))then
  			spanramka:attr('id',przedrostek_id.."_"..uchwyt);
  		else
  			if(parametry_modul.CzyTak(numeracja))then
  				spanramka:attr('id',przedrostek_id.."_"..numeracja);
  			else
  				spanramka:attr('id',przedrostek_id.."_"..uchwyt);
  			end;
  		end;
  	end;
  	spanramka:attr('style',styl);
  	local smallramka=mw.html.create('small');
  	if(parametry_modul.CzyTak(uchwyt))then
  		if(parametry_modul.CzyTak(bez_automatu))then
  			smallramka:wikitext(prefiks..": "..uchwyt);
  		else
  			if(parametry_modul.CzyTak(numeracja))then
  				smallramka:wikitext('['..prefiks..": "..numeracja..']');
  			else
  				smallramka:wikitext('['..prefiks..": Niedopsowany uchwyt: "..uchwyt..']');
  			end;
  		end;
  	else
  		smallramka:wikitext('['..prefiks..": Niedopasowany uchwyt: brak uchwytu]");
  	end;
  	spanramka:node(smallramka);
  	return tostring(spanramka:allDone());
  end;
  local nazwa_strony_fun=function(nazwa_strony)
  	  if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
         and(tabela_listy_danych_analizy_ksiazki.nazwa_ksiazki==nazwa_ksiazki)
      		and (tabela_listy_danych_analizy_ksiazki.nazwa_artykulu==nazwa_artykulu))then
      		  return "";
      end;
      return  nazwa_strony;
  end;
  if(parametry_modul.CzyTak(frame.args["bez automatu"]))then
  	  if(frame.args["obiekt"])then
  		if(frame.args["obiekt"]=="link")then
  			local nazwa_strony=nazwa_strony_fun(nazwa_strony);
  			if(uchwyt_obiektu)then
      	    	return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
      	    else
	            return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
  			end;
  		elseif(frame.args["obiekt"]=="wzór")then
      	    return wzor(uchwyt_obiektu,uchwyt_obiektu,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
  		elseif(frame.args["obiekt"]=="rysunek")then
    		return rysunek(uchwyt_obiektu,uchwyt_obiektu,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
  		elseif(frame.args["obiekt"]=="wypowiedzenie")then
			return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],uchwyt_obiektu,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
  		elseif(frame.args["obiekt"]=="punkt")then
		  return punkty(uchwyt_obiektu,uchwyt_obiektu,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
        else
        	return uchwyt_obiektu;
  		end;
    else
    	return uchwyt_obiektu;
    end;
  end;
  
  local tabela_listy_uchwytow_i_numeracji_na_stronie;
  if(czy_aktualna_strona==nil)then
		local dane_analizy_artykulu=tabela_listy_danych_analizy_ksiazki.dane_analizy_artykulu;
		if(dane_analizy_artykulu)then
			local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni=dane_analizy_artykulu[nazwa_przestrzeni];
			if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni)then
				local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_ksiazki];
				if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
					local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
					if(lista_artykolow)then
						local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
						if(tabela_listy_analizy_na_stronie)then
							tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
						end;
					end;
				end;
			end;
		end;
  elseif(czy_aktualna_strona==1)then
		tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykolu;
		if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_na_stronie,})then
			return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
		end;
  elseif(czy_aktualna_strona==2)then	
		tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_danych_analizy_ksiazki.tablica_aktualnej_ksiazki;
		if(not parametry_modul.CzyTak{[1]=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce,})then
			return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
		end;
		if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
			local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_artykolow;
			if(lista_artykolow)then
				local tabela_listy_analizy_na_stronie=lista_artykolow[nazwa_artykulu]
				if(tabela_listy_analizy_na_stronie)then
					tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_analizy_na_stronie.uchwyty_i_numeracje;
				end;
			end;
		end;
	end;
	if(tabela_listy_uchwytow_i_numeracji_na_stronie)then
  		local spis_uchwytow=tabela_listy_uchwytow_i_numeracji_na_stronie[nazwa_obiektu];
  		if(spis_uchwytow)then
  			if((uchwyt_obiektu)and(uchwyt_obiektu~=""))then
    			for _, dany_artykul in ipairs(spis_uchwytow)do
      				if(dany_artykul[1]==uchwyt_obiektu)then
      						if(nazwa_obiektu~="Śródtytuł")then
      								if(frame.args["obiekt"])then
      										if(frame.args["obiekt"]=="link")then
      												local nazwa_strony=nazwa_strony_fun(nazwa_strony);
  					        						if(not dany_artykul[2])then 
  					        								return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
  					        						end;
      					    						return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..dany_artykul[2],frame.args["przedrostek"]..dany_artykul[2],frame.args["klasa"],frame.args["styl"])..")";
      										elseif(frame.args["obiekt"]=="wzór")then
  					    				    		return wzor(uchwyt_obiektu,dany_artykul[2],frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
  					    					elseif(frame.args["obiekt"]=="rysunek")then
  					    								return rysunek(uchwyt_obiektu,dany_artykul[2],frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
  					    					elseif(frame.args["obiekt"]=="wypowiedzenie")then
														return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],dany_artykul[2],frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);	
										    elseif(frame.args["obiekt"]=="punkt")then
														return punkty(uchwyt_obiektu,dany_artykul[2],frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
            								else
            											return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
      										end;
			            			else
			            				return ((dany_artykul[2])and dany_artykul[2] or "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"));
			            			end;
            				else
            					if(dany_artykul[2])then
            							local tytul_szablonu=frame.args["nazwa szablonu"] or techniczne_modul.NazwaSzablonu(frame:getParent():getTitle());
            							if(tytul_szablonu=="LinkŚródtytuł")then
            									return link(dany_artykul[2][1],dany_artykul[2][2],frame.args["klasa"],frame.args["styl"])
            							elseif(tytul_szablonu=="LinkŚródtytułTutaj")then
                        	    				return link(dany_artykul[2][1],"tutaj",frame.args["klasa"],frame.args["styl"])
                        	    		end;
                        	    end;
            				end;
            		end;
        		end;
  			end;	
      end;
   end;
  if(frame.args["obiekt"])then
	if(frame.args["obiekt"]=="link")then
		local nazwa_strony=nazwa_strony_fun(nazwa_strony);
		return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"].."Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu"),frame.args["klasa"],frame.args["styl"])..")";
	elseif(frame.args["obiekt"]=="wzór")then
  	     return wzor(uchwyt_obiektu,nil,frame.args["styl główny"],frame.args["styl odstępu"],frame.args["pole odstępu"],frame.args["styl wzoru"],frame.args["klasa wzoru"],frame.args["wzór"],frame.args["opis"],frame.args["opis 2"],frame.args["klasa opisu"],frame.args["styl opisu"],frame.args["styl opisu 2"],frame.args["wzór opisu"],frame.args["wzór opisu 2"],frame.args["styl alternatywy opisu"],frame.args["styl alternatywy opisu 2"],frame.args["pozycja numeracji"],frame.args["klasa numeracji"],frame.args["styl numeracji"],frame.args["bez automatu"]);
	elseif(frame.args["obiekt"]=="rysunek")then
  		return rysunek(uchwyt_obiektu,nil,frame.args["opis"],frame.args["rysunek"],frame.args["pozycja"],frame.args["rozmiar"],frame.args["klasa"],frame.args["styl"],frame.args["bez automatu"]);
    elseif(frame.args["obiekt"]=="wypowiedzenie")then
			return wypowiedzenie(uchwyt_obiektu,frame.args["przedrostek id"],nil,frame.args["klasa"],frame.args["styl"],frame.args["przedrostek numeracji"],frame.args["rodzaj"],frame.args["kogo"],frame.args["czego"],frame.args["jakie"],frame.args["styl nagłówka"],frame.args["styl tekstu"],frame.args["tekst"],frame.args["bez automatu"]);
	elseif(frame.args["obiekt"]=="punkt")then
		  return punkty(uchwyt_obiektu,nil,frame.args["przedrostek_id"],frame.args["klasa"],frame.args["styl"],frame.args["prefiks"],frame.args["bez automatu"]);
  	else
  		 return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
  	end;
 else 					    				    
 	return "Niedopasowany uchwyt: "..((parametry_modul.CzyTak(uchwyt_obiektu))and uchwyt_obiektu or "brak uchwytu");
 end;
end;
return p;