Moduł:Linki
Zobacz podstrony tego modułu.
|
local p={};
p["PrzetłumaczZnakZastępczyNaStronę"]=function(nazwa_przestrzeni_nazw,nazwa_strony,kod_jezyka,kod_projektu,hash)
local czy_pusta_nazwa_przestrzeni_nazw=mw.ustring.match(nazwa_przestrzeni_nazw,"^([%s_]*)$");
local czy_pusta_nazwa_strony=mw.ustring.match(nazwa_strony,"^([%s_]*)#.*$") or mw.ustring.match(nazwa_strony,"^([%s_]*)$");
if(not czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony)then
local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp;
local parametry_modul=require("Module:Parametry");
nazwa_przestrzeni_nazw=parametry_modul["Odstępy"](nazwa_przestrzeni_nazw);
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");
local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,kanoniczna="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}
local nazwa_bazowa_strony=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw];
if(nazwa_bazowa_strony)then
local nazwa_strony_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{
["nazwa strony"]=nazwa_bazowa_strony,
["kod języka"]=kod_jezyka,
["kod projektu"]=kod_projektu,
["kod języka bazy"]="pl",
["kod projektu bazy"]=(nazwa_kanoniczna_nazwy_przestrzeni_nazw~="Project")and "w" or "b",
}
if(nazwa_strony_na_innym_projekcie)then
return nazwa_strony_na_innym_projekcie,false;
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"]();
local nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,};
if(nazwa_przestrzeni_nazw==prze_bierzacej_strony)then
return nazwy_modul["PEŁNANAZWASTRONY"](),true;
end;
end;
local nazwy_modul=require("Module:Nazwy");
local nazwa_kanoniczna_nazwy_przestrzeni_nazw=nazwy_modul.Np{["nazwa"]=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"}
local nazwa_strony_glownych_stron_projektu=tabglownestronyprojektu[nazwa_kanoniczna_nazwy_przestrzeni_nazw];
if(nazwa_strony_glownych_stron_projektu)then
return nazwa_strony_glownych_stron_projektu,false;
end;
end;
elseif czy_pusta_nazwa_przestrzeni_nazw and czy_pusta_nazwa_strony 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_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local tablokalnesiostrzane=wiki_interwiki_modul.tablica_lokalne_siostrzane;
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 nazwa_strony_glownej_na_innym_projekcie=wiki_modul.WikidaneOdpowiednikStrony{
["nazwa strony"]=strona_glowna_tego_projektu,
["kod języka"]=kod_jezyka,
["kod projektu"]=kod_projektu,
}
if(nazwa_strony_glownej_na_innym_projekcie)then
return nazwa_strony_glownej_na_innym_projekcie,false;
end;
else
return strona_glowna_tego_projektu,false;
end;
end;
end;
return ((nazwa_przestrzeni_nazw~="")and (nazwa_przestrzeni_nazw..":") or "")..nazwa_strony,false;
end;
p["PoprawLinki"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local argument_pierwszy,_=PobierzParametr();
local html_modul=require("Module:Html");
local function pojedynczy_link(link)
local strona=mw.ustring.match(link,"^%[%[:?([^%[%]|]*)");
local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$") or strona;
link=p.TworzenieWikiLinku(nil,nil,nil,strona,nil,nazwa,nil,nil,false,nil);
return link;
end;
return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end);
end;
p["WydobądźLinki"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local wartosc,_=PobierzParametr();
local specjalne_modul=require("Module:Specjalne");
wartosc=specjalne_modul["UsuńKomentarze"](wartosc);
wartosc=specjalne_modul["UsuńSzablonyStylów"](wartosc);
wartosc=specjalne_modul["UsuńZnaczniki"](wartosc);
wartosc=specjalne_modul["UsuńKategorie"](wartosc);
wartosc=specjalne_modul["UsuńWywołaniaPlików"](wartosc);
wartosc=specjalne_modul["UsuńInterwiki"](wartosc);
local linki_modul=require("Module:Linki");
wartosc=linki_modul["PoprawLinki"](wartosc);
return wartosc;
end;
function p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow)
if(not czy_url)then
local parametry_modul=require("Module:Parametry");
local czy_klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(klucz_projektu_do_projektu_linku);
local czy_kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(kod_jezyka_do_projektu_linku);
local czy_kod_projektu_do_projektu_linku=parametry_modul.CzyTak(kod_projektu_do_projektu_linku);
local czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku);
local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony);
local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony);
local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa);
local czy_po=parametry_modul.CzyTak(po);
if(not czy_naglowek_strony)then
if(czy_nazwa_strony_linku)then
local html_modul=require("Module:Html");
local strona_zmienna_tymczasowa=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true)
local naglowek_zmienna_tymczasowa=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true);
if(strona_zmienna_tymczasowa and naglowek_zmienna_tymczasowa)then
nazwa_strony_linku=strona_zmienna_tymczasowa;
naglowek_strony_zmienna_tymczasowa=parametry_modul["Odstępy"]{[1]=naglowek_zmienna_tymczasowa,[2]="tak",[3]="tak",};
if(parametry_modul.CzyTak(naglowek_zmienna_tymczasowa))then
naglowek_strony=naglowek_zmienna_tymczasowa;
czy_naglowek_strony=true;
end;
end;
end;
else
naglowek_strony=parametry_modul["Odstępy"]{[1]=naglowek_strony,[2]="tak",[3]="tak",};
if(not parametry_modul.CzyTak(naglowek_strony))then
czy_naglowek_strony=false;
naglowek_strony=nil;
end;
end;
---
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local interwikimap=wiki_interwiki_modul.interwikimap;
local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie;
local wiki_modul=require("Module:Wiki");
local kod_jezyka_uzyskany_poczatkowy,kod_projektu_uzyskany_poczatkowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku);
local pudelko_modul=require("Module:Pudełko");
local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
if(not kod_jezyka_uzyskany_poczatkowy or not kod_projektu_uzyskany_poczatkowy)then
kod_jezyka_uzyskany_poczatkowy=kod_jezyka_uzyskany_poczatkowy or kod_jezyka_tego_projektu;
kod_projektu_uzyskany_poczatkowy=kod_projektu_uzyskany_poczatkowy or kod_projektu_tego_projektu;
end;
local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil;
local tablica_kodow={};
local kod_jezyka_koncowy;local kod_projektu_koncowy;
---------------------------------------------------------------------
kod_jezyka_koncowy=kod_jezyka_uzyskany_poczatkowy;
kod_projektu_koncowy=kod_projektu_uzyskany_poczatkowy;
---------------------------------------------------------------------
local kod_jezyka_poczatkowy,kod_projektu_poczatkowy;
if(czy_pelna_nazwa_strony_prawidlowa)then
nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,kod_jezyka_poczatkowy,kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,bez_przetwarzania_kodow and tablica_kodow or nil);
czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](nazwa_strony_linku) and not mw.ustring.match(nazwa_strony_linku,"^[%s_:]+$") or nil;
end;
----
if(not nazwa)then
local html_modul=require("Module:Html");
nazwa=nazwa_strony_linku..(czy_naglowek_strony and ("#"..naglowek_strony) or "");
nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+"," ");
czy_nazwa=parametry_modul.CzyTak(nazwa);
end
local ciag_tablica_kodow="";
if(bez_przetwarzania_kodow)then
if(kod_jezyka_poczatkowy)then
if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then
kod_jezyka_uzyskany_poczatkowy=kod_jezyka_poczatkowy;
else
ciag_tablica_kodow=kod_jezyka_poczatkowy;
end;
elseif(kod_projektu_poczatkowy)then
if((kod_jezyka_uzyskany_poczatkowy==kod_jezyka_tego_projektu)and(kod_projektu_uzyskany_poczatkowy==kod_projektu_tego_projektu))then
kod_projektu_uzyskany_poczatkowy=kod_projektu_poczatkowy;
else
ciag_tablica_kodow=kod_projektu_poczatkowy;
end;
end;
local ciag_tablica_kodow_zmienna_tymczasowa=table.concat(tablica_kodow,":");
ciag_tablica_kodow=ciag_tablica_kodow..(((ciag_tablica_kodow~="")and(ciag_tablica_kodow_zmienna_tymczasowa~=""))and ":" or "")..ciag_tablica_kodow_zmienna_tymczasowa;
else
kod_jezyka_uzyskany_poczatkowy=kod_jezyka_koncowy;
kod_projektu_uzyskany_poczatkowy=kod_projektu_koncowy;
end;
local nazwy_modul=require("Module:Nazwy");
local czy_dyskusja=parametry_modul.CzyTak(dyskusja);
local pierwsza_litera=((czy_pelna_nazwa_strony_prawidlowa)and(not dyskusja)) and mw.ustring.match(nazwa_strony_linku,"^(%a)") or nil;
local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy}
or nazwy_modul["PRZESTRZEŃDYSKUSJI"]{[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,}) or "";
local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]{[1]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,} or "";
local linki_modul=require("Module:Linki");
local strona_inna_zmienna_tymczasowa,czy_strona_lokalna=linki_modul["PrzetłumaczZnakZastępczyNaStronę"](nazwaprzestrzeni,nazwastrony,kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony);
strona_inna_zmienna_tymczasowa=strona_inna_zmienna_tymczasowa or nazwa_strony_linku;
local function NazwaStronyDyskusji(strona)
if(czy_dyskusja and czy_pelna_nazwa_strony_prawidlowa)then
return nazwy_modul["NAZWASTRONYDYSKUSJI"]{[1]=strona,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
end;
return strona;
end;
local strona_zmienna_tymczasowa=NazwaStronyDyskusji(strona_inna_zmienna_tymczasowa);
nazwa_strony_linku=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona_inna_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,}~=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona_zmienna_tymczasowa,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,})))and strona_zmienna_tymczasowa or "");
nazwa_strony_linku=pierwsza_litera and mw.ustring.gsub(nazwa_strony_linku,"^["..mw.getContentLanguage():ucfirst(pierwsza_litera)..mw.getContentLanguage():lcfirst(pierwsza_litera).."]",pierwsza_litera) or nazwa_strony_linku;
czy_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku);
local function BiezacaWikiDwukropek()
local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,};
local czy_wstawiac_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_wstawiac_dwukropek=true;
end;
end;
return czy_wstawiac_dwukropek;
end;
local pudelko_modul=require("Module:Pudełko");
local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane;
local projekty_nie_en=jezykowe_projekty[kod_projektu_uzyskany_poczatkowy];
local czy_kod_jezyka_uzyskany_poczatkowy=(kod_jezyka_uzyskany_poczatkowy~=kod_jezyka_tego_projektu);
local czy_kod_projektu_uzyskany_poczatkowy=(kod_projektu_uzyskany_poczatkowy~=kod_projektu_tego_projektu);
local html_modul=require("Module:Html");
local function AdresLinku()
local kody_poczatkowe=(not projekty_nie_en and (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or(czy_kod_jezyka_uzyskany_poczatkowy and kod_jezyka_uzyskany_poczatkowy..":"..(czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "") or (czy_kod_projektu_uzyskany_poczatkowy and kod_projektu_uzyskany_poczatkowy..":" or "")));
local tablica_kodow=kody_poczatkowe..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "");
local czy_wstawiac_dwukropek=((tablica_kodow~="")and (projekty_nie_en and (czy_kod_jezyka_uzyskany_poczatkowy and ":" or "") or "") or (BiezacaWikiDwukropek() and ":" or ""));
naglowek_strony=html_modul.DecodeHtml(naglowek_strony,true);
local zmienna_linkowa=tablica_kodow..(czy_nazwa_strony_linku and html_modul.ZnakiSpecjalneWikiLinku(html_modul.DecodeHtml(nazwa_strony_linku,true) or "") or "")
..(czy_parametry_strony and "?"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeParametryHtml(parametry_strony)) or "")
..(czy_naglowek_strony and "#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony,false,true)) or "");
return zmienna_linkowa, czy_wstawiac_dwukropek;
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_zmienna_tymczasowa;
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_zmienna_tymczasowa,["kod języka"]=kod_jezyka_uzyskany_poczatkowy,["kod projektu"]=kod_projektu_uzyskany_poczatkowy,};
end;
czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa);
end
end;
local zmienna_linkowa;
local aktywny;
if(not czy_wewnetrzny_z_fullurl)then
local czy_wstawiac_dwukropek;
zmienna_linkowa,czy_wstawiac_dwukropek=AdresLinku();
zmienna_linkowa,_=mw.ustring.gsub(zmienna_linkowa,"[%s_]+"," ");
local czy_za=parametry_modul.CzyTak(za);
if(czy_za or(nazwa and (nazwa~=zmienna_linkowa)))then
zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa..(czy_nazwa and "|"..nazwa..(czy_za and za or "") or (czy_za and ("|"..zmienna_linkowa..za) or "")).."]]"..(czy_po and po or "");
else
zmienna_linkowa="[["..czy_wstawiac_dwukropek..zmienna_linkowa.."]]"..(czy_po and po or "");
end
aktywny=false;
else
aktywny=true;
local serwer;
local projekt;
if(projekty_nie_en)then
for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie)do
if(kod_projektu_uzyskany_poczatkowy==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_strony=parametry_modul.CzyTak(parametry_strony);
local nazwy_np_modul=require("Module:Nazwy/Np");
local nazwy_modul=require("Module:Nazwy");
local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special);
ciag_tablica_kodow_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"[%s_]+","_");
if(((projekt)and(czy_parametry_strony)and(czy_specjalna))or((projekt)and(wersja_linku=="w")))then
local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or "");
zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or "");
elseif(((not projekty_nie_en)and(czy_parametry_strony)and(czy_specjalna))or((not projekty_nie_en)and(wersja_linku=="w")))then
local techniczne_modul=require("Module:Techniczne");
local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy];
local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)")
local adres=serwer.."/w/index.php?title="..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and "&"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or "");
zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za)and (" "..adres..za) or "")).."]"..(czy_po and po or "");
elseif(((projekt)and(czy_parametry_strony))or((projekt)and(wersja_linku=="wiki")))then
local strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"[_%s]+","_");
local adres=Protocol(kod_projektu_uzyskany_poczatkowy).."//"..kod_jezyka_uzyskany_poczatkowy.."."..projekt..".org/wiki/"..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..html_modul.EncodeHtml(strona_zmienna_tymczasowa)..(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or "");
zmienna_linkowa="["..adres..(czy_nazwa and " "..nazwa..(parametry_modul.CzyTak(za) and za or "") or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or "");
elseif(((not projekty_nie_en)and(czy_parametry_strony))or((not projekty_nie_en)and(wersja_linku=="wiki")))then
local wiki_nie_jezykowe=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane[kod_projektu_uzyskany_poczatkowy];
local strona_zmienna_tymczasowa,_=mw.ustring.gsub(ciag_tablica_kodow_zmienna_tymczasowa,"[_%s]+","_");
strona_zmienna_tymczasowa=((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa;
strona_zmienna_tymczasowa=html_modul.EncodeHtml(strona_zmienna_tymczasowa);
strona_zmienna_tymczasowa,_=mw.ustring.gsub(strona_zmienna_tymczasowa,"([%%])(%d+)","%%%%%2");
strona_zmienna_tymczasowa,_=mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_zmienna_tymczasowa);
local adres=strona_zmienna_tymczasowa..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or "");
zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or "");
else
local pudelko_modul=require("Module:Pudełko");
zmienna_linkowa=(parametry_modul.CzyTak(klucz_projektu)and ((not(klucz_projektu==pudelko_modul["Klucz projektu tego projektu"]()))and (klucz_projektu..":")or "" )
or ((parametry_modul.CzyTak(kod_jezyka_uzyskany_poczatkowy)and ((not(kod_jezyka_uzyskany_poczatkowy==pudelko_modul["Kod języka tego projektu"]()))and(kod_jezyka_uzyskany_poczatkowy..":")or "") or "")..(parametry_modul.CzyTak(kod_projektu_uzyskany_poczatkowy)and ((not(kod_projektu_uzyskany_poczatkowy==pudelko_modul["Kod projektu tego projektu"]()))and(kod_projektu_uzyskany_poczatkowy..":")or "") or "")))
..((ciag_tablica_kodow~="")and (ciag_tablica_kodow..":") or "")..strona_zmienna_tymczasowa;
local strona=(czy_parametry_strony and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(czy_naglowek_strony and ("#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony))) or "");
local adres=tostring(mw.uri.fullUrl(zmienna_linkowa))..strona;
zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or "");
end;
end;
return zmienna_linkowa,kod_jezyka_koncowy,kod_projektu_koncowy,strona_zmienna_tymczasowa,czy_naglowek_strony,aktywny;
else
local parametry_modul=require("Module:Parametry");
local html_modul=require("Module:Html");
local czy_nazwa;
if(not nazwa)then
nazwa=mw.ustring.match(nazwa_strony_linku,"//[^/]*/(.*)$");
nazwa=html_modul.DecodeHtml(nazwa);
czy_nazwa=parametry_modul.CzyTak(nazwa);
else
czy_nazwa=parametry_modul.CzyTak(nazwa);
end;
local czy_po=parametry_modul.CzyTak(po);
local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony);
local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony);
nazwa_strony_linku,_=mw.ustring.gsub(nazwa_strony_linku,"[%s_]+","_");
nazwa_strony_linku,_=mw.ustring.gsub(nazwa_strony_linku,"//([^/]*)/(.*)$", function(s1,s2)return "//"..s1.."/"..html_modul.EncodeHtml(s2);end)
local adres=nazwa_strony_linku..(czy_parametry_strony and "?"..html_modul.EncodeParametryHtml(parametry_strony) or "")
..(czy_naglowek_strony and "#"..html_modul.ZnakiSpecjalneWikiLinku(html_modul.EncodeHtml(naglowek_strony)) or "");
local zmienna_linkowa="["..adres..(czy_nazwa and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]"..(czy_po and po or "");
return zmienna_linkowa,nil,nil,nazwa_strony_linku,czy_naglowek_strony,aktywny;
end;
end;
function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,za,po)
local parametry_modul=require("Module:Parametry");
local adres=(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 "");
local wartosc="[[:"..adres..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..(po and po or "");
return wartosc;
end;
function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,czy_naglowek,czy_url,czy_parametry,aktywny)
local wiki_modul=require("Module:Wiki");
local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=czy_naglowek,["url"]=czy_url,["parametry"]=czy_parametry,["aktywny"]=aktywny,};
local nazwy_modul=require("Module:Nazwy");
local spanramka=mw.html.create('span');
spanramka:addClass(klasa);
spanramka:addClass("link");
spanramka:wikitext(link);
return tostring(spanramka:allDone());
end;
function p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow,bez_znacznikow)
local parametry_modul=require("Module:Parametry");
parametry_strony=czy_wewnetrzny_z_fullurl and parametry_strony or nil;
local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony);
local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony);
local html_modul=require("Module:Html");
nazwa_strony_linku=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](nazwa_strony_linku);
local wartosc_parent,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,aktywny=p.TworzenieWikiLinku(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja,bez_przetwarzania_kodow);
if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end;
return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony,aktywny);
end;
function p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,naglowek,czy_link_url,dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,__FUNKCJA)
local nowa_nazwa_strony_linku;
local czy_kreska_dolna;local hash;local prze_nie_main;
local czy_strona_lokalna;
if(not czy_analiza)then
czy_kreska_dolna=mw.ustring.match(nazwa_strony_linku,"^[%s_]*$");
hash=(not czy_kreska_dolna)and ((not czy_link_url) and mw.ustring.match(nazwa_strony_linku,"^[_%s]*#(.*)$") or nil) or (((czy_kreska_dolna)and(czy_link_url) and require("Module:Parametry").CzyTak(naglowek)) and naglowek or nil);
if((czy_kreska_dolna)or(hash))then
local wiki_modul=require("Module:Wiki");
local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku);
nowa_nazwa_strony_linku,czy_strona_lokalna=p["PrzetłumaczZnakZastępczyNaStronę"](miano_przestrzeni_nazw or "","",kod_jezyka,kod_projektu,hash);
else
prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil;
nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku;
end;
else
prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil;
nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku;
end;
nowa_nazwa_strony_linku=__FUNKCJA(nowa_nazwa_strony_linku,dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main);
return nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna;
end;
p["GanerujSkładoweURL"] = function(args)
local klucz_projektu_do_projektu_linku;
local kod_jezyka_do_projektu_linku;
local kod_projektu_do_projektu_linku;
local miano_przestrzeni_nazw;
local nazwa_strony_linku=args["strona"] or "_";
local html_modul=require("Module:Html");
nazwa_strony_linku=nazwa_strony_linku and html_modul.DecodeHtml(nazwa_strony_linku) or nil;
local parametry_modul=require("Module:Parametry");
local wersja_linku=parametry_modul.CzyTak(args["wersja linku"]) and ((args["wersja linku"]=="wiki")and "wiki" or "w") or "";
local _;
local czy_url=html_modul["SprawdźURL"](nazwa_strony_linku);
local parametry_strony;local naglowek_strony;local nazwa;local po;local po;local za;
nazwa=args["nazwa"];
local function DaneStrony(nazwa_strony_linku_parametr,adres)
if(parametry_modul.CzyTak(nazwa_strony_linku_parametr))then
if(mw.ustring.match(nazwa_strony_linku_parametr,"^/wiki/"))then
nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/wiki/","");
local html_modul=require("Module:Html");
naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true);
parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true);
nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true);
elseif(mw.ustring.match(nazwa_strony_linku_parametr,"^/w/"))then
nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/w/","");
local html_modul=require("Module:Html");
naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true);
parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true);
nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true);
local nazwa_strony_jednostki,parametry_strony_jednostki=html_modul["NazwaStronyZParametrówStronyAdresu"](parametry_strony,true);
parametry_strony=parametry_strony_jednostki or parametry_strony;
nazwa_strony_linku_parametr=nazwa_strony_jednostki or nazwa_strony_linku_parametr;
else
nazwa_strony_linku_parametr,_=mw.ustring.gsub(nazwa_strony_linku_parametr,"^/(.*)$","%1");
local html_modul=require("Module:Html");
naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku_parametr,true);
parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr,true);
nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr,true);
end;
else
if((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku))or(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)))then
if((not adres)or(mw.ustring.match(adres,"/$1$")))then
local pudelko_modul=require("Module:Pudełko");
nazwa_strony_linku_parametr=pudelko_modul["Nazwa strony głównej projektu 2"]{[1]=kod_jezyka_do_projektu_linku,[2]=kod_projektu_do_projektu_linku,} or "";
end;
end;
end;
parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or args["parametry"];
naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or args["nagłówek"];
nazwa=args["nazwa"];
klucz_projektu_do_projektu_linku=parametry_modul.CzyTak(args["klucz projektu"]) and args["klucz projektu"] or klucz_projektu_do_projektu_linku;
kod_jezyka_do_projektu_linku=parametry_modul.CzyTak(args["kod języka"]) and args["kod języka"] or kod_jezyka_do_projektu_linku;
kod_projektu_do_projektu_linku=parametry_modul.CzyTak(args["kod projektu"]) and args["kod projektu"] or kod_projektu_do_projektu_linku;
po=args["po"];
za=args["za"];
nazwa_strony_linku=nazwa_strony_linku_parametr;
czy_url=false;
end;
if(not czy_url)then
local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"];
nazwa_strony_linku=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw) and miano_przestrzeni_nazw..":"..nazwa_strony_linku or nazwa_strony_linku;
DaneStrony(nazwa_strony_linku);
else
local html_modul=require("Module:Html");
local nazwa_strony_bez_protokolu=html_modul["UrlBezProtokołu"](nazwa_strony_linku);
local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_bez_protokolu);
local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
local function SerwerWiki(serwer)
local kod_jezyka_zmienna_tymczasowa,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org");
local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie;
local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu];
local kod_jezyka=kod_jezyka_zmienna_tymczasowa and (mw.language.isKnownLanguageTag(kod_jezyka_zmienna_tymczasowa) and kod_jezyka_zmienna_tymczasowa or nil) or nil;
return kod_jezyka,kod_projektu;
end;
local function JezykoweLubAngielskieProjekty(serwer_portalu)
local kod_jezyka,kod_projektu=SerwerWiki(serwer_portalu);
if(kod_jezyka and kod_projektu)then
kod_jezyka_do_projektu_linku=kod_jezyka;
kod_projektu_do_projektu_linku=kod_projektu;
klucz_projektu_do_projektu_linku=nil;
DaneStrony(nazwa_strony);
return true;
else
local pozajezykoweprojektysiostrzane=wiki_interwiki_modul.tablica_poza_lingwistyczne_projekty_siostrzane;
local techniczne_modul=require("Module:Techniczne");
for kod, url in pairs(pozajezykoweprojektysiostrzane)do
local adres=html_modul["UrlBezProtokołu"](url);
local serwer_portalu=mw.ustring.match(adres,"^//+([^/]*)");
if(serwer_portalu)then
if(serwer_portalu==serwer)then
kod_jezyka_do_projektu_linku=kod_jezyka or "en";
kod_projektu_do_projektu_linku=--[[kod_projektu or]] kod;
local nazwa_strony_spreparowana=nil;
if(not mw.ustring.match(adres,"/wiki/%$1$"))then
if(mw.ustring.match(url,"[:/]$1$"))then
local url_wzor=techniczne_modul["PrzekształćWzórDoCzystegoTekstu"](adres);
url_wzor=mw.ustring.gsub(url_wzor,"(%%$1)$","(.-)");
nazwa_strony_spreparowana=mw.ustring.match(nazwa_strony_bez_protokolu,"^"..url_wzor.."$");
if(not nazwa_strony_spreparowana)then
return false;
end;
end;
end;
DaneStrony(nazwa_strony_spreparowana or nazwa_strony,adres);
return true;
end;
end;
end;
end;
end;
local function __FUNKCJA()
if(mw.ustring.match(serwer,"^upload%.wikimedia%.org$"))then
DaneStrony(nazwa_strony);
nazwa_strony=nazwa_strony_linku;
nazwa_strony_linku="Media:"..mw.ustring.match(nazwa_strony,"([^/]*)$");
local kod_projektu_do_projektu_linku2,kod_jezyka_do_projektu_linku2=mw.ustring.match(nazwa_strony,"^([^/]*)/([^/]*)/.*$");
kod_jezyka_do_projektu_linku=kod_jezyka_do_projektu_linku or kod_jezyka_do_projektu_linku2;
kod_projektu_do_projektu_linku=kod_projektu_do_projektu_linku or kod_projektu_do_projektu_linku2;
czy_url=false;
else
local juz_tak=JezykoweLubAngielskieProjekty(serwer);
if(not juz_tak)then
local html_modul=require("Module:Html");
naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku,true);
naglowek_strony=parametry_modul.CzyTak(naglowek_strony) and naglowek_strony or args["nagłówek"];
parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku,true);
parametry_strony=parametry_modul.CzyTak(parametry_strony) and parametry_strony or args["parametry"];
nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku,true);
end;
end;
end;
__FUNKCJA();
end;
local czy_wewnetrzny_z_fullurl;
if(not parametry_modul.CzyTak(parametry_strony))then
if(wersja_linku=="")then
if((klucz_projektu_do_projektu_linku)or(kod_jezyka_do_projektu_linku)or(kod_projektu_do_projektu_linku))then
czy_wewnetrzny_z_fullurl=false;
elseif(not czy_url)then
czy_wewnetrzny_z_fullurl=false;
else
czy_wewnetrzny_z_fullurl=true;
end;
else
czy_wewnetrzny_z_fullurl=true;
end;
else
czy_wewnetrzny_z_fullurl=true;
end;
return klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url;
end;
p["Link wewnętrzny"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local klucz_projektu_do_projektu_linku=args["klucz projektu"];
local kod_jezyka_do_projektu_linku=args["kod języka"];
local kod_projektu_do_projektu_linku=args["kod projektu"];
local nazwa_strony_linku=args["strona"] or "_";
local nazwa=args["nazwa"];
local czy_nazwa=parametry_modul.CzyTak(nazwa);
nazwa=czy_nazwa and nazwa or nil;
local po=args["po"];
local za=args["za"];
local naglowek_strony=args["nagłówek"];
local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]);
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local czy_naglowek=parametry_modul.CzyTak(naglowek_strony);
local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku;
if(not czy_analiza)then
nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,function(nowa_nazwa_strony_linku,dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main)
return nowa_nazwa_strony_linku;
end);
nazwa=czy_nazwa and nazwa or (hash and ("#"..hash) or nil);
else
nowa_nazwa_strony_linku=nazwa_strony_linku;
end;
local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((not czy_naglowek)and(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$")))) or nil);
if(not bez_przetwarzania)then
return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek and naglowek_strony or hash,nazwa,za,po,nil,nil,nil,nil,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow);
else
local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),czy_naglowek and naglowek_strony or hash,nazwa,za,po)
if(not bez_znacznikow)then
local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony);
return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony or hash or mw.ustring.match(nazwa_strony_linku,"#"),nil,nil);
else
return link;
end;
end;
end;
p["LinkURL"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local linki_modul=require("Module:Linki");
local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args);
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]);
local czy_naglowek=parametry_modul.CzyTak(naglowek_strony);
local hash;local czy_kreska_dolna;local prze_nie_main;local czy_strona_lokalna;local nowa_nazwa_strony_linku;
if((not czy_analiza)and(not czy_url))then
nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa("",nazwa_strony_linku,naglowek_strony,czy_naglowek,nil,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,function(nowa_nazwa_strony_linku,dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main)
return nowa_nazwa_strony_linku;
end);
nazwa=parametry_modul.CzyTak(nazwa) and nazwa or (hash and ("#"..hash) or nil);
else
nowa_nazwa_strony_linku=nazwa_strony_linku;
end;
local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$"))) or nil);
function Bez_przetwarzania_lub_bez_znaczkow()
if(parametry_modul.CzyTak(bez_przetwarzania))then
local bez_znacznikow=parametry_modul.CzyTak(bez_znacznikow);
local czy_parametry=parametry_modul.CzyTak(parametry_strony);
local wartosc=((not czy_url)and((parametry_modul.CzyTak(klucz_projektu_do_projektu_linku)and (klucz_projektu_do_projektu_linku..":")
or ((parametry_modul.CzyTak(kod_jezyka_do_projektu_linku)and (kod_jezyka_do_projektu_linku..":") or "")..(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)and (kod_projektu_do_projektu_linku..":") or "")))..nowa_nazwa_strony_linku) or nil);
local link;
local po_linku=parametry_modul.CzyTak(po) and po or "";
if((not czy_url)and((czy_parametry)or(parametry_modul.CzyTak(wersja_linku))))then
local adres=tostring(mw.uri.fullUrl(wartosc,""));
adres=((not parametry_modul.CzyTak(wersja_linku))or(wersja_linku=="wiki")) and adres or mw.ustring.gsub(adres,"/wiki/","/w/index.php?title=",1);
local html_modul=require("Module:Html");
local parametry_i_naglowek=((czy_parametry)and ((((wersja_linku=="w")) and "&" or "?")..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "")
adres=adres..parametry_i_naglowek;
link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku;
elseif(czy_url)then
local html_modul=require("Module:Html");
local parametry_i_naglowek=((czy_parametry)and ("?"..html_modul.EncodeParametryHtml(parametry_strony)) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "")
local adres=nowa_nazwa_strony_linku..parametry_i_naglowek;
link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or (" "..nowa_nazwa_strony_linku))).."]"..po_linku;
else
local naglowek=(parametry_modul.CzyTak(naglowek_strony) and ("#"..mw.ustring.gsub(naglowek_strony,"[%s_]+","_")) or "");
local adres=wartosc..naglowek;
link="[[:"..adres..((parametry_modul.CzyTak(nazwa)) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..adres..za) or "")).."]]"..po_linku;
end;
if not bez_znacznikow then
local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony);
local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony);
return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,czy_naglowek_strony,czy_url,czy_parametry_strony);
else
return link;
end;
end;
end;
local wynik=Bez_przetwarzania_lub_bez_znaczkow();if(wynik)then return wynik;end;
return linki_modul.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,nil,nil,nil,bez_przetwarzania_kodow,bez_znacznikow);
end;
function p.UzyskajKodWikiLinku(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local linki_modul=require("Module:Linki");
local klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,nazwa,za,po,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args);
local wiki_modul=require("Module:Wiki");
local kod_jezyka_koncowy,kod_projektu_koncowy=wiki_modul.KodyWiki(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku);
local pudelko_modul=require("Module:Pudełko");
kod_jezyka_koncowy=parametry_modul.CzyTak(kod_jezyka_koncowy) and kod_jezyka_koncowy or pudelko_modul["Kod języka tego projektu"]();
kod_projektu_koncowy=parametry_modul.CzyTak(kod_projektu_koncowy) and kod_projektu_koncowy or pudelko_modul["Kod projektu tego projektu"]();
local czy_nazwa=parametry_modul.CzyTak(nazwa_strony_linku);
if(not czy_nazwa or not mw.ustring.match(nazwa_strony_linku,"_+"))then
if((not czy_nazwa)and((not kod_jezyka_koncowy)or(kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]()))and((not kod_projektu_koncowy)or(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())))then
if((parametry_modul.CzyTak(naglowek_strony)) or (not args["strona"] or args["strona"]=="") or ((args["strona"])and(mw.ustring.match(args["strona"],"^[_%s]*#[_%s]*$"))or(nil)))then
aktywny=false;
local nazwy_modul=require("Module:Nazwy");
nazwa_strony_linku=nazwy_modul["PEŁNANAZWASTRONY"]();
end;
else
aktywny=true;
end;
else
aktywny=true;
local pudelko_modul=require("Module:Pudełko");
nazwa_strony_linku=pudelko_modul["Strona główna tego projektu"]();
end;
local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy);
---
local czy_parametry_strony=parametry_modul.CzyTak(parametry_strony);
local czy_naglowek_strony=parametry_modul.CzyTak(naglowek_strony);
local czy_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku);
if(not czy_pusta_nazwa_strony_linku)then
local linki_modul=require("Module:Linki");
nazwa_strony_linku,_=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony);
end;
----
local klasa=wiki_modul.KodyKlasStronyNaDanejWiki{["klucz projektu"]=nil,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["strona"]=nazwa_strony_linku,["nagłówek"]=czy_naglowek_strony,["url"]=czy_url,["parametry"]=czy_parametry_strony,["aktywny"]=aktywny,};
return klasa;
end;
p["LinkOgólne"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["m"];
local czy_dyskusja=parametry_modul.CzyTak(args["dyskusja"] or args["d"]);
local klucz_projektu_do_projektu_linku=args["klucz projektu"] or args["k"];
local kod_jezyka_do_projektu_linku=args["kod języka"] or args["kj"];
local kod_projektu_do_projektu_linku=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 nazwa_strony_linku=args[1] or "_";
local czy_nazwa=parametry_modul.CzyTak(args[2]);
local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
local nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna;
local czy_niepusta_nazwa_przestrzeni_nazw;
local nazwy_modul=require("Module:Nazwy");
if(not czy_analiza)then
miano_przestrzeni_nazw=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or "";
nowa_nazwa_strony_linku,hash,czy_kreska_dolna,prze_nie_main,czy_strona_lokalna=p.RozwinKreskaPoziomowa(miano_przestrzeni_nazw,nazwa_strony_linku,nil,nil,dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,czy_analiza,function(nowa_nazwa_strony_linku,dyskusja,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,prze_nie_main)
if(czy_dyskusja)then
nowa_nazwa_strony_linku=nazwy_modul["NAZWASTRONYDYSKUSJI"]{nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["bez zmiany adresu"]="tak",};
end;
return nowa_nazwa_strony_linku;
end);
else
prze_nie_main=((miano_przestrzeni_nazw)and((miano_przestrzeni_nazw~="")and(miano_przestrzeni_nazw~="(main)"))) and miano_przestrzeni_nazw or nil;
nowa_nazwa_strony_linku=prze_nie_main and((miano_przestrzeni_nazw..":")..nazwa_strony_linku) or nazwa_strony_linku;
end;
local czy_biezaca;
if((czy_dyskusja)or(czy_analiza))then
local wiki_modul=require("Module:Wiki");
czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,};
local nazwy_modul=require("Module:Nazwy");
if(czy_biezaca)then
miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"](nowa_nazwa_strony_linku);
else
miano_przestrzeni_nazw=nazwy_modul[((czy_dyskusja)and(czy_analiza)) and "PRZESTRZEŃDYSKUSJI" or "NAZWAPRZESTRZENI"]{nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,};
end;
czy_niepusta_nazwa_przestrzeni_nazw=parametry_modul.CzyTak(miano_przestrzeni_nazw);
elseif(hash or czy_kreska_dolna)then
czy_niepusta_nazwa_przestrzeni_nazw=true;
elseif(not prze_nie_main)then
miano_przestrzeni_nazw="";
czy_niepusta_nazwa_przestrzeni_nazw=false;
else
miano_przestrzeni_nazw=prze_nie_main;
czy_niepusta_nazwa_przestrzeni_nazw=true;
end;
local function NazwaLinkuDoStrony()
if(czy_niepusta_nazwa_przestrzeni_nazw)then
if(parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw))then
if(not czy_nazwa)then
if((not czy_kreska_dolna)and(not hash))then
if(mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$"))then nazwa_strony_linku="Przykładowa nazwa";end;
----
local aliases;
local alias=args["alias miana przestrzeni nazw"] or args["alias"] or args["a"];
local czy_alias=parametry_modul.CzyTak(alias);
if(czy_alias)then
if((not dyskusja)and(not czy_analiza))then
local wiki_modul=require("Module:Wiki");
czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,};
end;
if(czy_biezaca)then
local uchwyt=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak"}
if(uchwyt)then
aliases=uchwyt.aliases;
--miano_przestrzeni_nazw=uchwyt.name;
end;
else
local uchwyt=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,uchwyt="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
if(uchwyt)then
if(parametry_modul.TypeTable(uchwyt))then
aliases=uchwyt.aliasy;
--miano_przestrzeni_nazw=uchwyt[1];
else
--miano_przestrzeni_nazw=uchwyt;
aliases={};
end;
end;
end;
end;
----
if((czy_alias)and(parametry_modul.CzyTak(aliases)))then
if(parametry_modul["CzySąElementyNumerowaneTablicy"](aliases))then
alias=mw.getContentLanguage():uc(alias);
for _,value in pairs(aliases)do
if((mw.getContentLanguage():uc(value))==alias)then
return alias..":"..nazwa_strony_linku;
end;
end;
end;
end;
local miano_przestrzeni_nazw_zmienna_tymczasowa;
if(czy_biezaca)then
miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
else
miano_przestrzeni_nazw_zmienna_tymczasowa=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} or miano_przestrzeni_nazw;
end;
if(not miano_przestrzeni_nazw_zmienna_tymczasowa)then return nil;end;
return ((miano_przestrzeni_nazw_zmienna_tymczasowa~="") and (miano_przestrzeni_nazw_zmienna_tymczasowa..":") or "")..nazwa_strony_linku;
else
return hash and("#"..hash) or nowa_nazwa_strony_linku;
end;
end;
else
if(not czy_nazwa)then
if((not czy_kreska_dolna)and(not hash))then
return nazwa_strony_linku;
else
local nazwy_modul=require("Module:Nazwy");
return hash and ("#"..hash) or nazwy_modul["NAZWASTRONY"]{nazwa=nowa_nazwa_strony_linku,["klucz projektu"]=klucz_projektu_do_projektu_linku,["kod języka"]=kod_jezyka_do_projektu_linku,["kod projektu"]=kod_projektu_do_projektu_linku,};
end;
end;
end;
else
if(not czy_nazwa)then
if((not czy_kreska_dolna)and(not hash))then
return nowa_nazwa_strony_linku;
else
local nazwy_modul=require("Module:Nazwy");
return hash and("#"..hash) or nowa_nazwa_strony_linku;
end;
end;
end;
end;
local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
local bez_przetwarzania_kodow=parametry_modul.CzyTak(args["bez przetwarzania kodów"]);
local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and(((hash)or(czy_kreska_dolna)) and "tak" or (((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*$")or(mw.ustring.match(nazwa_strony_linku,"^[%s_]*[^:#]-[^%s_#:][%s_]*#(.*)$"))))) or nil);
local nazwa=czy_nazwa and args[2] or NazwaLinkuDoStrony();
local po=args["po"] or args["p"];
local za=args["za"] or args["z"];
if(not bez_przetwarzania)then
return p.Link(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash,nazwa,za,po,false,nil,nil,nil,true,wyswietl_miano_przestrzeni_nazw,czy_dyskusja,bez_przetwarzania_kodow,bez_znacznikow);
else
local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,(not czy_strona_lokalna) and nowa_nazwa_strony_linku or (hash and "" or nowa_nazwa_strony_linku),hash,nazwa,za,po);
if(not bez_znacznikow)then
return p.LinkWikidane(link,klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,hash or ((not czy_kreska_dolna) and mw.ustring.match(nazwa_strony_linku,"#") or nil),nil,nil);
else
return link;
end;
end;
end;
function p.ZamianaKategoriiNaLinki(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr("tekst") or PobierzParametr(1);
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|%2]]");
tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]");
tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%2]]");
tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1]]");
return tekst;
end;
return p;