Moduł:Linki

Template-info.png Dokumentacja modułu [stwórz] [odśwież]
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");
	    	for nazwa_przestrzeni_nazw_tablicy_stron_projektu,nazwa_bazowa_strony in pairs(tabglownestronyprojektu)do
	            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_przestrzeni_nazw_tablicy_stron_projektu~="Project")and "w" or "b",
					}
				if(nazwa_strony_na_innym_projekcie)then
			    	local nazwa_przestrzeni_nazw_strony_na_innym_projekcie=nazwy_modul["NAZWAPRZESTRZENI"]{[1]= nazwa_strony_na_innym_projekcie,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
			    	if(nazwa_przestrzeni_nazw_strony_na_innym_projekcie==nazwa_przestrzeni_nazw)then
			    		return nazwa_strony_na_innym_projekcie,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(nazwa_przestrzeni_nazw==prze_bierzacej_strony)then
					return nazwy_modul["PEŁNANAZWASTRONY"](),true;
				end;
		    end;
	     	local nazwy_modul=require("Module:Nazwy");
		    local nazwa_przestrzeni_nazw=nazwy_modul.Np{["nazwa"]=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"}
	     	for nazwa_przestrzeni_nazw_glownych_stron_projektu,nazwa_strony_glownych_stron_projektu in pairs(tabglownestronyprojektu)do
	     		if(nazwa_przestrzeni_nazw_glownych_stron_projektu==nazwa_przestrzeni_nazw)then
	     			return nazwa_strony_glownych_stron_projektu,false;
	     		end;
	     	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.tab_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,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 PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy,_=PobierzParametr();
	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 PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy,_=PobierzParametr();
	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 PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_ze_znacznikiem,_=PobierzParametr();
	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 PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_ze_znacznikiem,_=PobierzParametr();
	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 PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy,_=PobierzParametr();
	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*:[^%[%]]*%]%]","");
	wartosc=mw.ustring.gsub(wartosc,"%[%[%s*[Gg][Rr][Aa][Ff][Ii][Kk][Aa]%s*:[^%[%]]*%]%]","");
	return wartosc;
