Moduł:Techniczne

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={};
p["ParsujWywołanieSzablonu"] = function(wywolanie_szablonu)
   local wywolanie_bez_parametrow=mw.ustring.match(wywolanie_szablonu,"^{{[^{}|]-}}$");
   if(not wywolanie_bez_parametrow)then 
   	  local parametry_szablonu={};
   	  parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*|.-}}$"));
   	  if(parametry_szablonu[0])then
   	  	  local parametry_modul=require("Module:Parametry");
   	  	  parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",});
   	  	  local parametry_wywolania_szablonu=mw.ustring.match(wywolanie_szablonu,"{{[^{}|]*|([^{}]*)}}");
   	      return ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu);
   	  else return nil;end;
   	else
   	  	local parametry_szablonu={};
   	  	parametry_szablonu[0]=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{%s*([^{}|]-)%s*}}$"));
   	  	if(parametry_szablonu[0])then
   	  		local parametry_modul=require("Module:Parametry");
   	  		parametry_szablonu[0]=mw.getContentLanguage():ucfirst(parametry_modul["Odstępy"]{[1]=parametry_szablonu[0],[2]="tak",});
   	  	   return parametry_szablonu;
   	  	else return nil;end;
   end;
end;
function ParametrySzablonu(parametry_wywolania_szablonu,parametry_szablonu)
  local kawalek_wywolania,dalszy_kawalek_wywolania=mw.ustring.match(parametry_wywolania_szablonu,"^([^|]*)|(.*)$");
  if(not kawalek_wywolania)then
  	  kawalek_wywolania=parametry_wywolania_szablonu;
  end;
  if(not dalszy_kawalek_wywolania)then
  	  ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania);
  	  return parametry_szablonu;
  end;
  if(kawalek_wywolania)then
  	 ZbierzParametrSzablonu(parametry_szablonu,kawalek_wywolania);
  	 return ParametrySzablonu(dalszy_kawalek_wywolania,parametry_szablonu);
  end;
  return nil;
