Moduł:Brudnopis/Persino/s
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Brudnopis/Persino/s/opis.
local function Parametry(args, modyfikator, link)
local str="{{"..(((modyfikator)and(modyfikator~=""))and (modyfikator..":") or "")..link;
for name,value in ipairs(args)do
if(name~=1)then
str=str.."|"..value;
end;
end;
local str=str.."}}";
return str;
end;
local function Szablon(args,kod_jezyka,kod,modyfikator, rozwazane)
local template=mw.ustring.match(rozwazane,"^:?([Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee]:)");
if(template)then
local nazw,_=mw.ustring.gsub(rozwazane,"^:?[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee]:","");
return Parametry(args,modyfikator,"[["..kod.."Template:"..nazw.."|"..nazw.."]]");
else
local template2=mw.ustring.match(rozwazane,"^:?([Ss][Zz][Aa][Bb][Ll][Oo][Nn]:)");
if(template2)then
local nazw,_=mw.ustring.gsub(rozwazane,"^:?[Ss][Zz][Aa][Bb][Ll][Oo][Nn]:","");
return Parametry(args,"","[["..kod.."Template:"..nazw.."|"..nazw.."]]");
else
local rozwazane0=mw.ustring.match(rozwazane,"^:");
if(not rozwazane0)then
local nazwa_przestrzeni=mw.getCurrentFrame():callParserFunction{name='#invoke:Nazwy',args={"NAZWAPRZESTRZENI",rozwazane}};
if((nazwa_przestrzeni~="Szablon")and(nazwa_przestrzeni~=""))then
local pelna_nazwa_strony=mw.getCurrentFrame():callParserFunction{name='#invoke:Nazwy',args={"PEŁNANAZWASTRONY",rozwazane}};
local nazwa_strony=mw.getCurrentFrame():callParserFunction{name='#invoke:Nazwy',args={"NAZWASTRONY",rozwazane}};
return Parametry(args,modyfikator,"[["..kod..pelna_nazwa_strony.."|"..nazwa_strony.."]]");
else
local rozwazane2,_=mw.ustring.gsub(rozwazane,"^:","");
return Parametry(args,modyfikator,"[["..kod.."Template:"..rozwazane2.."|"..rozwazane2.."]]");
end;
else
local rozwazane2,_=mw.ustring.gsub(rozwazane,"^:","");
local nazwa_przestrzeni=mw.getCurrentFrame():callParserFunction{name='#invoke:Nazwy',args={"NAZWAPRZESTRZENI",rozwazane}};
if(nazwa_przestrzeni~="")then
return Parametry(args,modyfikator,"[["..kod..rozwazane2.."|"..rozwazane2.."]]");
else
return Parametry(args,modyfikator,":[["..kod..rozwazane2.."|"..rozwazane2.."]]");
end;
end;
end
end;
end;
local function modyfikatory_proste(rozwazane,modyfikator)
local modyfikator2=mw.ustring.match(rozwazane,"^%s*(#invoke)%s*:");
if(modyfikator2=="#invoke")then
modyfikator2=((modyfikator)and (modyfikator..":") or "").."#invoke";
rozwazane=mw.ustring.match(rozwazane,"^%s*#invoke%s*:%s*(.-)%s*$");
return {modyfikator2,rozwazane};
end;
local modyfikator2=mw.ustring.match(rozwazane,"^%s*(msg)%s*:");
if(modyfikator2=="msg")then
modyfikator2=((modyfikator)and (modyfikator..":") or "").."msg";
rozwazane=mw.ustring.match(rozwazane,"^%s*msg%s*:%s*(.-)%s*$");
return {modyfikator2,rozwazane};
end;
local modyfikator2=mw.ustring.match(rozwazane,"^%s*(msgnw)%s*:");
if(modyfikator2=="msgnw")then
modyfikator2=((modyfikator)and (modyfikator..":") or "").."msgnw";
rozwazane=mw.ustring.match(rozwazane,"^%s*msgnw%s*:%s*(.-)%s*$");
return {modyfikator2,rozwazane};
end;
local modyfikator2=mw.ustring.match(rozwazane,"^%s*(raw)%s*:");
if(modyfikator2=="raw")then
modyfikator2=((modyfikator)and (modyfikator..":") or "").."raw";
rozwazane=mw.ustring.match(rozwazane,"^%s*raw%s*:%s*(.-)%s*$");
return {modyfikator2,rozwazane};
end;
local modyfikator2=mw.ustring.match(rozwazane,"^%s*(int)%s*:");
if(modyfikator2=="int")then
modyfikator2=((modyfikator)and (modyfikator..":") or "").."int";
rozwazane=mw.ustring.match(rozwazane,"^%s*int%s*:%s*(.-)%s*$");
return {modyfikator2,rozwazane};
end;
return nil;
end;
local p={
["s"] = function(frame)
local args=frame:getParent().args;
local argument_pierwszy=args[1];
local kod_projektu=frame:getParent().args["kod projektu"];
local kod_jezyka=frame:getParent().args["kod języka"];
local kod=((kod_projektu) and (kod_projektu~=""))and (kod_projektu..":") or "";
local kod=((kod_jezyka) and (kod_jezyka~=""))and (kod..(kod_jezyka..":")) or kod;
local rozwazane;
local modyfikator=mw.ustring.match(argument_pierwszy,"^%s*(subst)%s*:");
if(modyfikator)then
rozwazane=mw.ustring.match(argument_pierwszy,"^%s*subst%s*:%s*(.-)%s*$");
else
modyfikator=mw.ustring.match(argument_pierwszy,"^%s*(safesubst)%s*:");
if(modyfikator)then
rozwazane=mw.ustring.match(argument_pierwszy,"^%s*safesubst%s*:%s*(.-)%s*$");
end;
end;
local tab;
if(modyfikator)then
tab=modyfikatory_proste(rozwazane,modyfikator);
if(tab)then
modyfikator=tab[1];
rozwazane=tab[2];
end;
else
local tab=modyfikatory_proste(argument_pierwszy,nil);
if(tab)then
modyfikator=tab[1];
rozwazane=tab[2];
else
modyfikator="";
end;
end;
if((modyfikator=="#invoke")or(modyfikator=="subst:#invoke")or(modyfikator=="safesubst:#invoke"))then
local module1=mw.ustring.match(rozwazane,"^:?([Mm][Oo][Dd][Uu][Ll][Ee]:)");
if(module1)then
local nazw,_=mw.ustring.gsub(rozwazane,"^:?[Mm][Oo][Dd][Uu][Ll][Ee]:","");
return Parametry(args,modyfikator,"[["..kod.."Module:"..nazw.."|"..nazw.."]]");
else
local module2=mw.ustring.match(rozwazane,"^:?([Mm][Oo][Dd][Uu][Łł]:)");
if(module2)then
local nazw,_=mw.ustring.gsub(rozwazane,"^:?[Mm][Oo][Dd][Uu][Łł]:","");
return Parametry(args,modyfikator,"[["..kod.."Module:"..nazw.."|"..nazw.."]]");
else
rozwazane=mw.ustring.gsub(rozwazane,"^:","");
return Parametry(args,modyfikator,"[["..kod.."Module:"..rozwazane.."|"..rozwazane.."]]");
end;
end;
elseif((modyfikator=="msg")or(modyfikator=="msgnw")or(modyfikator=="raw")or(modyfikator=="subst:msg")or(modyfikator=="subst:msgnw")or(modyfikator=="subst:raw")
or(modyfikator=="safesubst:msg")or(modyfikator=="safesubst:msgnw")or(modyfikator=="safesubst:raw")
or(modyfikator=="subst")or(modyfikator=="safesubst"))then
return Szablon(args,kod_jezyka,kod,modyfikator, rozwazane)
elseif((modyfikator=="int")or (modyfikator=="safesubst:int")or(modyfikator=="subst:int")) then
local mediawiki=mw.ustring.match(rozwazane,"^(:?[Mm][Ee][Dd][Ii][Aa][Ww][Ii][Kk][Ii]:)");
if(mediawiki)then
local nazw,_=mw.ustring.gsub(rozwazane,"^:?[Mm][Ee][Dd][Ii][Aa][Ww][Ii][Kk][Ii]:","");
return Parametry(args,modyfikator,"[["..kod.."MediaWiki:"..nazw.."|"..nazw.."]]");
else
rozwazane=mw.ustring.gsub(rozwazane,"^:","");
return Parametry(args,modyfikator,"[["..kod.."MediaWiki:"..rozwazane.."|"..rozwazane.."]]");
end;
else
local nazwa_przestrzeni=mw.getCurrentFrame():callParserFunction{name='#invoke:Nazwy',args={"NAZWAPRZESTRZENI",argument_pierwszy}};
if(nazwa_przestrzeni~="")then
if(nazwa_przestrzeni=="Szablon")then
return Szablon(args,kod_jezyka,kod,nil,argument_pierwszy)
else
local pelna_nazwa_strony=mw.getCurrentFrame():callParserFunction{name='#invoke:Nazwy',args={"PEŁNANAZWASTRONY",argument_pierwszy}};
return Parametry(args,"","[["..kod..pelna_nazwa_strony.."|"..pelna_nazwa_strony.."]]");
end;
else
local rozwazane2=mw.ustring.match(argument_pierwszy,"^:");
if(rozwazane2)then
local pelna_nazwa_strony=mw.getCurrentFrame():callParserFunction{name='#invoke:Nazwy',args={"PEŁNANAZWASTRONY",argument_pierwszy}};
return Parametry(args,"",":[["..kod..pelna_nazwa_strony.."|"..pelna_nazwa_strony.."]]");
else
return Parametry(args,"","[["..kod.."Template:"..argument_pierwszy.."|"..argument_pierwszy.."]]");
end;
end;
end;
end,
["M"] = function(frame)
local args=frame:getParent().args;
local rozwazane=args[1];
local kod_projektu=frame:getParent().args["kod projektu"];
local kod_jezyka=frame:getParent().args["kod języka"];
local kod=((kod_projektu) and (kod_projektu~=""))and (kod_projektu..":") or "";
local kod=((kod_jezyka) and (kod_jezyka~=""))and (kod..(kod_jezyka..":")) or kod;
local module1=mw.ustring.match(rozwazane,"^:?([Mm][Oo][Dd][Uu][Ll][Ee]:)");
if(module1)then
local nazw,_=mw.ustring.gsub(rozwazane,"^:?[Mm][Oo][Dd][Uu][Ll][Ee]:","");
return Parametry(args,"#invoke","[["..kod.."Module:"..nazw.."|"..nazw.."]]");
else
local module2=mw.ustring.match(rozwazane,"^:?([Mm][Oo][Dd][Uu][Łł]:)");
if(module2)then
local nazw,_=mw.ustring.gsub(rozwazane,"^:?[Mm][Oo][Dd][Uu][Łł]:","");
return Parametry(args,"#invoke","[["..kod.."Module:"..nazw.."|"..nazw.."]]");
else
rozwazane=mw.ustring.gsub(rozwazane,"^:","");
return Parametry(args,"#invoke","[["..kod.."Module:"..rozwazane.."|"..rozwazane.."]]");
end;
end;
end,
}
return p;