Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.48.0-wmf.1
first-letter
Media
Specjalna
Dyskusja
Wikipedysta
Dyskusja wikipedysty
Wikibooks
Dyskusja Wikibooks
Plik
Dyskusja pliku
MediaWiki
Dyskusja MediaWiki
Szablon
Dyskusja szablonu
Pomoc
Dyskusja pomocy
Kategoria
Dyskusja kategorii
Wikijunior
Dyskusja Wikijuniora
TimedText
TimedText talk
Moduł
Dyskusja modułu
Wydarzenie
Dyskusja wydarzenia
Moduł:Parametry
828
45669
560349
558488
2026-10-31T11:50:49Z
Persino
2851
560349
Scribunto
text/plain
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, niepuste_wliczac,mnoga)
local liczba_elementow_ponumerowanych_w_tablicy=0;
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
local czy_mnoga=p.CzyTak(mnoga);
for _1,_2 in ipairs(tabela)do
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
if((czy_mnoga)and(liczba_elementow_ponumerowanych_w_tablicy>1))then return liczba_elementow_ponumerowanych_w_tablicy;end;
end;
end;
return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
local parametry_modul=require("Module:Parametry");
return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"]);
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,niepuste_wliczac,mnoga)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
local czy_mnoga=p.CzyTak(mnoga);
local liczba_elementow_nienazwanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_nienazwanych_w_tablicy=liczba_elementow_nienazwanych_w_tablicy+1;
if((czy_mnoga)and(liczba_elementow_nienazwanych_w_tablicy>1))then return liczba_elementow_nienazwanych_w_tablicy;end;
end;
end;
end;
return liczba_elementow_nienazwanych_w_tablicy;
end;
p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"],frame.args["mnoga"])
end;
p["LiczbaElementówTablicy"]=function(tabela,niepuste_wliczac)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
local liczba_elementow_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNienazwanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,niepuste_wliczac,czy_formy_numerkowe)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
local liczba_elementow_w_tablicy=0;
local techniczne_modul=require("Module:Techniczne");
local wzor="^"..techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](przedrostek).."(%d+)$";
for _1,_2 in pairs(tabela)do
local string_liczba=tonumber(_1) or nil;
local czy_liczba=((string_liczba)and(czy_formy_numerkowe or p.TypeNumber(_1))and(string_liczba>0));
local zmienna=czy_liczba and przedrostek.._1 or nil;
local element=(czy_liczba and tabela[zmienna] or nil)
or (czy_liczba
and tabela[_1]
or (mw.ustring.match(tostring(_1),wzor) and tabela[_1] or nil)
);
if(element)then
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(element~="")))then
liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
end;
end;
end;
return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, niepuste_wliczac)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
local liczba_elementow_ponumerowanych_w_tablicy=0;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,niepuste_wliczac)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
local liczba_elementow_ponumerowanych_w_tablicy;
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
if(not liczba_elementow_ponumerowanych_w_tablicy)then
liczba_elementow_ponumerowanych_w_tablicy=_1;
else
liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
end;
end;
end;
end;
return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerPodstawyParametruTabeli(tabela,podstawa_parametru, czy_od_zera)
local liczba_maksimum=0;
local liczba_minimum;
for nazwa_parametru,wartosc_parametru in pairs(tabela)do
local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..podstawa_parametru.."%s(%d+)$")
if(liczba_z_parametru)then
local liczba=tonumber(liczba_z_parametru) or (czy_od_zera and 0 or 1);
liczba=(liczba>0)and liczba or (czy_od_zera and 0 or 1);
liczba_maksimum=math.max(liczba_maksimum,liczba);
if(not liczba_minimum)then
liczba_minimum=liczba;
else
liczba_minimum=math.min(liczba_minimum,liczba);
end;
elseif(podstawa_parametru==nazwa_parametru)then
liczba_maksimum=math.max(liczba_maksimum,(czy_od_zera and 0 or 1));
if(not liczba_minimum)then
liczba_minimum=czy_od_zera and 0 or 1;
else
liczba_minimum=math.min(liczba_minimum,czy_od_zera and 0 or 1);
end;
end;
end;
if(not liczba_minimum)then liczba_minimum=1;end;
return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,niepuste_wliczac)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
for _1,_2 in ipairs(tabela)do
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,niepuste_wliczac)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)=="number")then
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,niepuste_wliczac)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
for _1,_2 in pairs(tabela)do
if(type(_1)~="number")then
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
end;
return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_sa_elementy_tablicy)then return "tak";end;
return;
end;
p["CzySąElementyTablicy"]=function(tabela,niepuste_wliczac)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
for _1,_2 in pairs(tabela)do
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
return true;
end;
end;
return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
local parametry_modul=require("Module:Parametry");
local czy_jest_taki_element=parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
if(czy_jest_taki_element)then return "tak";end;
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,niepuste_wliczac)
local czy_tylko_niepuste_wliczac=p.CzyTak(niepuste_wliczac);
local i=1;
local czy=false;
for _1,_2 in pairs(args)do
if(type(_1)=="number")then
if((not czy_tylko_niepuste_wliczac)or((czy_tylko_niepuste_wliczac)and(p.CzyTak(_2))))then
if(_1==1)then czy=true;end;
if(i>1)then
return false;
else
i=i+1;
end;
end;
end;
end;
if((czy)or(i==1))then return true;end;
return false;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
local args2={};
local wzor_temp=args["wzór"];local wzor_wszystko=args["wzór wszystko"];
local podstawienie_temp=args.podstawienie;local podstawienie_wszystko=args["podstawienie wszystko"];
local wzor2_temp=args["wzór 2"];local wzor_wszystko_2=args["wzór wszystko 2"];
local przedrostek_temp=args.przedrostek;local przedrostek_wszystko=args["przedrostek wszystko"];
local przyrostek_temp=args.przyrostek;local przyrostek_wszystko=args["przyrostek wszystko"];
for name,value in pairs(args.tabela)do
local wzor=wzor_temp and wzor_temp[name] or wzor_wszystko;
local podstawienie=wzor and (podstawienie_temp and podstawienie_temp[name] or podstawienie_wszystko) or nil;
if(wzor and podstawienie)then value=mw.ustring.gsub(value,wzor,podstawienie);end;
local wzor2=wzor2_temp and wzor2_temp[name] or wzor_wszystko_2;
if(wzor2)then value=mw.ustring.match(value,wzor2);end;
if(value)then
local przedrostek=przedrostek_temp and przedrostek_temp[name] or przedrostek_wszystko;
local przyrostek=przyrostek_temp and przyrostek_temp[name] or przyrostek_wszystko;
args2[name]=(przedrostek or '')..value..(przyrostek or '');
end;
end;
return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,niepuste_wliczac_nazwy,niepuste_wliczac_wartosci)
local czy_tylko_niepuste_wliczac_nazwy=p.CzyTak(niepuste_wliczac_nazwy);
local czy_tylko_niepuste_wliczac_wartosci=p.CzyTak(niepuste_wliczac_wartosci);
local tabelka2={};
for name,value in pairs(tabelka)do
if(((not czy_tylko_niepuste_wliczac_nazwy)or((czy_tylko_niepuste_wliczac_nazwy)and(p.CzyTak(name))))and((not czy_tylko_niepuste_wliczac_wartosci)or((czy_tylko_niepuste_wliczac_wartosci)and(p.CzyTak(value)))))then
tabelka2[name]=value;
end;
end;
return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,niepuste_wliczac_nazwy,niepuste_wliczac_wartosci)
local czy_tylko_niepuste_wliczac_nazwy=p.CzyTak(niepuste_wliczac_nazwy);
local czy_tylko_niepuste_wliczac_wartosci=p.CzyTak(niepuste_wliczac_wartosci);
local tabelka3={};
for name,value in pairs(tabelka)do
if(((not czy_tylko_niepuste_wliczac_nazwy)or((czy_tylko_niepuste_wliczac_nazwy)and(p.CzyTak(name))))and((not czy_tylko_niepuste_wliczac_wartosci)or((czy_tylko_niepuste_wliczac_wartosci)and(p.CzyTak(value)))))then
local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
if(not czy)then
tabelka3[name]=value;
end;
end;
end;
return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,niepuste_wliczac_nazwy,niepuste_wliczac_wartosci,__funkcja)
local czy_tylko_niepuste_wliczac_nazwy=p.CzyTak(niepuste_wliczac_nazwy);
local czy_tylko_niepuste_wliczac_wartosci=p.CzyTak(niepuste_wliczac_wartosci);
local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne");
local szablonowe_modul=require("Module:Szablonowe");
local kopiuj_metatable=function(value,funkcja,funkcja2)
local __metatabelka=getmetatable(value);
if(__metatabelka)then
if(__metatabelka.KopiujMetaTabela)then
__metatabelka.KopiujMetaTabela(value,funkcja,funkcja2)
else
funkcja(value,true);
end;
else
funkcja(value,true);
end;
end;
local function kopiuj(tabelka,tabelka_nowa)
local tabelka2=tabelka_nowa or {};
for name,value in pairs(tabelka)do
if(((not czy_tylko_niepuste_wliczac_nazwy)or((czy_tylko_niepuste_wliczac_nazwy)and(p.CzyTak(name))))and((not czy_tylko_niepuste_wliczac_wartosci)or((czy_tylko_niepuste_wliczac_wartosci)and(p.CzyTak(value)))))then
if(type(value)=="table")then
kopiuj_metatable(value,function(value,jak)
value=__funkcja and __funkcja(value,type(value),jak) or value;
if(jak)then
tabelka2[name]=kopiuj(value);
else
tabelka2[name]=value;
end;
end,kopiuj);
else
value=__funkcja and __funkcja(value,type(value)) or value;
tabelka2[name]=value;
end;
end;
end;
return tabelka2;
end;
local tabela_kopiuj={};
kopiuj_metatable(tabelka,function(value,jak)
if(jak)then
tabela_kopiuj=kopiuj(value);
else
tabela_kopiuj=value;
end;
end,kopiuj);
return tabela_kopiuj;
end;
p["NazwanyLiczbą"] = function(frame)
local pf=frame:getParent()
local numer_parametru=frame.args[1]
if(numer_parametru)then
numer_parametru=tonumber(numer_parametru);
if(numer_parametru and pf.args[numer_parametru])then
return "tak"
end
end;
return;
end
p["NazwanyCiągiem"] = function (frame)
local pf=frame:getParent()
local klucz_parametru=frame.args[1]
if(klucz_parametru)then
local klucz_parametru_do_liczby=tonumber(klucz_parametru);
if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
return "tak"
end
end;
return;
end;
function p.Nazwane(frame)
local pf = frame:getParent()
for _, nazwa_parametru in ipairs(frame.args)do
local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
if(wartosc_parametru_nazwanego)then return "tak" end
end
return;
end
function p.Nienazwane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for name, wartosc_parametru2 in pairs(pf.args) do
if(type(name)=="number")then
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end;
end
end
return;
end
function p.Numerowane(frame)
local pf = frame:getParent()
for _, wartosc_parametru in ipairs(frame.args)do
wartosc_parametru=mw.text.trim(wartosc_parametru)
for _, wartosc_parametru2 in ipairs(pf.args) do
if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then
return "tak"
end
end
end
return;
end
p["Odstępy"] = function(frame)
local PobierzParametr=p.PobierzParametr(frame);
local nazwa=PobierzParametr(1) or PobierzParametr("nazwa");
local czy=PobierzParametr(2) or PobierzParametr("wewnątrz");
local dolny_myslnik=PobierzParametr(3) or PobierzParametr("dolny-myślnik");
local odstep_spacje=PobierzParametr(4) or PobierzParametr("spacje");
if(not p.CzyTak(nazwa))then return nazwa;end;
local m_=(p.CzyTak(odstep_spacje) and "" or "_");
nazwa=mw.ustring.gsub(nazwa,"^[%s"..m_.."]+","");
nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+$","")
if(p.CzyTak(czy))then
nazwa=mw.ustring.gsub(nazwa,"[%s"..m_.."]+",(p.CzyTak(dolny_myslnik) and "_" or " "));
end;
return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
if(wartosc==nil)then return; end;
if(type(tabela)~="table")then return;end;
for _,element_tabeli in pairs(tabela)do
if(element_tabeli==wartosc)then
return false;
end;
end;
table.insert(tabela,wartosc);
return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for _, element_tabeli in ipairs(tabela)do
if(element_tabeli==wartosc)then
return true;
end;
end;
return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
if(wartosc==nil)then return;end;
if(type(tabela)~="table")then return;end;
for name,value in pairs(tabela)do
if(type(name)=="number")then
if(value==wartosc)then
return true;
end;
end;
end;
return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
if(klucz==nil)then return;end;
if(type(tabela)~="table")then return;end;
local wartosc=tabela[klucz];
if(wartosc~=nil)then return true;end;
return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
if((klucz==nil)or(wartosc==nil))then return;end;
if(type(tabela)~="table")then return;end;
for __klucz, __wartosc in pairs(tabela)do
if((__klucz==klucz)and(__wartosc==wartosc))then
return true;
end;
end;
return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))
and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))
and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,}
or tabelka2)
or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
local parametry_modul=require("Module:Parametry");
return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=false,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=false,CzyTylkoNazwaneElementyTabel=false,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=false,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
local parametry_modul=require("Module:Parametry");
local args2={CzyPairsTablic=true,["CzyPairsElementówTablic"]=true,CzyNazwaneElementyTabel=true,CzyTylkoNazwaneElementyTabel=false,NazwijElementyNumerowane=true,};
return parametry_modul["ŁączTabele"](args,args2);
end;
p["ŁączTabele"] = function(args,args2)
local tabela={};
local par1=(args2.CzyPairsTablic)and pairs or ipairs;
local czy_number_nie_tylko_tablic=(not args2.CzyPairsTablic)and true or false;
local par2=(args2["CzyPairsElementówTablic"])and pairs or ipairs;
local czy_number_nie_tylko_elementow_tablic=(not args2["CzyPairsElementówTablic"])and true or false;
local czy_nazwane=(args2.CzyNazwaneElementyTabel)and true or false;
local czy_nie_tylko_nazwane=(not args2.CzyTylkoNazwaneElementyTabel)and true or false;
local nazwij_elementy_numerowane=(args2.NazwijElementyNumerowane) and true or false;
for licznik, args_tabeli in par1(args)do
if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
for name,value in par2(args_tabeli)do
if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
if(nazwij_elementy_numerowane)then
if(not tabela[name])then tabela[name]=value;end;
else
table.insert(tabela,value);
end;
elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
if(not tabela[name])then tabela[name]=value;end;
end;
end;
end;
end;
return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
if(not tabelka_1)then return nil;end;
if(not tabelka_2)then return tabelka_1;end;
for name,_ in pairs(tabelka_1)do
if(tabelka_2[name]~=nil)then
tabelka_1[name]=nil;
end;
end;
return tabelka_1;
end;
p["TwórzTabelęBezPowtarzającychKluczyTabel"]=function(args)
local tabela_poczatkowa=args[1];
local tabela={};
local lens=#args;
for name,value in pairs(tabela_poczatkowa)do
local yes=false;
for i=2,lens,1 do
if(args[i][name]~=nil)then
yes=true;
break;
end;
end;
if(not yes)then
tabela[name]=value;
end;
end;
return tabela;
end;
function p.TypeTable(zmienna)
return (type(zmienna)=="table");
end;
function p.TypeFunction(zmienna)
return (type(zmienna)=="function");
end;
function p.TypeString(zmienna)
return (type(zmienna)=="string");
end;
function p.TypeBoolean(zmienna)
return (type(zmienna)=="boolean");
end;
function p.TypeNumber(zmienna)
return (type(zmienna)=="number");
end;
function p.TypeNil(zmienna)
return (zmienna==nil);
end;
local function CzyTakSilnik(args,funkcja)
local parametry_modul=require("Module:Parametry");
local parametr=p.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
local argsfun;
if(p.CzyTak(args[2]))then
for name,value in pairs(args)do
local typen=(type(name)=="number");
if(((typen)and((name~=1)and(name~=2)))or(not typen))then
if(not argsfun)then argsfun={};end;
argsfun[(typen and name>2) and (name-2) or name]=value;
end;
end;
else
parametr=tonumber(parametr) or parametr;
if(type(parametr)=="string")then
local parametr2=parametry_modul["Odstępy"](parametr);
if(parametr2=="true")then
parametr=true;
elseif(parametr2=="false")then
parametr=false;
elseif(parametr2=="nil")then
parametr=nil;
else
parametr=tonumber(parametr2) or parametr;
end;
end;
end;
return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(...)
local frame_parametry={...};
local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1];
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local ciag=PobierzParametr("ciąg") or PobierzParametr(1);
local parametry=PobierzParametr("parametry") or PobierzParametr(2);
local parametry_modul=require("Module:Parametry");
if(not p.TypeNil(ciag))then
if(p.TypeString(ciag))then
return (not mw.ustring.match(ciag,"^([_%s]*)$")) and "tak" or nil;
end;
else
return nil;
end;
return p.CzyTak{[1]=ciag,[2]=parametry,};
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTakCiąg");
end;
end;
function p.CzyTak(...)
local frame_parametry={...};
local frame=(#frame_parametry>1)and frame_parametry or frame_parametry[1];
local czy_table=p.TypeTable(frame);
if((czy_table and (not frame.getParent)) or (not czy_table))then
local PobierzParametr=p.PobierzParametr(frame);
local zmienna;local parametry;
if(czy_table)then
local zmienna_temp=PobierzParametr("zmienna") or PobierzParametr(1);
zmienna=zmienna_temp or frame;
parametry=zmienna_temp and (PobierzParametr("parametry") or PobierzParametr(2)) or nil;
else
zmienna=frame;
parametry=nil;
end;
if(not p.TypeNil(zmienna))then
if(p.TypeString(zmienna))then
if(zmienna~="")then
return "tak";
else
return nil;
end;
elseif(p.TypeNumber(zmienna))then
if(zmienna~=0)then
return "tak";
else
return nil;
end;
elseif(p.TypeBoolean(zmienna))then
return (zmienna and "tak" or nil);
elseif(p.TypeTable(zmienna))then
local parametry_modul=require("Module:Parametry");
return (parametry_modul["CzySąElementyTablicy"](zmienna) and "tak" or nil);
elseif(p.TypeFunction(zmienna))then
return (zmienna(parametry) and "tak" or nil);
else
return nil;
end;
else
return nil;
end;
else
local args=p.PobierzArgsParametry(frame);
return CzyTakSilnik(args,"CzyTak");
end;
end;
function p.PobierzFrameEwentualnieParent(frame)
return (frame.getParent and (p.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame);
end;
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)
local TempFunc=function(frame)
local pf=p.PobierzFrameEwentualnieParent(frame);
local args=pf.args;
if(p.TypeTable(args))then
return args;
else
return nil;
end;
end;
if(not p.TypeNil(frame))then
return p.TypeTable(frame) and (TempFunc(frame) or frame) or ((czy_nie_tablica_jako_tablica)and {frame,} or frame);
else
return {};
end;
end;
function p.PobierzParametryRamki(frame)
local TempFun1=function(tablica)
return function(nazwa)
return tablica[nazwa];
end;
end;
local TempFun2=function(wartosc)
local tak=true;
return function(nazwa)
if(tak)then
tak=false;
return wartosc;
end;
return nil;
end;
end;
local tablica_parametrow_ramki=p.TypeTable(frame) and (p.TypeTable(frame.args) and TempFun1(frame.args) or TempFun1(frame)) or TempFun2(frame);
return function(nazwa)
return tablica_parametrow_ramki(nazwa);
end;
end;
function p.PobierzElementNumerowanyZFrameLubTablicy(frame)
local tablica_parametrow_funkcji=p.TypeTable(frame[1]) and p.TypeTable(frame[1].args)and frame[1].args or frame;
return function(nazwa)
local wartosc=tablica_parametrow_funkcji[nazwa];
return wartosc;
end;
end;
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
local __pobierz_parametr_table_args=nil;
if(not p.TypeNil(frame))then
if(p.TypeTable(frame))then
local tak_frame_lub_parent=p.CzyTak(czy_frame_lub_parent);
if((not tak_frame_lub_parent)or(not frame.getParent))then
local __pobierz_parametr_table_args_temp=p.CzyTak(czy_frame) and frame.args or p.PobierzArgsParametry(frame);
__pobierz_parametr_table_args=function(nazwa)
return __pobierz_parametr_table_args_temp[nazwa or 1],1;
end;
elseif(tak_frame_lub_parent)then
local pf=(frame.getParent)and frame:getParent() or nil;
__pobierz_parametr_table_args=function(nazwa)
local wartosc=frame.args[nazwa or 1] or (pf and pf.args[nazwa or 1] or nil);
return wartosc,2;
end;
end;
else
local tak=true;
__pobierz_parametr_table_args=function(nazwa)
if(tak)then
tak=false;
return frame,0;
end;
return nil,0;
end;
end;
else
__pobierz_parametr_table_args=function(nazwa)
return nil,0;
end;
end;
return function(nazwa)
return __pobierz_parametr_table_args(nazwa);
end;
end;
function p.And(frame)
local czy="tak";
local parametry_modul=require("Module:Parametry");
local wartosc_uzyskana=nil;
for _,wartosc in ipairs(frame.args)do
czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
if(not czy)then return nil;end;
wartosc_uzyskana=wartosc;
end;
return czy and wartosc_uzyskana or nil;
end;
function p.Or(frame)
local czy=nil;
for _,wartosc in ipairs(frame.args)do
czy=czy or p["CzyTakCiąg"](wartosc);
if(czy)then return wartosc;end;
end;
return nil;
end;
function p.Not(frame)
local parametry_modul=require("Module:Parametry");
return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.Mniejszy(frame)
local wyraz1=tonumber(frame.args[1]) or 0;
local wyraz2=tonumber(frame.args[2]) or 0;
if(wyraz1<wyraz2)then
return "tak";
end;
return;
end;
function p.IlePodano(frame)
local args=frame.args;
local args2=frame:getParent().args;
local licznik=0;
for _,name in pairs(args)do
if(args2[name])then
licznik=licznik+1;
end;
end;
return licznik;
end;
p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter={};
function p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index(t,klucz)
local html_modul=require("Module:Html");
klucz=html_modul.DecodeKoduHTMLZnaku(klucz);
klucz=p["Odstępy"]{[1]=klucz,[2]="tak",};
klucz=mw.ustring.lower(klucz);
return rawget(t,klucz);
end;
function p.IteratorPoNumerowanychElementachTablicy(t)
local i=1;
return function()
local v=t[i];
if(v~=nil)then i=i+1;end;
return v;
end;
end;
p.IteratorKluczeTabeliAlfabetycznieSortujDoPrzodu=function(tabela,czy_number,funkcja)
local keys={};
for name,_ in next,tabela do
if((not czy_number)or((czy_number)and(p.TypeNumber(name))))then
table.insert(keys,name);
end;
end;
table.sort(keys,
funkcja
or ((czy_number)
and function(a,b)
return (a<b);
end
or nil
)
);
return function(tablica,klucz)
if(klucz==nil)then
local klucz=keys[1];
return klucz,tablica[klucz];
end;
for k,_ in ipairs(keys)do
if(keys[k]==klucz)then
local klucz=keys[k+1];
return klucz,tablica[klucz];
end;
end;
end;
end;
function p.Max(...)
local frame={...};
local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame);
local parametr1=tonumber(PobierzElement(1));
local parametr2=tonumber(PobierzElement(2));
return math.max(parametr1,parametr2);
end;
function p.Min(...)
local frame={...};
local PobierzElement=p.PobierzElementNumerowanyZFrameLubTablicy(frame);
local parametr1=tonumber(PobierzElement(1));
local parametr2=tonumber(PobierzElement(2));
return math.min(parametr1,parametr2);
end;
return p;
hmk834z2xdsb4vof2stc7myw37a4u3f
Wikibooks:Moduły/StronicowyParser/Potrzebne/Tom VIII
4
64474
560348
560344
2026-10-31T10:06:12Z
Persino
2851
/* {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} */
560348
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Potrzebne}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.RozwijanieZakodowanejNazwySzablonu}}{{Code|p.RozwijanieZakodowanejNazwySzablonu}} ==
{{Śródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|bez preprocess=tak|klucz=tak|klucz2=tak|tekst={{#if:{{{klucz|}}}|
Funkcja do dekodowania i rozwijania nazwy szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, przy pomocy uchwytu bazy: {{Code|nazwa_modulu}} {{LinkPatrz|nazwa_modulu}}, lub tabeli bazy zakodowania tekstu: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, a jeżeli ona posiada w sobie wywołania: {{lk|Szablony stronicowe|szablonów stronicowych}}, to one są zamieniane kody typu: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, przy wyłączonym kluczu: {{Code|czy_z_kluczem}} {{LinkPatrz|czy_z_kluczem}}, aby {{ld|StronicowyParser|Stronicowy Parser}} nie wpadł w nieskończoną pętle, która nigdy się nie kończy, aby zapobiec temu, to tak trzeba robić.
Jeżeli w nazwie tego nie ma żadnego kodu, to z nim nic nie jest robione, a jak nie ma żadnego tworu szablonowego, to ona nie jest rozwijana względem funkcji: {{LzLua|frame:preprocess}}.
Funkcja też jest używana w wersji {{#if:{{{klucz2|}}}|po wydzieleniu|przed wydzieleniem}} opcji modyfikatorowych, podczas ustalania nazwy szablonu, czy parsera, to robi się zwykle {{#if:{{{klucz2|}}}|po|przed}}: {{Code|{{sr|#p.WydzielanieOpcjiModyfikatorowych|p=Szablonowe}}}}, która wydziela nazwę, modyfikatory w postaci łańcucha znaków i tabele użytych modyfikatorów.
| tak}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.RozwijanieZakodowanejNazwySzablonu(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)...end;
</syntaxhighlight>
Opis parametrów funkcji {{ZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}:
{{OpisParametrów
| 1 = {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} | _1 = Nazwa szablonu do odkodowania.
| 2 = {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} | _2 = Uchwyt bazy zakodowanego tekstu, używany zamiast: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 3 = {{Code|nazwa_modulu_szablonowa}} {{Patrz|nazwa_modulu_szablonowa}} | _3 = Nazwa modułu w postaci szablonowej, w takiej postaci jaką się go wywołuje w szablnach.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy zakodowanego tekstu wikikodu.
| 5 = {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} | _5 = Tabela rozkładów niektórych, ale niekoniecznie, elementów na czynniki pierwsze.
}}
; Kroki postępowania funkcji{{dk}}
Funkcja używa funkcji: {{Code|{{sr|#p.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych|p=Szablonowe}}}} lub {{Code|{{sr|#p.CzyModyfikatoryCharakterystyczneSzablonowe|p=Szablonowe}}}}, wtedy jeśli któraś z nich coś wykryła, to wtedy funkcja zwraca wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Dalej, jeśli funkcja ominęła powyższy krok instrukcji, jest wykonywana: {{LinkŚródtytuł|p.DekodowanieNazwySzablonu}}, a jeśli ona nic nie zrobiła, ale nazwa szablonu: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, zawiera jakiś kod, wtedy druki parametr wskazuje na niepowodzenie, w takim wypadku wynik:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
Jeśli wszystko poszło dobrze, to wtedy funkcja zwraca zmodyfikowany lub nienaruszony, jeśli w nim nie ma żadnych kodów, wynik z drugim parametrem prawdziwym:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
Drugi parametr oznacza tutaj, że jakiś wynik mamy.
== {{Śródtytuł|p.DekodowanieTekstu}}{{Code|p.DekodowanieTekstu}} ==
Funkcja do dekodowania tekstu i rozwijania go funkcją: {{LzLua|frame:preprocess}}. Funkcja {{lk|szablony stronicowe}} zamienia na kod symboliczny, a inne już są w postaci normalnych wywołań, całość jest rozwijana tą funkcją. Funkcja używa podwójnego uruchamiania swoich funkcji, najpierw zbiera parametry, dzięki którym ma być uruchamiana, a później ona tak zwraca inną funkcją, którą dekodujemy właściwie tekst. W tym drugim działa: {{LinkŚródtytuł|p.DekodowanieTekstuNazwLinku|StronicowyParser/Pomocne}}, której dwa zwrócone wynik za jednym razem są zwracane przez tą funkcję zwracaną.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieTekstu(nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci)
return function(tekst,tryb,czy_nie_odstepy,drugi_wynik,czy_drugi_wynik_przetworzony)
...
end;
end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|nazwa_modulu}} | _1 = Jak w: {{LinkPatrz|nazwa_modulu}}.
| 2 = {{Code|nazwa_modulu_szablonowa}} | _2 = Jak w: {{LinkPatrz|nazwa_modulu_szablonowa}}.
| 3 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} | _3 = Jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
| 4 = {{Code|tablica_danych_parametrow_szablonu_strony}} | _4 = Jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}.
| 5 = {{Code|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}}, i {{Code|nazwa_ksiazki}} | _5 = Kolejno jak: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Potrzebne/Tom III}}, {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Potrzebne/Tom III}} i {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Potrzebne/Tom III}}.
| 6 = {{Code|nazwa_artykulu}} | _6 = Jak w: {{LinkPatrz|nazwa_artykulu|StronicowyParser/Potrzebne/Tom III}}.
}}
== {{Śródtytuł|p.ARCHIWLubSTARE}}{{Code|p.ARCHIWLubSTARE}} ==
Funkcja zamieniająca kod niedozwolony przez dany szablon na kod typu: {{Code|obiekt}} {{LinkPatrz|obiekt}} lub {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}, o pewnym numerze ustalanym przez {{Code|kod}} {{LinkPatrz|kod}} lub funkcję: {{Code|{{sr|#p.NumerSzablonuObiektu|p=Szablonowe}}}}, o właściwym kodzie pisanym przez: {{Code|{{sr|#p.NormaKoduKodowaniaTekstu|p=Szablonowe}}}}. Funkcja zwraca ten kod z drugim parametrem, który jest numer tego kodu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.ARCHIWLubSTARE(szablon,obiekt,kod,tablica_analizy_obiektow_strony_dany_modul)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = {{Code|szablon}} {{Patrz|szablon}} | _1 = Kod stary szablonowy, jeszcze przed zamianą.
| 2 = {{Code|obiekt}} {{Patrz|obiekt}} | _2 = Alternatywny typ obiektu po zamianie niż {{Code|ARCHIW}} {{Patrz|ARCHIW}}.
| 3 = {{Code|kod}} {{Patrz|kod}} | _3 = Alternatywny numer obiektu o typie: {{LinkPatrz|obiekt}} lub {{LinkPatrz|ARCHIW}}.
| 4 = {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}} | _4 = Tablica bazy kodów tekstu zakodowanego.
}}
== {{Śródtytuł|p.DekodowanieNazwySzablonu}}{{Code|p.DekodowanieNazwySzablonu}} ==
{{PobierzŚródtekst|uchwyt=p.RozwijanieZakodowanejNazwySzablonu|klucz=tak|klucz2=}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.DekodowanieNazwySzablonu(nazwa_szablonu,nazwa_modulu,nazwa_modulu_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,czy_uwzgledniac_modyfikatory,czy_z_kluczem)...end;
</syntaxhighlight>
Opis parametrów funkcji:
{{OpisParametrów
| 1 = Funkcja przyjmuje te same parametry, co: {{LinkZobaczTeż|p.RozwijanieZakodowanejNazwySzablonu}}.| komórka1 = tak
| 2 = Parametry dadatkowe: | nagłówek2 = tak
| 3 = {{Code|czy_uwzgledniac_modyfikatory}} {{Patrz|czy_uwzgledniac_modyfikatory}} | _3 = Wartość fałszywa, wtedy funkcja nie uwzględnia modyfikatorów przy dekodowaniu, w takiej ssytuacj, jak ona to wykryje, to natychmiast zwraca wynik.
| 4 = {{Code|czy_z_kluczem}} {{Patrz|czy_z_kluczem}} | _4 = Wartość fałszywa, wtedy zmienne kluczowe dla szablonów: {{s|Śródtekst}} i {{s|PobierzŚródtekst}}, są kodowane w specjalnych kodach: {{Code|ARCHIW}} {{LinkPatrz|ARCHIW}}.
}}
Gdy funkcja nie wykryła żadnego kody w: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu}}, to jest zakańczana z wynikiem:
<syntaxhighlight lang="lua">
return nil,true;
</syntaxhighlight>
Gdy nie uwzględnia modyfikatorów, ale w tej nazwie są one jednak jakieś, rozważając ogólnie, to funkcja zakańcza się:
<syntaxhighlight lang="lua">
return nil,false;
</syntaxhighlight>
A gdy jednak tą nazwę odkodowano, i ewentualnie rozwinięto specjalną funkcją: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, to wtedy mamy:
<syntaxhighlight lang="lua">
return nazwa_szablonu,true;
</syntaxhighlight>
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jffcsfa20r2f0ijuoy2gjkdqzp5eht5