end;
function ZbierzParametrSzablonu(tworzona_tabela, kawalek_wywolania)
   local kawalek_wywolania_element_nienazwany=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*$");
   if(kawalek_wywolania_element_nienazwany)then
	  tworzona_tabela[#tworzona_tabela+1]=mw.text.trim(kawalek_wywolania_element_nienazwany);
	  return tworzona_tabela;
   else
	 local kawalek_wywolania_klucz,kawalek_wywolania_wartosc=mw.ustring.match(kawalek_wywolania,"^%s*([^|{}=]-)%s*=%s*([^|{}]-)%s*$");
	 if((kawalek_wywolania_klucz)and(kawalek_wywolania_wartosc))then
		if(not mw.ustring.match(kawalek_wywolania_klucz,"^%s*%d+%s*$"))then
		   tworzona_tabela[mw.text.trim(kawalek_wywolania_klucz)]=mw.text.trim(kawalek_wywolania_wartosc);
		   return tworzona_tabela;
		else
		   tworzona_tabela[tonumber(mw.text.trim(kawalek_wywolania_klucz))]=mw.text.trim(kawalek_wywolania_wartosc);
		   return tworzona_tabela;
		end;
	 else
	 	return nil;
     end;
   end;
 return nil;
end;
p["PokażSzablon"]=function(szablon, args)
	local result = {}
	local flags = {}
	table.insert(result, mw.text.nowiki("{{"))
	if mw.isSubsting() then
		table.insert(result, "subst:")
	end
	
	table.insert(result, szablon);

	if args then
		for k, v in pairs(args) do
			if (type(k)~="number")then
				table.insert(result, "|")
				table.insert(result, tostring(k))
				table.insert(result, "=")
				table.insert(result, mw.text.nowiki(v))
			else
				table.insert(result, "|")
				table.insert(result, mw.text.nowiki(v))
			end
		end
	end

	table.insert(result, mw.text.nowiki("}}"))
	return table.concat(result)
end;
function p.NazwaSzablonu(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa,_=PobierzParametr();
    local nazwy_modul=require("Module:Nazwy");
	local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa);
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np")
	if(nazwa_przestrzeni==nazwy_np_modul.Template)then
	   return nazwy_modul["NAZWASTRONY"](nazwa);
	elseif(nazwa_przestrzeni==nazwy_np_modul.Main)then
		return ":"..nazwa;
	else
		return nazwa;
	end;
end;
p["Pierwszy niepusty"]= function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local i=1;
	local parametry_modul=require("Module:Parametry");
	local liczba_elementow_w_tablicy_args=parametry_modul["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"](args,"test");
	local licznik=1;
	while true do
		local test=args["test"..i];
		local _i=args[i];
		local zmienna=test or _i;
		local czy_tak=parametry_modul.CzyTak(zmienna);
		if(czy_tak)then
			return (_i)and _i or "{{{"..i.."}}}";
		end;
		if(licznik>=liczba_elementow_w_tablicy_args)then return "";end;
		if(zmienna)then licznik=licznik+1;end;
		i=i+1;
	end;
	return;
end;
p["PełnaNazwaOpisuModułu"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local pelna_nazwa_strony=PobierzParametr(1) or PobierzParametr("nazwa");
	local komunikat = mw.message.new('Scribunto-doc-page-name', '$1');
	local zawartosc_komunikatu;
	if(komunikat:exists())then
		zawartosc_komunikatu=komunikat:plain();
		zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu);
	else
		zawartosc_komunikatu="Module:%1/opis";
	end;
    local nazwy_modul=require("Module:Nazwy");
	local pelna_nazwa_strony0=nazwy_modul["PEŁNANAZWASTRONY"](zawartosc_komunikatu);
	local pelna_nazwa_strony2=pelna_nazwa_strony and nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony) or nazwy_modul["PEŁNANAZWASTRONY"]();
	local patternopis=mw.ustring.gsub(pelna_nazwa_strony0,"%$1",".-");
	if(not mw.ustring.match(pelna_nazwa_strony2,"^"..patternopis.."$"))then
		local nazwa_strony=nazwy_modul["NAZWASTRONY"](pelna_nazwa_strony2);
		local przetworzona_nazwa_strony,_=mw.ustring.gsub(nazwa_strony,"(%%)","%%%%");
		przetworzona_nazwa_strony,_=mw.ustring.gsub(przetworzona_nazwa_strony,"/%s*$","");
		local pelna_nazwa_strony_opisu, _=mw.ustring.gsub(zawartosc_komunikatu,"%$1",przetworzona_nazwa_strony)
		local pelna_strona_opisu=nazwy_modul["PEŁNANAZWASTRONY"](pelna_nazwa_strony_opisu);
		return pelna_strona_opisu;
	else
		return pelna_nazwa_strony2;
	end;
