Moduł:S
Przejdź do nawigacji
Przejdź do wyszukiwania
Zobacz podstrony tego modułu.
|
local function Parametry(args, link)
local wywolanie="{{"..link;
for name,value in ipairs(args)do
if(name~=1)then
wywolanie=wywolanie.."|"..value;
end;
end;
local wywolanie=wywolanie.."}}";
return wywolanie;
end;
local function Szablon(args,klucz_projektu,modyfikator,rozwazana_nazwa_strony,odstepy_po)
local parametry_modul=require("Module:Parametry");
local nazwa=rozwazana_nazwa_strony;
rozwazana_nazwa_strony=parametry_modul["Odstępy"]{[1]=rozwazana_nazwa_strony,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,};
local szablon_kanoniczna="Template";local szablon_niekanoniczna;
local nazwa_polska;
if(czy_biezaca)then
szablon_niekanoniczna=nazwy_modul.Np{nazwa="Template",};
szablon_nazwa_polska=szablon_niekanoniczna;
else
szablon_niekanoniczna=nazwy_modul.NpDane{nazwa="Template",["klucz projektu"]=klucz_projektu,};
szablon_nazwa_polska=nazwy_modul.NpDane{nazwa="Template",["klucz projektu"]=klucz_projektu,["po polsku"]="tak",};
end;
local techniczne_modul=require("Module:Techniczne");
local wzor_szablon_kanoniczna=techniczne_modul["WzórDanejPrzestrzeniNazw"](szablon_kanoniczna);
local wzor_szablon_niekanoniczna=techniczne_modul["WzórDanejPrzestrzeniNazw"](szablon_niekanoniczna);
local wzor_szablon_po_polsku=not czy_biezaca and techniczne_modul["WzórDanejPrzestrzeniNazw"](szablon_nazwa_polska) or nil;
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
local template_kanoniczna=mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_szablon_kanoniczna..":)");
if(template_kanoniczna)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_szablon_kanoniczna..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{["klucz projektu"]=klucz_projektu,["strona"]="Template:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",}..odstepy_po);
else
local template_niekanoniczna=mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_szablon_niekanoniczna..":)");
if(template_niekanoniczna)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_szablon_niekanoniczna..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{["klucz projektu"]=klucz_projektu,["strona"]="Template:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",}..odstepy_po);
else
local template_po_polsku=not czy_biezaca and mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_szablon_po_polsku..":)") or nil;
if(template_po_polsku)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_szablon_po_polsku..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{["klucz projektu"]=klucz_projektu,["strona"]="Template:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",}..odstepy_po);
else
local template_main=mw.ustring.match(rozwazana_nazwa_strony,"^:");
if(not template_main)then
local nazwa_przestrzeni=require("Module:Nazwy")["NAZWAPRZESTRZENI"](rozwazana_nazwa_strony);
if((nazwa_przestrzeni~="Szablon")and(nazwa_przestrzeni~=""))then
local pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"](rozwazana_nazwa_strony);
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{["klucz projektu"]=klucz_projektu,["strona"]=pelna_nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",}..odstepy_po);
else
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa,_=mw.ustring.gsub(nazwa,"^:","");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{["klucz projektu"]=klucz_projektu,["strona"]="Template:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",}..odstepy_po);
end;
else
local nazwa_przestrzeni=require("Module:Nazwy")["NAZWAPRZESTRZENI"](rozwazana_nazwa_strony);
local pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"](rozwazana_nazwa_strony);
nazwa,_=mw.ustring.gsub(nazwa,"^:","");
if(nazwa_przestrzeni~="")then
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{["klucz projektu"]=klucz_projektu,["strona"]=pelna_nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",}..odstepy_po);
else
return Parametry(args,modyfikator..":"..require("Module:Linki")["Link wewnętrzny"]{["klucz projektu"]=klucz_projektu,["strona"]=pelna_nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,}..odstepy_po);
end;
end;
end;
end
end;
end;
local function Modul(args,klucz_projektu, modyfikator, rozwazana_nazwa_strony,odstepy_po)
local nazwa=rozwazana_nazwa_strony;
local parametry_modul=require("Module:Parametry");
rozwazana_nazwa_strony=parametry_modul["Odstępy"]{[1]=rozwazana_nazwa_strony,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,};
local modul_kanoniczna="Module";local modul_niekanoniczna;
local modul_nazwa_polska;
if(czy_biezaca)then
modul_niekanoniczna=nazwy_modul.Np{nazwa="Module",};
modul_nazwa_polska=modul_niekanoniczna;
else
modul_niekanoniczna=nazwy_modul.NpDane{nazwa="Module",["klucz projektu"]=klucz_projektu,};
modul_nazwa_polska=nazwy_modul.NpDane{nazwa="Module",["klucz projektu"]=klucz_projektu,["po polsku"]="tak",};
end;
local techniczne_modul=require("Module:Techniczne");
local wzor_modul_kanoniczna=techniczne_modul["WzórDanejPrzestrzeniNazw"](modul_kanoniczna);
local wzor_modul_niekanoniczna=techniczne_modul["WzórDanejPrzestrzeniNazw"](modul_niekanoniczna);
local wzor_modul_po_polsku=not czy_biezaca and techniczne_modul["WzórDanejPrzestrzeniNazw"](modul_nazwa_polska) or nil;
local module_kanoniczna=mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_modul_kanoniczna..":)");
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
if(module_kanoniczna)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_modul_kanoniczna..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["strona"]="Module:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",},}..odstepy_po);
else
local module_niekanoniczna=mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_modul_niekanoniczna..":)");
if(module_niekanoniczna)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_modul_niekanoniczna..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["strona"]="Module:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",},}..odstepy_po);
else
local module_po_polsku=not czy_biezaca and mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_modul_po_polsku..":)") or nil;
if(module_po_polsku)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_modul_po_polsku..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["strona"]="Module:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",},}..odstepy_po);
else
local adres_strony=mw.ustring.gsub(rozwazana_nazwa_strony,"^:","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa,_=mw.ustring.gsub(nazwa,"^:","");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["strona"]="Module:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",},}..odstepy_po);
end;
end;
end;
end;
local function int(args,klucz_projektu,modyfikator,rozwazana_nazwa_strony,odstepy_po)
local nazwa=rozwazana_nazwa_strony;
local parametry_modul=require("Module:Parametry");
rozwazana_nazwa_strony=parametry_modul["Odstępy"]{[1]=rozwazana_nazwa_strony,[2]="tak",};
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,};
local mediawiki_kanoniczna="MediaWiki";local mediawiki_niekanoniczna;
local mediawiki_nazwa_polska;
if(czy_biezaca)then
mediawiki_niekanoniczna=nazwy_modul.Np{nazwa="MediaWiki",};
mediawiki_nazwa_polska=mediawiki_niekanoniczna;
else
mediawiki_niekanoniczna=nazwy_modul.NpDane{nazwa="MediaWiki",["klucz projektu"]=klucz_projektu,};
mediawiki_nazwa_polska=nazwy_modul.NpDane{nazwa="MediaWiki",["klucz projektu"]=klucz_projektu,["po polsku"]="tak"};
end;
local techniczne_modul=require("Module:Techniczne");
local wzor_mediawiki_kanoniczna=techniczne_modul["WzórDanejPrzestrzeniNazw"](mediawiki_kanoniczna);
local wzor_mediawiki_niekanoniczna=techniczne_modul["WzórDanejPrzestrzeniNazw"](mediawiki_niekanoniczna);
local wzor_mediawiki_po_polsku=not czy_biezaca and techniczne_modul["WzórDanejPrzestrzeniNazw"](mediawiki_nazwa_polska) or nil;
local mediawiki_kanoniczna=mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_mediawiki_kanoniczna..":)");
local bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
if(mediawiki_kanoniczna)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_mediawiki_kanoniczna..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["strona"]="MediaWiki:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",},}..odstepy_po);
else
local mediawiki_niekanoniczna=mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_mediawiki_niekanoniczna..":)");
if(mediawiki_niekanoniczna)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_mediawiki_niekanoniczna..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["strona"]="MediaWiki:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",},}..odstepy_po);
else
local mediawiki_po_polsku=not czy_biezaca and mw.ustring.match(rozwazana_nazwa_strony,"^:?("..wzor_mediawiki_po_polsku..":)") or nil;
if(mediawiki_po_polsku)then
local adres_strony,_=mw.ustring.gsub(rozwazana_nazwa_strony,"^:?"..wzor_mediawiki_po_polsku..":","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa=mw.ustring.match(nazwa,"^:?[^:]*:(.*)$");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["strona"]="MediaWiki:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",},}..odstepy_po);
else
local adres_strony=mw.ustring.gsub(rozwazana_nazwa_strony,"^:","");
local nazwa_strony=mw.getContentLanguage():ucfirst(adres_strony);
nazwa,_=mw.ustring.gsub(nazwa,"^:","");
return Parametry(args,modyfikator..require("Module:Linki")["Link wewnętrzny"]{args={["klucz projektu"]=klucz_projektu,["strona"]="MediaWiki:"..nazwa_strony,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania or "tak",},}..odstepy_po);
end;
end;
end;
end;
local function ModyfikatorArgumentuPierwszego(argument)
local modyfikator;local rozwazana_nazwa_strony;local odstepy_po;
modyfikator,rozwazana_nazwa_strony,odstepy_po=mw.ustring.match(argument,"^(%s*)([^:]-)(%s*)$");
if(modyfikator and rozwazana_nazwa_strony and odstepy_po)then
return modyfikator,rozwazana_nazwa_strony,odstepy_po,1;
end;
local function ModyfikatoryUzupelniajace(argument)
modyfikator,rozwazana_nazwa_strony=mw.ustring.match(argument,"^(%s*safesubst%s*:%s*)(.-)$");
if(modyfikator and rozwazana_nazwa_strony)then return modyfikator,rozwazana_nazwa_strony,odstepy_po;end;
modyfikator,rozwazana_nazwa_strony=mw.ustring.match(argument,"^(%s*subst%s*:%s*)(.-)$");
if(modyfikator and rozwazana_nazwa_strony)then return modyfikator,rozwazana_nazwa_strony,odstepy_po;end;
modyfikator,rozwazana_nazwa_strony=mw.ustring.match(argument,"^(%s*raw%s*:%s*)(.-)$");
if(modyfikator and rozwazana_nazwa_strony)then return modyfikator,rozwazana_nazwa_strony,odstepy_po;end;
modyfikator,rozwazana_nazwa_strony=mw.ustring.match(argument,"^(%s*)(.-)$");
return modyfikator,rozwazana_nazwa_strony;
end;
local function ModyfikatoryStron(argument)
local modyfikator;local rozwazana_nazwa_strony;local odstepy_po;
modyfikator,rozwazana_nazwa_strony,odstepy_po=mw.ustring.match(argument,"^(%s*raw%s*:%s*)(.-)(%s*)$");
if(modyfikator and rozwazana_nazwa_strony and odstepy_po)then return modyfikator,rozwazana_nazwa_strony,odstepy_po,1;end;
modyfikator,rozwazana_nazwa_strony,odstepy_po=mw.ustring.match(argument,"^(%s*msgnw%s*:%s*)(.-)(%s*)$");
if(modyfikator and rozwazana_nazwa_strony and odstepy_po)then return modyfikator,rozwazana_nazwa_strony,odstepy_po,1;end;
modyfikator,rozwazana_nazwa_strony,odstepy_po=mw.ustring.match(argument,"^(%s*msg%s*:%s*)(.-)(%s*)$");
if(modyfikator and rozwazana_nazwa_strony and odstepy_po)then return modyfikator,rozwazana_nazwa_strony,odstepy_po,1;end;
modyfikator,rozwazana_nazwa_strony,odstepy_po=mw.ustring.match(argument,"^(%s*#%s*invoke%s*:%s*)(.-)(%s*)$");
if(modyfikator and rozwazana_nazwa_strony and odstepy_po)then return modyfikator,rozwazana_nazwa_strony,odstepy_po,2;end;
modyfikator,rozwazana_nazwa_strony,odstepy_po=mw.ustring.match(argument,"^(%s*int%s*:%s*)(.-)(%s*)$");
if(modyfikator and rozwazana_nazwa_strony and odstepy_po)then return modyfikator,rozwazana_nazwa_strony,odstepy_po,3;end;
modyfikator,rozwazana_nazwa_strony,odstepy_po=mw.ustring.match(argument,"^(%s*)(.-)(%s*)$");
return modyfikator,rozwazana_nazwa_strony,odstepy_po,1;
end;
local modyfikator_1,rozwazana_nazwa_strony_1=ModyfikatoryUzupelniajace(argument);
local modyfikator_2,rozwazana_nazwa_strony_2,odstepy_po,rodzaj=ModyfikatoryStron(rozwazana_nazwa_strony_1);
return modyfikator_1..modyfikator_2,rozwazana_nazwa_strony_2,odstepy_po,rodzaj;
end;
local p={
["S"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local argument_pierwszy=((args[1])and (args[1]~=""))and args[1] or "Nieznany szablon";
local klucz_projektu=args["klucz projektu"] or args["k"];
local modyfikator,rozwazana_nazwa_strony,odstepy_po,rodzaj=ModyfikatorArgumentuPierwszego(argument_pierwszy);
if(not parametry_modul["CzyTakCiąg"](rozwazana_nazwa_strony))then rozwazana_nazwa_strony="Nieznany szablon";end;
if(rodzaj==2)then
return Modul(args,klucz_projektu, modyfikator, rozwazana_nazwa_strony, odstepy_po);
elseif(rodzaj==1)then
return Szablon(args,klucz_projektu,modyfikator, rozwazana_nazwa_strony,odstepy_po);
elseif(rodzaj==3) then
return int(args,klucz_projektu,modyfikator,rozwazana_nazwa_strony,odstepy_po);
else
return Szablon(args,klucz_projektu,modyfikator,rozwazana_nazwa_strony,odstepy_po);
end;
end,
["M"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local rozwazana_nazwa_strony=parametry_modul["CzyTakCiąg"](args[1]) and args[1] or "Nieznany moduł";
local klucz_projektu=args["klucz projektu"] or args["k"];
local odstepy_przed,odstepy_po=mw.ustring.match(rozwazana_nazwa_strony,"^(%s*).-(%s*)$");
local odstepy_przed,rozwazana_nazwa_strony,odstepy_po=mw.ustring.match(rozwazana_nazwa_strony,"^(%s*)(.-)(%s*)$");
return Modul(args,klucz_projektu,odstepy_przed.."#invoke:",rozwazana_nazwa_strony, odstepy_po);
end,
}
return p;