end;
p["UsuńInterwiki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy,_=PobierzParametr();
	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 PobierzParametr=parametry_modul.PobierzParametr(frame);
	local wartosc,_=PobierzParametr();
	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;
function p.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,tablica_kodow)
	local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
	local interwikisiostrzaneangielskie=wiki_interwiki_modul.interwiki_siostrzane_angielskie;
	local interwikimap=wiki_interwiki_modul.interwikimap;
	
    local jezykowe_projekty=wiki_interwiki_modul.tab_lokalne_jezykowe_siostrzane;
	
	local poczatek=true;
	local kod_jezyka_poczatkowy=nil;
	local kod_projektu_poczatkowy=nil;
	
	while(true)do
    	local kod_jezyka_lub_projektu, dalsza_czesc_strony_linku=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_:]*(.*)");
    	if(kod_jezyka_lub_projektu and dalsza_czesc_strony_linku)then
    		kod_jezyka_lub_projektu=mw.ustring.gsub(kod_jezyka_lub_projektu,"[%s_]+"," ")
    		local kod_zmienna_tymczasowa=mw.getContentLanguage():lc(kod_jezyka_lub_projektu);
    		local czy_jazyk=mw.language.isKnownLanguageTag(kod_zmienna_tymczasowa);
    		if(czy_jazyk)then 
    			kod_jezyka_koncowy=kod_zmienna_tymczasowa;
    			if(not poczatek)then
    				table.insert(tablica_kodow,kod_jezyka_lub_projektu);
    			else
    				kod_jezyka_poczatkowy=kod_jezyka_lub_projektu;
    				poczatek=false;
    			end;
    			nazwa_strony_linku=dalsza_czesc_strony_linku;
    		else
    			local czy_interwiki=interwikimap[kod_zmienna_tymczasowa];
    			if(czy_interwiki)then
	                local kod_interwiki=interwikisiostrzaneangielskie[kod_zmienna_tymczasowa];
	                if(not kod_interwiki)then
                    	kod_projektu_koncowy=kod_zmienna_tymczasowa;
                    	if(not poczatek)then
                    		table.insert(tablica_kodow,kod_jezyka_lub_projektu);
                    	else
                    		kod_projektu_poczatkowy=kod_jezyka_lub_projektu;
                    		poczatek=false;
                    	end;
                    	nazwa_strony_linku=dalsza_czesc_strony_linku;
                    else
                    	if(interwikimap[kod_projektu_koncowy]~=interwikimap[kod_interwiki])then
                    		local projekty_nie_en=jezykowe_projekty[kod_interwiki];
                    		if(projekty_nie_en)then
                    			kod_jezyka_koncowy="en";
                    			--table.insert(tablica_kodow,"en");
                    		end;
                    		kod_projektu_koncowy=kod_interwiki;
                    		if(not poczatek)then
                    			table.insert(tablica_kodow,kod_jezyka_lub_projektu);
                    		else
                    			kod_projektu_poczatkowy=kod_jezyka_lub_projektu;
                    			poczatek=true;
                    		end;
                    	    nazwa_strony_linku=dalsza_czesc_strony_linku;
                    	else
                    		break;
                    	end;
                    end;
                else
                	break;
    			end;
    		end;
    	else
    		break;
    	end;
	end;
    return nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy;
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)
	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)
   	            local naglowek_zmienna_tymczasowa=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku);
				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.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);

    	if(not kod_jezyka_uzyskany_poczatkowy or not kod_projektu_uzyskany_poczatkowy)then
    		local pudelko_modul=require("Module:Pudełko");
    		kod_jezyka_uzyskany_poczatkowy=pudelko_modul["Kod języka tego projektu"]();
    		kod_projektu_uzyskany_poczatkowy=pudelko_modul["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=p.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,tablica_kodow);
        	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="";
	    local pudelko_modul=require("Module:Pudełko");
        if(kod_jezyka_poczatkowy)then
        	if((kod_jezyka_uzyskany_poczatkowy==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu_uzyskany_poczatkowy==pudelko_modul["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==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu_uzyskany_poczatkowy==pudelko_modul["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;
        --ciag_tablica_kodow=mw.getContentLanguage():ucfirst(ciag_tablica_kodow);
        	
    	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]=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 "");
    
    	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.tab_lokalne_jezykowe_siostrzane;
    	local projekty_nie_en=jezykowe_projekty[kod_projektu_uzyskany_poczatkowy];
    
    	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_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 tablica_kodow=(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 "")))..((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.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.poza_jezykowe_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.poza_jezykowe_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)).."]"..(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.CzyIstniejeStronaDanejWiki{["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,bez_znacznikow,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url,czy_ogolne,wyswietl,dyskusja)
	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["TransformacjaKoduZnakuDoZnakuŁancucha"](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);

	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;
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 bez_znacznikow;local bez_przetwarzania;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);
    			parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr);
    			nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr);
	    	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);
	    		parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr);
    			nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr);
    		
    			local nazwa_strony_jednostki,parametry_strony_jednostki=html_modul["NazwaStronyZParametrówStronyAdresu"](parametry_strony);
	    		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);
    			parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku_parametr);
    			nazwa_strony_linku_parametr=html_modul["NazwaStronyAdresu"](nazwa_strony_linku_parametr);
    		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,};
    			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"];
    	bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
    	bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
    	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.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 AngielskieProjekty(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.poza_jezykowe_projekty_siostrzane;
    			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;
    	    				DaneStrony(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=AngielskieProjekty(serwer);
  	 		 	if(not juz_tak)then
  	 		 		  local html_modul=require("Module:Html");
    				  naglowek_strony=html_modul["NagłówekStronyAdresu"](nazwa_strony_linku);
    				  parametry_strony=html_modul["ParametryStronyAdresu"](nazwa_strony_linku);
    				  nazwa_strony_linku=html_modul["NazwaStronyAdresu"](nazwa_strony_linku);
  	 		 	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,bez_przetwarzania,bez_znacznikow,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 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 czy_analiza=parametry_modul.CzyTak(args["analiza"]);
    local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and((not mw.ustring.match(nazwa_strony_linku,"^#"))and((not mw.ustring.match(nazwa_strony_linku,"^[%s_]*$"))and(mw.ustring.match(nazwa_strony_linku,"^[^:]*$"))) or nil) 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,nazwa_strony_linku,naglowek_strony,nazwa,za,po,bez_znacznikow);
    else
    	local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nazwa_strony_linku,naglowek_strony,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,nazwa_strony_linku,czy_naglowek_strony,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,bez_przetwarzania,bez_znacznikow,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url=linki_modul["GanerujSkładoweURL"](args);
    
    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..":") or "")..(parametry_modul.CzyTak(kod_projektu_do_projektu_linku)and (kod_projektu_do_projektu_linku..":") or "")))..nazwa_strony_linku..((czy_parametry)and ("?"..parametry_strony) or "")..(parametry_modul.CzyTak(naglowek_strony) and ("#"..naglowek_strony) or "")) or nil);
    		local link;
    		if((not czy_url)and(czy_parametry))then
    			local adres=tostring(mw.uri.fullUrl(wartosc,""));
    			link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]";
    		elseif(czy_url)then
    			local adres=nazwa_strony_linku..((czy_parametry)and ("?"..parametry_strony) or "")..((parametry_modul.CzyTak(naglowek_strony)) and ("#"..naglowek_strony) or "");
    			link= "["..adres..(parametry_modul.CzyTak(nazwa) and (" "..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and (" "..adres..za) or "")).."]";
    		else
    			link="[[:"..wartosc..((parametry_modul.CzyTak(nazwa)) and ("|"..nazwa..(parametry_modul.CzyTak(za) and za or "")) or (parametry_modul.CzyTak(za) and ("|"..wartosc..za) or "")).."]]"
    		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,kod_jezyka,kod_projektu,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,nazwa_strony_linku,naglowek_strony,nazwa,za,po,bez_znacznikow,czy_wewnetrzny_z_fullurl,parametry_strony,wersja_linku,czy_url);
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,bez_przetwarzania,bez_znacznikow,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 tablica_kodow_strony={};
    local nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=p.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,tablica_kodow_strony);
    
    ---
    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.CzyIstniejeStronaDanejWiki{["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 dyskusja=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_niepusta_nazwa_przestrzeni_nazw=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw);
	
	local function NazwaLinkuDoStrony()
		if(czy_niepusta_nazwa_przestrzeni_nazw)then
			local wiki_modul=require("Module:Wiki");
			local 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");
			local alias=args["alias nazwy przestrzeni nazw"] or args["alias"] or args["a"];

			local aliases;
			if(czy_biezaca)then
				local uchwyt=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",uchwyt="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,dyskusja=dyskusja,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;
			if(parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw))then
				if(not args[2])then
					if(mw.ustring.match(nazwa_strony_linku,"^[%s_:]*$"))then nazwa_strony_linku="Przykładowa nazwa";end;
					if((parametry_modul.CzyTak(alias)))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,dyskusja=dyskusja,["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,dyskusja=dyskusja,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
            		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;
        		end;
			else 
				return nazwa_strony_linku;
			end;
		else
			return nazwa_strony_linku;
		end;
	end;
	
	local altenatywna_nazwa=NazwaLinkuDoStrony();
	
    local nowa_nazwa_strony_linku=(not mw.ustring.match(nazwa_strony_linku,"^%s*#")) and ((((miano_przestrzeni_nazw)and(miano_przestrzeni_nazw~=""))and (miano_przestrzeni_nazw..":") or "")..nazwa_strony_linku) or nazwa_strony_linku;
	
	local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
	local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
	
	local bez_przetwarzania=bez_przetwarzania or ((not czy_analiza)and((not mw.ustring.match(nazwa_strony_linku,"^#"))and((not parametry_modul.TypeBoolean(altenatywna_nazwa))and((parametry_modul.CzyTak(args["potomek"])and(miano_przestrzeni_nazw~=""))or(mw.ustring.match(nazwa_strony_linku,"^[^:]*$")))) or nil)or nil);
	
	local nazwa=args[2] or altenatywna_nazwa;
	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,nil,nazwa,za,po,bez_znacznikow,false,nil,nil,nil,true,wyswietl_miano_przestrzeni_nazw,dyskusja);
	else
	   local link=p.TworzLinkBezPrzetwarzania(klucz_projektu_do_projektu_linku,kod_jezyka_do_projektu_linku,kod_projektu_do_projektu_linku,nowa_nazwa_strony_linku,nil,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,nil,nil,nil);
		else
			return link;
		end;
	end;
end;
p["Forma wyrażenia po liczbie"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local czy_table_frame=parametry_modul.TypeTable(frame);
	local args=czy_table_frame and (frame.args or frame) or nil;
	local argument_funkcji_modulu_1=czy_table_frame and (args[1] or "0") or (frame or "0");
	local argument_funkcji_modulu_2=czy_table_frame and (args[2] or "zbiorów") or "zbiorów";
	local argument_funkcji_modulu_3=czy_table_frame and (args[3] or "zbiór") or "zbiór";
	local argument_funkcji_modulu_4=czy_table_frame 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 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;