end;
p["WzórDanejPrzestrzeniNazw"] = function (frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
	
	local wzor, _ = mw.ustring.gsub(nazwa,"(.)",function (s) return ((mw.ustring.match(s,"^%a$"))and("["..mw.ustring.upper(s)..mw.ustring.lower(s).."]")or s);end )
	wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
	return wzor;
end;
p["CzyIstniejeDanaPrzestrzeńNazw"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa_przestrzeni_nazw_lub_jego_identyfikator=PobierzParametr(1) or PobierzParametr("nazwa");
	
	local uchwyt_przestrzeni_nazw;
	if(mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*[%+%-]?%d+%s*$"))then
		local identyfikator,_=mw.ustring.match(nazwa_przestrzeni_nazw_lub_jego_identyfikator,"^%s*([%+%-]?%d+)%s*$");
		uchwyt_przestrzeni_nazw=mw.site.namespaces[tonumber(mw.text.trim(identyfikator))];
	else
	    uchwyt_przestrzeni_nazw=mw.site.namespaces[nazwa_przestrzeni_nazw_lub_jego_identyfikator];
	end;
	if(uchwyt_przestrzeni_nazw)then
		return "tak";
	else
		return;
	end;
end;
p["WzórNazwyStrony"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local strona=PobierzParametr(1) or PobierzParametr("nazwa");
	local wzor,_=mw.ustring.gsub(strona,"([%[%]%(%)%+%-%*%?%.%^%$%%'])","%%%1");
	wzor,_=mw.ustring.gsub(wzor,"^(.)",function(s)return "["..mw.ustring.upper(s)..mw.ustring.lower(s).."]";end);
	wzor,_=mw.ustring.gsub(wzor,"[%s_]+","[%%s_]+");
	return wzor;
end;
p["TekstBezOdwołańDoParametrówWeWzorze"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
	tekst,_=mw.ustring.gsub(tekst,"%%(%d+)","%%%%%1");
	return tekst;
end;
p["PrzekształćWzórDoCzystegoTekstu"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
	tekst,_=mw.ustring.gsub(tekst,"([%^%$%(%)%%%.%[%]%*%+%-%?])","%%%1");
	return tekst;
end;
function p.PoliczZbiory(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame,true);

	local liczba_istniejacych_zbiorow=0;
	local tabela_uchwytow_stron={};
	for _,nazwa_strony in ipairs(args) do
	   local uchwyt_strony = mw.title.makeTitle('',nazwa_strony);
	   local tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
	   
	   local czy_istnieje=tekst_artykulu and tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
	   
	   tabela_uchwytow_stron[#tabela_uchwytow_stron+1]={uchwyt_strony,tekst_artykulu,};
	   if(czy_istnieje)then 
	      liczba_istniejacych_zbiorow=liczba_istniejacych_zbiorow+1;
	   end;
	end;
    return liczba_istniejacych_zbiorow,tabela_uchwytow_stron;
end;
function p.TransformacjaWzoru(ciag)
	return mw.ustring.gsub(ciag,"[%^%$%(%)%%%.%[%]%*%+%-%?]","%%%1");
end;
p["WyświetlajKodySpecjalne"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local tekst=PobierzParametr(1) or PobierzParametr("nazwa");
    
	local html_modul=require("Module:Html");
	local i=html_modul.KodHTMLZnaku("&");
	local hash=html_modul.KodHTMLZnaku("#");
	local sr=html_modul.KodHTMLZnaku(";");
	text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr);
	text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr);
	return text;
end;
function p.Wikikod(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
	local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
	
	local title=mw.title.makeTitle(przestrzen,nazwa);
	if((not title)or (not title.exists))then return;end;
	local text=title:getContent();
	text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
	text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");

	local html_modul=require("Module:Html");
	
	local i=html_modul.KodHTMLZnaku("&");
	local hash=html_modul.KodHTMLZnaku("#");
	local sr=html_modul.KodHTMLZnaku(";");
	text=mw.ustring.gsub(text,"&#(%d+);",i..hash.."%1"..sr);
	text=mw.ustring.gsub(text,"&(%a+);",i.."%1"..sr);
	
	local nko=html_modul.KodHTMLZnaku("{");
	local nkz=html_modul.KodHTMLZnaku("}");
	local k=html_modul.KodHTMLZnaku("|");
	local r=html_modul.KodHTMLZnaku("=");
	local s=1;
	repeat
		repeat
			text=mw.ustring.gsub(text,"{{{([^{}|]+)|([^{}]*)}}}",nko..nko..nko.."%1"..k.."%2"..nkz..nkz..nkz);
			text=mw.ustring.gsub(text,"{{{([^{}|]+)}}}",nko..nko..nko.."%1"..nkz..nkz..nkz);
		until not(mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}"));
		text=mw.ustring.gsub(text,"{{([^{}]+)}}","&#@p"..s..";%1&#@k"..s..";");
		repeat
			text=mw.ustring.gsub(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";","&#@p"..s..";%1&#@s"..s..";%2&#@k"..s..";");
		until not mw.ustring.match(text,"&#@p"..s..";([^|]-)|(.-)&#@k"..s..";");
		s=s+1;
	until not (mw.ustring.match(text,"{{[^{}]+}}") or (mw.ustring.match(text,"{{{([^{}|]+)|([^{}]*)}}}") or mw.ustring.match(text,"{{{([^{}|]+)}}}")));
	
	for w=1,s-1,1 do
		repeat
			text=mw.ustring.gsub(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2");
		until not mw.ustring.match(text,"(&#@p"..w..";[^#{}|].-)&#@s"..w..";(.-".."&#@k"..w..";)");
		function ZmienneTekstowe(s)
			local tab_zmienne={
				["NAMESPACE"]=true,
				["PAGENAME"]=true,
			}
			local czy_te_zmienne=tab_zmienne[s];
			if(not czy_te_zmienne)then
				return "{{s|"..s.."}}";
			else
				return nko..nko..s..nkz..nkz;
			end;
		end;
		text=mw.ustring.gsub(text,"&#@p"..w..";([^#{}|].-)".."&#@k"..w..";",ZmienneTekstowe);
		
		repeat
			text=mw.ustring.gsub(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)","%1|%2");
		until not mw.ustring.match(text,"(&#@p"..w..";#invoke:.-)&#@s"..w..";(.-".."&#@k"..w..";)");
		text=mw.ustring.gsub(text,"&#@p"..w..";#invoke:(.-)".."&#@k"..w..";","{{m|%1}}");
		
		repeat
			text=mw.ustring.gsub(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)","%1"..k.."%2");
		until not mw.ustring.match(text,"(&#@p"..w..";#%w+:.-)&#@s"..s..";(.-".."&#@k"..w..";)")
		text=mw.ustring.gsub(text,"&#@p"..w..";(#%w+:.-)".."&#@k"..w..";",nko..nko.."%1"..nkz..nkz);
	end;
	text=mw.ustring.gsub(text,"=",r)
	local mniejszy=html_modul.KodHTMLZnaku("<");
	local wiekszy=html_modul.KodHTMLZnaku(">");
	text=mw.ustring.gsub(text,"<",mniejszy);
	text=mw.ustring.gsub(text,">",wiekszy)
	
	local kwaratowy_lewy=html_modul.KodHTMLZnaku("[");
	local kwadratowy_prawy=html_modul.KodHTMLZnaku("]");
	local kreska_pionowa=html_modul.KodHTMLZnaku("|");
	text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)|([^%[%]]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kreska_pionowa.."%2"..kwadratowy_prawy..kwadratowy_prawy);
	text=mw.ustring.gsub(text,"%[%[([^%[%]|]*)%]%]",kwaratowy_lewy..kwaratowy_lewy.."%1"..kwadratowy_prawy..kwadratowy_prawy);
	
	text=mw.ustring.gsub(text,"\n#","\n"..hash);
	text=mw.ustring.gsub(text,"^#",hash);
	
	text=frame:getParent():preprocess(text);
	return text;
end;
p["WikikodStrony"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa=PobierzParametr("nazwa strony") or PobierzParametr("nazwa") or PobierzParametr(1);
	local przestrzen=PobierzParametr("miano przestrzeni nazw") or PobierzParametr("przestrzeń") or "Template";
	
	local title=mw.title.makeTitle(przestrzen,nazwa);
	if((not title)or (not title.exists))then return;end;
	local text=title:getContent();
	text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
	text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
	return text;
end;
function p.LuaSubst(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	
	local strona=args[1] or args["strona"];
	if(not parametry_modul.CzyTak(strona))then return "(Bład: nazwa strony jest pusta lub nie podana)";end;
	local title=mw.title.makeTitle('',strona);
	if((not title)or (not title.exists))then return "(Błąd: Strona nie istnieje)";end;
	local tekst=title:getContent();
	local inkludowany=parametry_modul.CzyTak(args["inkludowana"]);
	if(inkludowany)then
		tekst,_=mw.ustring.gsub(tekst,"<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>(.-)</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>","");
		tekst,_=mw.ustring.gsub(tekst,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.-)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
	end;
	return tekst;
end;
p["RozwiniętyWikikodStrony"]=function (frame)
    local parametry_modul=require("Module:Parametry");
    local args=parametry_modul.PobierzArgsParametry(frame)
	local PobierzParametr=parametry_modul.PobierzParametr(args);
	local nazwa=PobierzParametr("Nazwa strony") or PobierzParametr("Nazwa") or PobierzParametr(1);
	local przestrzen=PobierzParametr("Miano przestrzeni nazw") or PobierzParametr("Przestrzeń") or "Template";
	
	local title=mw.title.makeTitle(przestrzen,nazwa);
	if((not title)or (not title.exists))then return;end;
	local text=title:getContent();
	text=mw.ustring.gsub(text,"(<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.*</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>)","");
	text=mw.ustring.gsub(text,"<[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>(.*)</[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]>","%1");
	local bezkluczy={["Nazwa strony"]=true,["Nazwa"]=true,["Miano przestrzeni nazw"]=true,["Przestrzeń"]=true,};
	if czy_wyspecjalizowana then
		bezkluczy["wyspecjalizowana"]=true;
		bezkluczy["nie rozwiń"]=true;
	end;
	local tab=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,bezkluczy);
	local frame2=mw.getCurrentFrame():newChild{title=(parametry_modul.CzyTak(przestrzen)and (przestrzen..":"..nazwa) or nazwa),args=tab};
	local czy2=(czy and frame.args);
	text=(czy2 and (not parametry_modul.CzyTak(frame.args["nie rozwiń"])) or (not czy2 and true)) and frame2:preprocess(text) or text;
	return text;
end;
function p.NowaLinia(frame)
	return "\n";
end;
function p.Nowiki(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local PobierzParametr=parametry_modul.PobierzParametr(args);
	local tekst=PobierzParametr("tekst") or PobierzParametr(1);
	
	local html_modul=require("Module:Html");
	local i=html_modul.KodHTMLZnaku("&");
	local h=html_modul.KodHTMLZnaku("#");
	local s=html_modul.KodHTMLZnaku(";");
    tekst,_=mw.ustring.gsub(tekst,"&#(%d+);",i..h.."%1"..s);
    tekst,_=mw.ustring.gsub(tekst,"&(%a+);",i.."%1"..s);
    local sprawdz_modul=require("Module:Sprawdź");
    tekst=sprawdz_modul["UsuńKategorięSprawdzaniaParametrówSzablonu"]{args={[1]=tekst,},}
    tekst=frame:callParserFunction('#tag:nowiki',tekst);
	return tekst;
end;
function p.FunkcjaLua(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local modul=require("Module:"..(args[1] or args["moduł"]));
	if(modul)then
		if(modul[asgs[2] or args["nazwa"] or args["funkcja"]])then
			local args2=parametry_modul["KopiujTabelęElementówBezTablicyKluczy"](args,{[1]=true,["moduł"]=true,[2]=true,nazwa=true,funkcja=true,["wyspecjalizowana"]=true,})
			return modul[asgs[2] or args["nazwa"] or args["funkcja"]](args2);
		end;
	end;
end;
p["LiczbaBajtówCiąguDoNormy"] = function(frame)
	local str=frame.args[1] or frame.args["ciąg"];
	local ile=tonumber(frame.args[2] or frame.args["norma"]);
	if(not ile)then return #str;end;
	if(#str<=ile)then
		return #str;
	end;
	return nil;
end;
p["LiczbaStronJakoPozycjeDanejKategorii"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local kategoria=parametry_modul.CzyTak(args["kategoria"]) and args["kategoria"] or "Category:Przykładowa kategoria";
	local kat={
		["subcats"]=true,
		["files"]=true,
		["pages"]=true,
	}
	local typ=args["typ"] or "all";
	typ=kat[args["typ"]] and args["typ"] or "all";
	local nazwy_modul=require("Module:Nazwy");
	kategoria=nazwy_modul["NAZWASTRONY"](kategoria);
	return mw.site.stats.pagesInCategory(kategoria,typ);
end;
return p;