Przejdź do zawartości

Moduł:StronicowyParser/NumerObiektu

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [stwórz] [odśwież]
local p={};
function p.NumerObiektu(frame, nazwa_obiektu)
  local pf=frame:getParent();
  local parametry_modul=require("Module:Parametry");
  local uchwyt_obiektu=frame.args["uchwyt"];
  local bez_automatu=parametry_modul.CzyTak(frame.args["bez automatu"]);
  local html_modul=require("Module:Html");
  uchwyt_obiektu=uchwyt_obiektu and html_modul.DecodeHtml(uchwyt_obiektu,true) 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 szablonowe_modul=require("Module:Szablonowe");
  local nazwa_przestrzeni;local nazwa_przestrzeni_ksiazki;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;
  local czy_table_tablica_transportu=parametry_modul.TypeTable(tabela_listy_danych_analizy_ksiazki);
  local czy_aktualna_strona=nil;
  
  local nazwa_przestrzeni_nazw=pf.args["nazwa przestrzeni nazw"];
  local nazwa_jednostki=pf.args["nazwa jednostki"];
  
  if((nazwa_przestrzeni_nazw) or (nazwa_jednostki))then
  		if(((not nazwa_artykulu)and(not nazwa_ksiazki)) or((nazwa_artykulu)and(not nazwa_ksiazki)))then
  			if(nazwa_przestrzeni_nazw)then
  				nazwa_przestrzeni_nazw=html_modul.DecodeHtml(nazwa_przestrzeni_nazw,true);
  			end;
		  	if(nazwa_jednostki)then
  				nazwa_jednostki=html_modul.DecodeHtml(nazwa_jednostki,true);
  			end;
  			local ksiazkowe_modul=require("Module:Książkowe");
  			local nazwa_przestrzeni=nazwa_przestrzeni or ksiazkowe_modul["NazwaPrzestrzeni"]();
  			local nazwa_jednostki=nazwa_jednostki or ksiazkowe_modul["NazwaArtykułu"]();
  			local strona=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..nazwa_jednostki;
  			local nazwy_modul=require("Module:Nazwy");
  			strona=nazwy_modul["PEŁNANAZWASTRONY"](strona);
  			local aktualna_strona=ksiazkowe_modul["PełnaNazwaArtykułu"]();
  			if(strona~=aktualna_strona)then
  				nazwa_artykulu=nazwa_artykulu or nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
  				local nazwa_ksiazki_aktualna=ksiazkowe_modul["PełnaNazwaKsiążki"]();
  				local nazwa_ksiazki_strony=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](strona);
  				if(nazwa_ksiazki_aktualna~=nazwa_ksiazki_strony)then
  					nazwa_ksiazki=nazwa_ksiazki or nazwa_ksiazki_strony;
  				end;
  			end;
  		end;
  end;
  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_przestrzeni_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu;
  		nazwa_ksiazki=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu;
  		nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true);
  	    local techniczne_modul=require("Module:Techniczne");
  	    nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",};
  	  	nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
  	  	local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony);
  	  	if(strona)then
  	  		 strona=html_modul.DecodeHtml(strona,true);
  	  		 nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
  	  		 nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona);
  			 nazwa_ksiazki=((nazwa_przestrzeni_ksiazki~="") and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona) or nazwy_modul["NAZWAKSIĄŻKI"](strona));
  			 nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
  			 nazwa_strony=((nazwa_przestrzeni~="") and (nazwa_przestrzeni..":") or "")..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")..nazwa_ksiazki..((nazwa_artykulu~="") and ("/"..nazwa_artykulu) or "");
  			 if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then
  				czy_aktualna_strona=nil;
  			 elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then
  				czy_aktualna_strona=1;
  				nazwa_strony="";
  			end;
  	  	end;
  else
		local nazwa_modulu=nazwy_modul["NazwaModułu"](tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni,tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_woluminu,tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu);
		nazwa_ksiazki=html_modul.DecodeHtml(nazwa_ksiazki,true);
		
	  	nazwa_ksiazki=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_ksiazki,[2]=nazwa_modulu,};
	  	
  	    local ksiazkawe_modul=require("Module:Książkowe");
  	    nazwa_ksiazki=ksiazkawe_modul["PełnaNazwaStronicowejKsiążki"](nazwa_ksiazki);
  		nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);
  		nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](nazwa_ksiazki);
		nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](nazwa_ksiazki) or nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki);
		
		if((nazwa_artykulu)and(nazwa_artykulu~=""))then
			nazwa_artykulu=html_modul.DecodeHtml(nazwa_artykulu,true);
			nazwa_artykulu=techniczne_modul["PrzeszkałćAdresWzględnyStronyNaBezwzględny"]{[1]=nazwa_artykulu,[2]="",};
		else
			nazwa_artykulu="";
		end;
		
		nazwa_strony=nazwy_modul["NazwaModułu"](nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_artykulu);
		local techniczne_modul=require("Module:Techniczne");
		local strona=techniczne_modul.PrzekierowanieDoStrony(nazwa_strony);
		if(strona)then
			  strona=html_modul.DecodeHtml(strona,true);
			  nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](strona);
  			  nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](strona);
			  nazwa_ksiazki=(nazwa_przestrzeni_ksiazki~="")and nazwy_modul["SUBNAZWAKSIĄŻKI"](strona) or nazwy_modul["NAZWAKSIĄŻKI"](strona);
			  nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
			  
			  if((nazwa_przestrzeni~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni)or(nazwa_przestrzeni_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu)or(nazwa_ksiazki~=tabela_listy_danych_analizy_ksiazki.nazwa_woluminu))then
  					czy_aktualna_strona=nil;
  					nazwa_strony=strona;
  			  elseif(nazwa_artykulu==tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu)then
  					czy_aktualna_strona=1;
  					nazwa_strony="";
  			  else
  			  		czy_aktualna_strona=2;
  					nazwa_strony=strona;
  			  end;
		end;
  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_"..html_modul.EncodeId(uchwyt,true));
  	   		else
  	   			if(numeracja)then
  	   				divramka:attr('id',"wzór_"..numeracja);
  	   			else
  	   				divramka:attr('id',"niedopasowany-wzór_"..html_modul.EncodeId(uchwyt,true));
  	   			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_"..html_modul.EncodeId(uchwyt,true));
  			else
  				divramka:attr('id',"rysunek_"..numeracja);
  			end;
  		else
  			divramka:attr('id',"niedopasowany-rysunek_"..html_modul.EncodeHtml(uchwyt,true));
  		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.."_"..html_modul.EncodeId(uchwyt,true));
  		else
  			divramka:attr('id',((not numeracja)and "niedopasowany-" or "")..przedrostek.."_"..(numeracja or html_modul.EncodeId(uchwyt,true)));
  		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.."_"..html_modul.EncodeId(uchwyt,true));
  		else
  			if(parametry_modul.CzyTak(numeracja))then
  				spanramka:attr('id',przedrostek_id.."_"..numeracja);
  			else
  				spanramka:attr('id',"niedopasowany-"..przedrostek_id.."_"..html_modul.EncodeId(uchwyt,true));
  			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((nazwa_strony)and(nazwa_strony==""))then return "";end;
  	  if(czy_aktualna_strona)then
  	  		if(czy_aktualna_strona==1)then 
  	  			return "";
  	  		elseif(czy_aktualna_strona==2)then
  	  			if(tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu)then return "";end;
  	  		end;
  	  else
  			if((tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni==nazwa_przestrzeni)
  	  			and(tabela_listy_danych_analizy_ksiazki.nazwa_przestrzeni_woluminu==nazwa_przestrzeni_ksiazki)
            		and(tabela_listy_danych_analizy_ksiazki.nazwa_woluminu==nazwa_ksiazki)
      	    			and (tabela_listy_danych_analizy_ksiazki.nazwa_podstrony_woluminu==nazwa_artykulu))then
      		    		return "";
      		end;
      end;
      return html_modul.EncodeId(nazwa_strony);
  end;
  local function BladTablicyTransportu(czy_table_tablica_transportu)
		if(not czy_table_tablica_transportu)then
  			local blad_modul=require("Module:Błąd");
			return blad_modul.error{tekst="Błąd stronicowego parsera: '''Moduł:StronicowyParser'''. Tablica silnika transportu lub jego składowe przyjmują wartość nietabelkową.",tag="strong",};
  		end;
  		return "";
  end;
  local function BezNumeracjiZUchwytami()
  		if(frame.args["obiekt"])then
  			if(frame.args["obiekt"]=="link")then
  				local nazwa_strony=nazwa_strony_fun(nazwa_strony);
  				if(uchwyt_obiektu)then
  					local uchwyt_obiektu=html_modul.EncodeId(uchwyt_obiektu,true);
      	    		return "("..link(nazwa_strony.."#"..frame.args["id"].."_"..uchwyt_obiektu,frame.args["przedrostek"]..uchwyt_obiektu,frame.args["klasa"],frame.args["styl"])..")";
      	    	else
      	    		local uchwyt_obiektu=parametry_modul.CzyTak(uchwyt_obiektu) and html_modul.EncodeId(uchwyt_obiektu,true) or nil;
	            	return "("..link(nazwa_strony.."#"..frame.args["id"].."_".."Nieznany uchwyt",frame.args["przedrostek"].."Niedopasowany uchwyt: "..(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;
  if((not czy_table_tablica_transportu)or(parametry_modul.CzyTak(frame.args["bez automatu"])))then
	  return BezNumeracjiZUchwytami()..BladTablicyTransportu(czy_table_tablica_transportu);
  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_stron;
		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_w_danej_przestrzeni_nazw_ksiazki=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazkach_w_danej_przestrzeni[nazwa_przestrzeni_ksiazki];
				if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki)then
					local tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce_w_danej_przestrzeni_nazw_ksiazki[nazwa_ksiazki];
					if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
						local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu;
						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;
		end;
  elseif(czy_aktualna_strona==1)then
		tabela_listy_uchwytow_i_numeracji_na_stronie=tabela_listy_danych_analizy_ksiazki.tablica_aktualnego_artykulu;
		if(not parametry_modul.TypeTable(tabela_listy_uchwytow_i_numeracji_na_stronie))then
			return BezNumeracjiZUchwytami()..BladTablicyTransportu(false);
		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.TypeTable(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce))then
			return BezNumeracjiZUchwytami()..BladTablicyTransportu(false);
		end;
		if(tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce)then
			local lista_artykolow=tabela_listy_uchwytow_i_numeracji_obiektow_w_ksiazce.lista_podstron_woluminu;
			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;
	local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
	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(not stronicowyparser_obiekty_modul.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu[nazwa_obiektu])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.."#niedopasowany-"..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 szablonowe_modul.NazwaSzablonu(frame:getParent():getTitle());
            							local tab_naglowek=stronicowyparser_obiekty_modul.linki_szablony_wprowadzenia_tekstu[nazwa_obiektu];
            							local adres=dany_artykul[2][2];
            							local czy_w_tym_szablony=mw.ustring.match(adres,"{{[^{}]+}}");
        								if(czy_w_tym_szablony)then
        									local specjalne_modul=require("Module:Specjalne");
        									adres=specjalne_modul["PrzetwórzNagłówek"](adres,true);
										end;
            							local adres=dany_artykul[2][1].."#"..adres;
            							if(tytul_szablonu==tab_naglowek[1])then
            									local naglowek=dany_artykul[2][3];
            									if(czy_w_tym_szablony)then
            										local specjalne_modul=require("Module:Specjalne");
													naglowek=specjalne_modul["PrzetwórzNagłówek"](naglowek,false);
            									end;
            									return link(adres,naglowek,frame.args["klasa"],frame.args["styl"])
            							elseif(tytul_szablonu==tab_naglowek[2])then
                        	    				return link(adres,"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.."#niedopasowany-"..frame.args["id"].."_"..html_modul.EncodeId(uchwyt_obiektu,true),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;