Uwaga |
---|
Moduł:Linki
Przejdź do nawigacji
Przejdź do wyszukiwania
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Linki/opis
local p={};
function p.NazwaPustaStrony(przestrzen,nazwa,kod_jezyka,kod_projektu,hash)
local czy_puste_prze=mw.ustring.match(przestrzen,"^([%s_]*)$");
local czy_puste_nazw=mw.ustring.match(nazwa,"^([%s_]*)#.*$") or mw.ustring.match(nazwa,"^([%s_]*)$");
if(not czy_puste_prze and czy_puste_nazw)then
local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp;
local parametry_modul=require("Module:Parametry");
local prze=parametry_modul["Odstępy"](przestrzen);
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(not czy_biezaca)then
local nazwy_modul=require("Module:Nazwy");
local wiki_modul=require("Module:Wiki");
for prze_kan,nazwa2 in pairs(tabglownestronyprojektu)do
local strona2=wiki_modul.WikidaneOdpowiednikStrony{
["nazwa strony"]=nazwa2,
["kod języka"]=kod_jezyka,
["kod projektu"]=kod_projektu,
["kod języka bazy"]="pl",
["kod projektu bazy"]=(prze_kan~="Project")and "w" or "b",
}
if(strona2)then
local prze_kan2=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona2,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
if(prze_kan2==przestrzen)then
return strona2,false;
end;
end;
end;
else
local nazwy_modul=require("Module:Nazwy");
if(hash)then
local nazwy_modul=require("Module:Nazwy");
local prze_bierzacej_strony=nazwy_modul["NAZWAPRZESTRZENI"]();
if(przestrzen==prze_bierzacej_strony)then
return nazwy_modul["PEŁNANAZWASTRONY"](),true;
end;
end;
local nazwy_modul=require("Module:Nazwy");
local prze=nazwy_modul.Np{["nazwa"]=przestrzen,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"}
for prze_kan,nazwa in pairs(tabglownestronyprojektu)do
if(prze_kan==prze)then
return nazwa,false;
end;
end;
end;
elseif czy_puste_prze and czy_puste_nazw then
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
if((czy_biezaca)and(hash))then
local nazwy_modul=require("Module:Nazwy");
return nazwy_modul["PEŁNANAZWASTRONY"](),true;
end;
local wiki_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
local tablokalnesiostrzane=wiki_interprojekty_modul.tablokalnesiostrzane;
if(tablokalnesiostrzane[kod_projektu])then
local wiki_modul=require("Module:Wiki");
local pudelko_modul=require("Module:Pudełko");
local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
if(not czy_biezaca)then
local strona2=wiki_modul.WikidaneOdpowiednikStrony{
["nazwa strony"]=strona_glowna_tego_projektu,
["kod języka"]=kod_jezyka,
["kod projektu"]=kod_projektu,
}
if(strona2)then
return strona2,false;
end;
else
return strona_glowna_tego_projektu,false;
end;
end;
end;
return ((przestrzen~="")and (przestrzen..":") or "")..nazwa,false;
end;
p["PoprawLinki"]=function(frame)
local parametry_modul=require("Module:Parametry");
local argument_pierwszy=parametry_modul.PobierzParametr(frame);
local linki_modul=require("Module:Linki");
local function pojedynczy_link(link)
local strona=mw.ustring.match(link,"^%[%[([^%[%]|]*)");
local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$");
link=linki_modul["TwórzLink"](nil,nil,nil,strona,nil,nazwa,nil,false,nil);
return link;
end;
return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end);
end;
p["WydzielLiczbę"] = function(frame)
local parametry_modul=require("Module:Parametry");
local argument_pierwszy=parametry_modul.PobierzParametr(frame);
argument_pierwszy=mw.ustring.gsub(argument_pierwszy,"(%d)%s+(%d)","%1%2");
local liczba_w_linku=mw.ustring.match(argument_pierwszy,"^%s*'*%s*%[%[[^%[%]|]+|%s*'*%s*(%d+)%s*'*%s*%]%]%s*'*%s*$");
if(liczba_w_linku)then return liczba_w_linku;end;
local liczba_w_czudzyslowie=mw.ustring.match(argument_pierwszy,"^%s*'*%s*(%d+)%s*'*%s*$");
if(liczba_w_czudzyslowie)then return liczba_w_czudzyslowie;end;
return argument_pierwszy;
end;
p["UsuńKategorie"]=function(frame)
local parametry_modul=require("Module:Parametry");
local argument_pierwszy=parametry_modul.PobierzParametr(frame);
local category=require("Module:Nazwy").Np{nazwa="Category"};
local wzorcategory=require("Module:Techniczne")["WzórDanejPrzestrzeniNazw"](category);
argument_pierwszy,_=mw.ustring.gsub(argument_pierwszy,"%[%[%s*"..wzorcategory.."%s*:[^%[%]]+%]%]","");
argument_pierwszy,_=mw.ustring.gsub(argument_pierwszy,"%[%[%s*[CC][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%[%]]+%]%]","");
return argument_pierwszy;
end;
p["UsuńZnaczniki"]=function(frame)
local parametry_modul=require("Module:Parametry");
local argument_ze_znacznikiem=parametry_modul.PobierzParametr(frame);
local znak_127=mw.ustring.char(127);
argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,znak_127.."'\"`UNIQ%-%-templatestyles%-%w+%-QINU`\"'"..znak_127,"");
--argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"<%a+%s*[^<>]*>([^%[%]<>]*)</%a+>","%1");
argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"(</?%s*[^<>]+>)","");
argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"^%s*<!%-%-.-%-%->%s*$","");
return argument_ze_znacznikiem;
end;
p["UsuńSzablonStylów"]=function(frame)
local parametry_modul=require("Module:Parametry");
local argument_ze_znacznikiem=parametry_modul.PobierzParametr(frame);
local znak_127=mw.ustring.char(127);
argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,znak_127.."'\"`UNIQ%-%-templatestyles%-%w+%-QINU`\"'"..znak_127,"");
return argument_ze_znacznikiem;
end;
p["UsuńWywołaniaPlików"]=function(frame)
local parametry_modul=require("Module:Parametry");
local argument_pierwszy=parametry_modul.PobierzParametr(frame);
local wartosc=mw.ustring.gsub(argument_pierwszy,"%[%[%s*[Pp][Ll][Ii][Kk]%s*:[^%[%]]*%]%]","");
wartosc=mw.ustring.gsub(wartosc,"%[%[%s*[Ff][Ii][Ll][Ee]%s*:[^%[%]]*%]%]","");
wartosc=mw.ustring.gsub(wartosc,"%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:[^%[%]]*%]%]","");
return wartosc;
end;
p["UsuńInterwiki"]=function(frame)
local parametry_modul=require("Module:Parametry");
local argument_pierwszy=parametry_modul.PobierzParametr(frame);
local interwikimap=mw.loadData("Module:Wiki/interwiki").interwikimap;
local function interwiki(interwiki)
local wartosc=mw.ustring.match(interwiki,"%[%[[%s_]*([^:]*[^:%s_])[%s_]*:[^%[%]]*%]%]");
if(wartosc)then
local czy_kod_jezyka_istnieje=mw.language.isKnownLanguageTag(wartosc);
if(czy_kod_jezyka_istnieje)then
return "";
end;
end;
return interwiki;
end;
return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return interwiki(s);end);
end;
p["WydobądźLinki"]=function(frame)
local parametry_modul=require("Module:Parametry");
local wartosc=parametry_modul.PobierzParametr(frame);
local linki_modul=require("Module:Linki");
wartosc=linki_modul["UsuńZnaczniki"](wartosc);
wartosc=linki_modul["UsuńKategorie"](wartosc);
wartosc=linki_modul["UsuńWywołaniaPlików"](wartosc);
wartosc=linki_modul["UsuńInterwiki"](wartosc);
wartosc=linki_modul["PoprawLinki"](wartosc);
return wartosc;
end;
p["TwórzLink"]=function(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,czy_wewnetrzny_z_fullurl,parametry,czy_url,czy_ogolne,wyswietl,dyskusja)
if(not czy_url)then
local parametry_modul=require("Module:Parametry");
local czy_klucz_projektu_parent=parametry_modul.CzyTak(klucz_projektu_parent);
local czy_kod_jezyka_parent=parametry_modul.CzyTak(kod_jezyka_parent);
local czy_kod_projektu_parent=parametry_modul.CzyTak(kod_projektu_parent);
local czy_strona_parent=parametry_modul.CzyTak(strona_parent);
local czy_naglowek=parametry_modul.CzyTak(naglowek);
local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa);
local czy_po=parametry_modul.CzyTak(po);
if(not czy_naglowek)then
if(czy_strona_parent)then
local strona_parent2,naglowek2=mw.ustring.match(strona_parent,"^([^#]*)#(.*)");
if(strona_parent2 and naglowek2)then
strona_parent=strona_parent2;
naglowek2=mw.ustring.gsub(naglowek2,"^[%s_]*","");
naglowek2=mw.ustring.gsub(naglowek2,"[%s_]*$","");
naglowek2=mw.ustring.gsub(naglowek2,"[%s_]+","_");
if(parametry_modul.CzyTak(naglowek2))then
naglowek=naglowek2;
czy_naglowek=true;
end;
end;
end;
else
naglowek=mw.ustring.gsub(naglowek,"^[%s_]*","");
naglowek=mw.ustring.gsub(naglowek,"[%s_]*$","");
naglowek=mw.ustring.gsub(naglowek,"[%s_]+","_");
if(not parametry_modul.CzyTak(naglowek))then
czy_naglowek=false;
naglowek=nil;
end;
end;
---
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local interwikisiostrzaneangielskie=wiki_interwiki_modul.interwikisiostrzaneangielskie;
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent);
if(not kod_jezyka or not kod_projektu)then
local pudelko_modul=require("Module:Pudełko");
kod_jezyka=pudelko_modul["Kod języka tego projektu"]();
kod_projektu=pudelko_modul["Kod projektu tego projektu"]();
end;
local interwikimap=wiki_interwiki_modul.interwikimap;
local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](strona_parent) and not mw.ustring.match(strona_parent,"^[%s_:]+$") or nil;
if(czy_pelna_nazwa_strony_prawidlowa)then
while(true)do
local kod, dalsza_strona_parent2=mw.ustring.match(strona_parent,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_:]*(.*)");
if(kod and dalsza_strona_parent2)then
kod=mw.ustring.gsub(kod,"[%s_]+"," ")
kod=mw.getContentLanguage():lc(kod);
local czy_jazyk=mw.language.isKnownLanguageTag(kod);
if(czy_jazyk)then
kod_jezyka=kod;
strona_parent=dalsza_strona_parent2;
else
local czy_interwiki=interwikimap[kod];
if(czy_interwiki)then
local kod_interwiki=interwikisiostrzaneangielskie[kod];
if(not kod_interwiki)then
kod_projektu=kod;
strona_parent=dalsza_strona_parent2;
else
if(kod_projektu~=kod_interwiki)then
kod_projektu=kod_interwiki;
kod_jezyka="en";
strona_parent=dalsza_strona_parent2;
else
kod_jezyka=(kod_interwiki~=kod_projektu)and "en" or kod_jezyka;
break;
end;
end;
else
break;
end;
end;
else
break;
end;
end;
czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](strona_parent) and not mw.ustring.match(strona_parent,"^[%s_:]+$") or nil;
end;
---
local nazwy_modul=require("Module:Nazwy");
local czy_dyskusja=parametry_modul.CzyTak(dyskusja);
local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona_parent,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}
or nazwy_modul["PRZESTRZEŃDYSKUSJI"]{[1]=strona_parent,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}) or "";
local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]{[1]=strona_parent,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or "";
local linki_modul=require("Module:Linki");
local strona_parent2a,czy_strona_lokalna=linki_modul.NazwaPustaStrony(nazwaprzestrzeni,nazwastrony,kod_jezyka,kod_projektu,czy_naglowek);
local function NazwaStrony(strona)
if(czy_dyskusja and mw.ustring.match(nazwastrony,"^[%s_]*$"))then
return nazwy_modul["NAZWASTRONYDYSKUSJI"]{[1]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
return strona;
end;
local strona_parent2=NazwaStrony(strona_parent2a);
strona_parent=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona_parent2a,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}~=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona_parent2,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,})))and strona_parent2 or "");
czy_strona_parent=parametry_modul.CzyTak(strona_parent);
local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_parent,["kod języka"]=kod_jezyka_parent,["kod projektu"]=kod_projektu_parent,};
local czy_dwukropek;
if(czy_biezace_wiki)then
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if((nazwaprzestrzeni==nazwy_np_modul.Category)or(nazwaprzestrzeni==nazwy_np_modul.File))then
czy_dwukropek=true;
end;
end;
local pudelko_modul=require("Module:Pudełko");
local wiki_interprojekty_modul=mw.loadData("Moduł:Wiki/interprojekty");
local jez_projekt=wiki_interprojekty_modul.tablokalnejezykowesiostrzane;
local projekty_nie_en=jez_projekt[kod_projektu];
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
local czy_kod_jezyka=(kod_jezyka~=kod_jezyka_tego_projektu);
local czy_kod_projektu=(kod_projektu~=kod_projektu_tego_projektu);
local function WartoscStart()
local wartosc_start=(not projekty_nie_en and (czy_kod_projektu and kod_projektu..":" or "") or(czy_kod_jezyka and kod_jezyka..":"..(czy_kod_projektu and kod_projektu..":" or "")
or (czy_kod_projektu and kod_projektu..":" or "")))
..(czy_strona_parent and strona_parent or "")
..(czy_naglowek and "#"..naglowek or "");
return wartosc_start;
end;
nazwa=nazwa and mw.ustring.gsub(nazwa,"^[%s_]*","") or nil;
nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]*$","") or nil;
nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]+"," ") or nil;
if(czy_ogolne and not czy_nazwa)then
if(parametry_modul.CzyTak(wyswietl))then
nazwa=strona_parent2;
czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa);
else
if((czy_pelna_nazwa_strony_prawidlowa)and(nazwastrony~=""))then
nazwa=nazwastrony;
else
nazwa=nazwy_modul["NAZWASTRONY"]{[1]=strona_parent2,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
end;
czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa);
end
end;
local wartosc_start;
if(not czy_wewnetrzny_z_fullurl)then
wartosc_start=WartoscStart();
if(nazwa and (nazwa~=wartosc_start))then
wartosc_start="[["..((not czy_kod_jezyka and not czy_kod_projektu and not czy_dwukropek)and (mw.ustring.match(wartosc_start,"^[%s_]*/") and ":" or "") or "")..((czy_kod_jezyka or czy_dwukropek) and ":" or "")..wartosc_start..(czy_nazwa and "|"..nazwa or "").."]]"..(czy_po and po or "");
else
wartosc_start="[["..((czy_kod_jezyka or czy_dwukropek) and ":" or "")..wartosc_start.."]]"..(czy_po and po or "");
end
else
local serwer;
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local wiki_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
local projekt;
if(projekty_nie_en)then
for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.interwikisiostrzaneangielskie)do
if(kod_projektu==kod_projektu_interwiki)then
projekt=kod_specjalny_projektu;
end;
end;
end;
local function Protocol(kod_projektu)
local interwikimap=wiki_interwiki_modul.interwikimap;
local url=interwikimap[kod_projektu];
if(not url)then return "";end;
return mw.ustring.match(url,"^([^/]*)//");
end;
local czy_parametry=parametry_modul.CzyTak(parametry);
local nazwy_np_modul=require("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
local nazwaprzestrzeni2=not czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWAPRZESTRZENI"](strona_parent) or nazwaprzestrzeni;
local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special);
strona_parent2,_=mw.ustring.gsub(strona_parent2,"[%s_]+","_");
if((projekt)and(czy_parametry)and(czy_specjalna))then
strona_parent=mw.ustring.gsub(strona_parent,"[%s_]+","_");
wartosc_start="["..Protocol(kod_projektu).."//"..kod_jezyka.."."..projekt..".org/w/index.php?title="..strona_parent2..(czy_parametry and "&"..mw.text.encode(parametry) or "")..(czy_naglowek and ("#"..naglowek) or "")..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
elseif((not projekty_nie_en)and(czy_parametry)and(czy_specjalna))then
local techniczne_modul=require("Module:Techniczne");
local wiki_nie_jezykowe=wiki_interprojekty_modul.pozajezykoweprojektysiostrzane[kod_projektu];
local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)")
wartosc_start="["..serwer.."/w/index.php?title="..strona_parent2..(czy_parametry and "&"..mw.text.encode(parametry) or "")..(czy_naglowek and ("#"..naglowek) or "")..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
elseif(projekt)then
wartosc_start="["..Protocol(kod_projektu).."//"..kod_jezyka.."."..projekt..".org/wiki/"..mw.ustring.gsub(strona_parent2,"[_%s]+","_")..(czy_parametry and "?"..mw.text.encode(parametry) or "")..(czy_naglowek and ("#"..naglowek) or "")..(parametry_modul.CzyTak(nazwa)and " "..nazwa or "").."]"..(czy_po and po or "");
elseif(not projekty_nie_en)then
local wiki_nie_jezykowe=wiki_interprojekty_modul.pozajezykoweprojektysiostrzane[kod_projektu];
local strona_parent2,_=mw.ustring.gsub(strona_parent2,"[_%s]+","_");
strona_parent2=mw.ustring.gsub(strona_parent2,"[%%]","%%%%");
wartosc_start="["..mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_parent2)..(czy_parametry and "?"..mw.text.encode(parametry) or "")..(czy_naglowek and ("#"..naglowek) or "")..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
else
wartosc_start=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":")
or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or "")))
..strona_parent2..(czy_parametry and ("?"..parametry) or "")..(czy_naglowek and ("#"..naglowek) or "");
wartosc_start="["..tostring(mw.uri.fullUrl(wartosc_start,""))..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
end;
end;
return wartosc_start,kod_jezyka,kod_projektu,strona_parent2,czy_naglowek;
else
local parametry_modul=require("Module:Parametry");
local czy_nazwa=parametry_modul.CzyTak(nazwa);
local czy_po=parametry_modul.CzyTak(po);
strona_parent,_=mw.ustring.gsub(strona_parent,"[%s_]+","_");
wartosc_start="["..strona_parent..(parametry_modul.CzyTak(parametry) and "?"..parametry or "")
..(parametry_modul.CzyTak(naglowek) and "#"..naglowek or "")
..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
return wartosc_start,nil,nil,strona_parent,naglowek;
end;
end;
function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,po)
local parametry_modul=require("Module:Parametry");
local wartosc="[[:"..(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":")
or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or "")))
..strona..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or "")..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa) or "").."]]"
return wartosc;
end;
function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,czy_url)
local wiki_modul=require("Module:Wiki")
local class=wiki_modul.CzyIstniejeStronaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=naglowek,["url"]=czy_url,};
local nazwy_modul=require("Module:Nazwy");
local przetworzony_link="<span class=\""..class.." link\">"..link.."</span>";
return przetworzony_link;
end;
function p.Link(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,bez_znacznikow,czy_wewnetrzny_z_fullurl,parametry,czy_url,czy_ogolne,wyswietl,dyskusja)
local parametry_modul=require("Module:Parametry");
local czy_wewnetrzny_z_fullurl=parametry_modul.CzyTak(czy_wewnetrzny_z_fullurl);
local parametry=czy_wewnetrzny_z_fullurl and parametry or nil;
local linki_modul=require("Module:Linki");
local html_modul=require("Module:Html");
strona_parent=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](strona_parent);
local wartosc_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek=linki_modul["TwórzLink"](klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,czy_wewnetrzny_z_fullurl,parametry,czy_url,czy_ogolne,wyswietl,dyskusja);
if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end;
return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,czy_url);
end;
p["Link wewnętrzny"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=frame and ((frame.getParent and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
local linki_modul=require("Module:Linki");
local klucz_projektu_parent=args["klucz projektu"];
local kod_jezyka_parent=args["kod języka"];
local kod_projektu_parent=args["kod projektu"];
local strona_parent=args["strona"] or "_";
local nazwa=args["nazwa"];
local po=args["po"];
local naglowek=args["nagłówek"];
local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
if(not bez_przetwarzania)then
return linki_modul.Link(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,bez_znacznikow);
else
local link=linki_modul.TworzLinkBezPrzetwarzania(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po)
if(not bez_znacznikow)then
return p.LinkWikidane(link,klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nil);
else
return link;
end;
end;
end;
p["LinkPełnyURL"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=frame and ((frame.getParent and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
local klucz_projektu_parent;
local kod_jezyka_parent;
local kod_projektu_parent;
local przestrzen;
local strona_parent=args["strona"] or "_";
local parametry;
local sprawdz_modul=require("Module:Sprawdź");
local _;
local czy_url=sprawdz_modul["SprawdźURL"](strona_parent);
local parametry;local naglowek;local nazwa;local po;local bez_znacznikow;
if(not czy_url)then
local przestrzen=args["miano przestrzeni nazw"] or args["przestrzeń"];
strona_parent=parametry_modul["CzyTakCiąg"](przestrzen) and przestrzen..":"..strona_parent or strona_parent;
parametry=args["parametry"];
naglowek=args["nagłówek"];
nazwa=args["nazwa"];
parametry=args["parametry"];
klucz_projektu_parent=args["klucz projektu"];
kod_jezyka_parent=args["kod języka"];
kod_projektu_parent=args["kod projektu"];
po=args["po"];
bez_znacznikow=args["bez znaczników"];
local bez_przetwarzania=args["bez przetwarzania"];
if(parametry_modul.CzyTak(bez_przetwarzania))then
local bez_znacznikow=parametry_modul.CzyTak(args["bez znacznikow"]);
local wartosc=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":")
or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or "")))
..strona_parent..((parametry_modul.CzyTak(parametry))and ("?"..parametry) or "")..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or "")
;
local link= "["..tostring(mw.uri.fullUrl(wartosc,""))..(parametry_modul.CzyTak(nazwa) and (" "..nazwa) or "").."]";
if not bez_znacznikow then
return p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona_parent,naglowek,czy_url);
else
return link;
end;
end;
else
nazwa=args["nazwa"];
local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
if(bez_przetwarzania)then
local nazwa=args["nazwa"];
local link="["..strona_parent..(parametry_modul.CzyTak(nazwa) and (" "..nazwa) or "").."]";
local bez_znacznikow=parametry_modul.CzyTak(args["bez znacznikow"]);
if not bez_znacznikow then
return p.LinkWikidane(link,nil,nil,nil,strona_parent,nil,czy_url);
else
return link;
end;
end;
local function SerwerWiki(serwer)
local kod_jezyka2,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org");
local interwikisiostrzaneangielskie=mw.loadData("Module:Wiki/interwiki").interwikisiostrzaneangielskie;
local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu];
local czy_jezyk_projektu=mw.language.isKnownLanguageTag(kod_jezyka2);
if(not czy_jezyk_projektu or not kod_projektu)then return;end;
return kod_jezyka2,kod_projektu;
end;
local techniczne_modul=require("Module:Techniczne");
local strona_parent1=techniczne_modul["UrlBezProtokołu"](strona_parent);
local serwer,strona_parent2,parametry2=mw.ustring.match(strona_parent1,"^//([%w_%.]+)/wiki/([^%?#]*)(.*)$");
if(not serwer and not strona_parent2 and not parametry2)then
local url="//([%w_%.]+)"..techniczne_modul.TransformacjaWzoru("/w/index.php");
local serwer,parametry2=mw.ustring.match(strona_parent1,"^"..url.."([%?#].*)$");
if(serwer and parametry2)then
local naglowek2=mw.ustring.match(parametry2,"^#([^%?]*%?)$")
or mw.ustring.match(parametry2,"^#([^%?]*)")
or mw.ustring.match(parametry2,"#([^%?&]*%?)$")
or mw.ustring.match(parametry2,"#([^%?&]*)");
parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*%?)$","");
parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*)","");
parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*%?)$","");
parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*)","");
parametry2,_=mw.ustring.gsub(parametry2,"^(%?)","");
local strona_parent2=mw.ustring.match(parametry2,"%s*&?%s*title%s*=%s*([^&]*)%s*");
if(strona_parent2)then
local kod_jezyka2,kod_projektu2=SerwerWiki(serwer);
if(kod_jezyka2 and kod_projektu2)then
local parametry2a;
parametry2,_=mw.ustring.gsub(parametry2,"%s*&?%s*title%s*=%s*"..techniczne_modul.TransformacjaWzoru(strona_parent2).."&?","");
strona_parent=strona_parent2;
naglowek=naglowek2;
parametry=(parametry_modul.CzyTak(parametry2))and parametry2 or args["parametry"];
kod_jezyka_parent=kod_jezyka2;
kod_projektu_parent=kod_projektu2;
czy_url=false;
else
local wiki_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
local pozajezykoweprojektysiostrzane=wiki_interprojekty_modul.pozajezykoweprojektysiostrzane;
for kod, url in pairs(pozajezykoweprojektysiostrzane)do
local adres=techniczne_modul["UrlBezProtokołu"](url);
local serwer_portalu=mw.ustring.match(adres,"^//([^/]*)");
if(adres and serwer_portalu)then
if(serwer_portalu==serwer)then
kod_jezyka_parent="en";
kod_projektu_parent=kod;
local parametry2a;
parametry2,_=mw.ustring.gsub(parametry2,"%s*&?%s*title%s*=%s*"..techniczne_modul.TransformacjaWzoru(strona_parent2).."&?","");
strona_parent=strona_parent2;
naglowek=naglowek2;
parametry=(parametry_modul.CzyTak(parametry2))and parametry2 or args["parametry"];
czy_url=false;
break;
end;
end;
end;
end;
end;
else
local serwer,parametry2=mw.ustring.match(strona_parent,"^(.+)([%?#].*)$");
if(serwer and parametry2)then
naglowek2=mw.ustring.match(parametry2,"^#([^%?]*%?)$")
or mw.ustring.match(parametry2,"^#([^%?]*)")
or mw.ustring.match(parametry2,"#([^%?&]*%?)$")
or mw.ustring.match(parametry2,"#([^%?&]*)");
local parametry2,_=mw.ustring.gsub(parametry2,"#([^%?]*%?)$","");
parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*)","");
parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*%?)$","");
parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*)","");
parametry2,_=mw.ustring.gsub(parametry2,"^(%?)","");
naglowek=parametry_modul.CzyTak(naglowek2) and naglowek2 or args["naglowek"];
parametry=parametry_modul.CzyTak(parametry2) and parametry2 or args["parametry"];
else
serwer=strona_parent;
naglowek=args["nagłówek"];
parametry=args["parametry"];
end;
strona_parent=serwer or strona_parent;
end;
else
local kod_jezyka2,kod_projektu2=SerwerWiki(serwer);
if(kod_jezyka2 and kod_projektu2)then
local naglowek2=mw.ustring.match(parametry2,"^#([^%?]*%?)$")
or mw.ustring.match(parametry2,"^#([^%?]*)")
or mw.ustring.match(parametry2,"#([^%?&]*%?)$")
or mw.ustring.match(parametry2,"#([^%?&]*)");
parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*%?)$","");
parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*)","");
parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*%?)$","");
parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*)","");
parametry2,_=mw.ustring.gsub(parametry2,"^(%?)","");
parametry2=mw.ustring.gsub(parametry2,"^%?","");
parametry=(parametry_modul.CzyTak(parametry2))and parametry2 or args["parametry"];
naglowek=(parametry_modul.CzyTak(naglowek2))and naglowek2 or args["nagłówek"];
strona_parent=strona_parent2;
kod_jezyka_parent=kod_jezyka2;
kod_projektu_parent=kod_projektu2;
czy_url=false;
else
local wiki_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
local pozajezykoweprojektysiostrzane=wiki_interprojekty_modul.pozajezykoweprojektysiostrzane;
for kod, url in pairs(pozajezykoweprojektysiostrzane)do
local adres=techniczne_modul["UrlBezProtokołu"](url);
local serwer_portalu=mw.ustring.match(adres,"^//([^/]*)");
if(adres and serwer_portalu)then
if(serwer_portalu==serwer)then
kod_jezyka_parent="en";
kod_projektu_parent=kod;
local url_wzor=mw.ustring.gsub(adres,"$1","(.*)")
strona_parent=mw.ustring.match(strona_parent1,"^"..url_wzor.."$");
local strona_parent2;
strona_parent2,parametry2=mw.ustring.match(strona_parent,"^([^%?#]*)(.*)$");
local naglowek2=mw.ustring.match(parametry2,"^#([^%?]*%?)$")
or mw.ustring.match(parametry2,"^#([^%?]*)")
or mw.ustring.match(parametry2,"#([^%?&]*%?)$")
or mw.ustring.match(parametry2,"#([^%?&]*)");
parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*%?)$","");
parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*)","");
parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*%?)$","");
parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*)","");
parametry2,_=mw.ustring.gsub(parametry2,"^(%?)","");
parametry2=mw.ustring.gsub(parametry2,"^%?","");
parametry=(parametry_modul.CzyTak(parametry2))and parametry2 or args["parametry"];
naglowek=(parametry_modul.CzyTak(naglowek2))and naglowek2 or args["nagłówek"];
strona_parent=strona_parent2 or strona_parent;
czy_url=false;
break;
end;
end;
end;
end;
end;
end;
local linki_modul=require("Module:Linki");
return linki_modul.Link(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,bez_znacznikow,true,parametry,czy_url);
end;
p["LinkOgólne"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=frame and ((frame.getParent and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["m"];
local dyskusja=args["dyskusja"] or args["d"];
local klucz_projektu=args["klucz projektu"] or args["k"];
local kod_jezyka=args["kod języka"] or args["kj"];
local kod_projektu=args["kod projektu"] or args["kp"];
local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
local wyswietl_miano_przestrzeni_nazw=args["wyświetl miano przestrzeni nazw"] or args["wyświetl"] or args["w"];
local strona=args[1] or "_";
local czy_niepusta_prze=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw);
local strona2=(czy_niepusta_prze and not mw.ustring.match(strona,"^%s*#")) and miano_przestrzeni_nazw..":"..strona or strona;
local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
local function NpStrona()
if(mw.ustring.match(strona,"^[%s_:]*$"))then return nil;end;
if(not parametry_modul.CzyTak(args["nazwa co nie strona"]))then
if(not bez_przetwarzania and parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw) and czy_niepusta_prze)then
local wiki_modul=require("Module:Wiki");
local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
local nazwy_modul=require("Module:Nazwy");
local prze;
if(czy_biezaca)then
prze=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
prze=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,dyskusja=dyskusja,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
end;
local skrot=args["skrót nazwy przestrzeni nazw"] or args["skrót"] or args["s"];
local czy_skrot;
if prze then
local czy_niepusty_skrot=parametry_modul.CzyTak(skrot);
if czy_niepusty_skrot then
local tabnamespaces=mw.site.namespaces[prze];
local skroty=tabnamespaces.aliases;
for _,name in pairs(skroty)do
if(name==skrot)then
czy_skrot=true;
break;
end;
end;
end;
end;
local czy_niepusta_prze=parametry_modul["CzyTakCiąg"](prze);
return czy_niepusta_prze and (((czy_skrot)and skrot or prze)..":"..strona) or strona;
else
return strona;
end;
else
return nil;
end;
end;
local nazwa=args[2] or NpStrona();
local po=args["po"] or args["p"];
local linki_modul=require("Module:Linki");
if(not bez_przetwarzania)then
return linki_modul.Link(klucz_projektu,kod_jezyka,kod_projektu,strona2,nil,nazwa,po,bez_znacznikow,false,nil,nil,true,wyswietl_miano_przestrzeni_nazw,dyskusja);
else
local link=linki_modul.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona2,nil,nazwa,po);
if(not bez_znacznikow)then
return p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona2,nil,nil);
else
return link;
end;
end;
end;
p["Forma wyrażenia po liczbie"]=function(frame)
local czy=(type(frame)=="table");
local args=czy and (frame.args or frame) or nil;
local argument_funkcji_modulu_1=czy and (args[1] or "0") or (frame or "0");
local argument_funkcji_modulu_2=czy and (args[2] or "zbiorów") or "zbiorów";
local argument_funkcji_modulu_3=czy and (args[3] or "zbiór") or "zbiór";
local argument_funkcji_modulu_4=czy and (args[4] or "zbiory") or "zbiory";
local linki_modul=require("Module:Linki");
local wartosc=linki_modul["UsuńZnaczniki"](argument_funkcji_modulu_1);
wartosc=linki_modul["UsuńKategorie"](wartosc);
wartosc=linki_modul["UsuńWywołaniaPlików"](wartosc);
wartosc=linki_modul["UsuńInterwiki"](wartosc);
local liczba=linki_modul["WydzielLiczbę"](wartosc);
local liczba_number=tonumber(liczba);
if(not liczba_number)then return "(błąd)";end;
if(liczba_number==0)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_2;end;
if(liczba_number==1)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_3;end;
if(liczba_number<5)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_4;end;
if(liczba_number<20)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_2;end;
local reszta=math.fmod(liczba_number,10);
if((reszta==0)or(reszta==1))then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_2;end;
if(reszta<5)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_4;end;
return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_2;
end;
function p.ZamianaKategoriiNaLinki(frame)
local parametry_modul=require("Module:Parametry");
local tekst;
if(type(frame)=="table")then
local args=frame and ((frame.getParent and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or nil;
tekst=args["tekst"] or args[1];
else
tekst=frame;
end;
local techniczne_modul=require("Module:Techniczne");
local nazwy_np_modul=wm.loadData("Module:Nazwy/Np");
local kategoria_polska=nazwy_np_modul.Category;
local wzor_kategorii_polskiej=techniczne_modul["WzórDanejPrzestrzeniNazw"](kategoria_polska)
tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%1]]");
tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%1]]");
tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%1]]");
tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%1]]");
return tekst;
end;
return p;