Moduł:Linki

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.png Dokumentacja modułu [stwórz] [odśwież]
local p={};
function p.NazwaPustaStrony(przestrzen,nazwa,kod_jezyka,kod_projektu,hash)
	local czy_puste_prze=mw.ustring.match(przestrzen,"^([%s_]*)$");
	local czy_puste_nazw=mw.ustring.match(nazwa,"^([%s_]*)#.*$") or mw.ustring.match(nazwa,"^([%s_]*)$");
	if(not czy_puste_prze and czy_puste_nazw)then
	     local tabglownestronyprojektu=mw.loadData("Module:Nazwy/przestrzenie").tabnp;
	     local parametry_modul=require("Module:Parametry");
	     local prze=parametry_modul["Odstępy"](przestrzen);
	     local wiki_modul=require("Module:Wiki");
	     local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	     if(not czy_biezaca)then
	        local nazwy_modul=require("Module:Nazwy");
	        local wiki_modul=require("Module:Wiki");
	    	for prze_kan,nazwa2 in pairs(tabglownestronyprojektu)do
	            local strona2=wiki_modul.WikidaneOdpowiednikStrony{
		 			["nazwa strony"]=nazwa2,
		 	    	["kod języka"]=kod_jezyka,
		 	    	["kod projektu"]=kod_projektu,
		 	    	["kod języka bazy"]="pl",
		 	    	["kod projektu bazy"]=(prze_kan~="Project")and "w" or "b",
					}
				if(strona2)then
			    	local prze_kan2=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona2,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
			    	if(prze_kan2==przestrzen)then
			    		return strona2,false;
			    	end;
			    end;
	    	end;
	     else
	        local nazwy_modul=require("Module:Nazwy");
	     	if(hash)then
				local nazwy_modul=require("Module:Nazwy");
				local prze_bierzacej_strony=nazwy_modul["NAZWAPRZESTRZENI"]();
				if(przestrzen==prze_bierzacej_strony)then
					return nazwy_modul["PEŁNANAZWASTRONY"](),true;
				end;
		    end;
	     	local nazwy_modul=require("Module:Nazwy");
		    local prze=nazwy_modul.Np{["nazwa"]=przestrzen,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak"}
	     	for prze_kan,nazwa in pairs(tabglownestronyprojektu)do
	     		if(prze_kan==prze)then
	     			return nazwa,false;
	     		end;
	     	end;
	     end;   
	elseif czy_puste_prze and czy_puste_nazw then
	    local wiki_modul=require("Module:Wiki");
	    local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
	    if((czy_biezaca)and(hash))then
				local nazwy_modul=require("Module:Nazwy");
				return nazwy_modul["PEŁNANAZWASTRONY"](),true;
		end;
	    local wiki_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
	    local tablokalnesiostrzane=wiki_interprojekty_modul.tablokalnesiostrzane;
		if(tablokalnesiostrzane[kod_projektu])then
		    local wiki_modul=require("Module:Wiki");
		    local pudelko_modul=require("Module:Pudełko");
		    local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
		    if(not czy_biezaca)then
				local strona2=wiki_modul.WikidaneOdpowiednikStrony{
		 			["nazwa strony"]=strona_glowna_tego_projektu,
		 			["kod języka"]=kod_jezyka,
		 			["kod projektu"]=kod_projektu,
				}
				if(strona2)then
					return strona2,false;
				end;
			else
				return strona_glowna_tego_projektu,false;
			end;
		end;
	end;
	return ((przestrzen~="")and (przestrzen..":") or "")..nazwa,false;
end;
p["PoprawLinki"]=function(frame)	
	local parametry_modul=require("Module:Parametry");
	local argument_pierwszy=parametry_modul.PobierzParametr(frame);
	local linki_modul=require("Module:Linki");
	local function pojedynczy_link(link)
  		local strona=mw.ustring.match(link,"^%[%[([^%[%]|]*)");
  		local nazwa=mw.ustring.match(link,"^%[%[[^|]*|([^%[%]]*)%]%]$");
    	link=linki_modul["TwórzLink"](nil,nil,nil,strona,nil,nazwa,nil,false,nil);
    	return link;
	end;
	return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return pojedynczy_link(s);end);
end;
p["WydzielLiczbę"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local argument_pierwszy=parametry_modul.PobierzParametr(frame);
	argument_pierwszy=mw.ustring.gsub(argument_pierwszy,"(%d)%s+(%d)","%1%2");
	local liczba_w_linku=mw.ustring.match(argument_pierwszy,"^%s*'*%s*%[%[[^%[%]|]+|%s*'*%s*(%d+)%s*'*%s*%]%]%s*'*%s*$");
	if(liczba_w_linku)then return liczba_w_linku;end;
	local liczba_w_czudzyslowie=mw.ustring.match(argument_pierwszy,"^%s*'*%s*(%d+)%s*'*%s*$");
	if(liczba_w_czudzyslowie)then return liczba_w_czudzyslowie;end;
	return argument_pierwszy;
end;
p["UsuńKategorie"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local argument_pierwszy=parametry_modul.PobierzParametr(frame);
	local category=require("Module:Nazwy").Np{nazwa="Category"};
    local wzorcategory=require("Module:Techniczne")["WzórDanejPrzestrzeniNazw"](category);
    argument_pierwszy,_=mw.ustring.gsub(argument_pierwszy,"%[%[%s*"..wzorcategory.."%s*:[^%[%]]+%]%]","");
    argument_pierwszy,_=mw.ustring.gsub(argument_pierwszy,"%[%[%s*[CC][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%[%]]+%]%]","");
    return argument_pierwszy;
end;
p["UsuńZnaczniki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local argument_ze_znacznikiem=parametry_modul.PobierzParametr(frame);
	local znak_127=mw.ustring.char(127);
	argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,znak_127.."'\"`UNIQ%-%-templatestyles%-%w+%-QINU`\"'"..znak_127,"");
	--argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"<%a+%s*[^<>]*>([^%[%]<>]*)</%a+>","%1");
    argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"(</?%s*[^<>]+>)","");
    argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"^%s*<!%-%-.-%-%->%s*$","");
    return argument_ze_znacznikiem;
end;
p["UsuńSzablonStylów"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local argument_ze_znacznikiem=parametry_modul.PobierzParametr(frame);
	local znak_127=mw.ustring.char(127);
	argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,znak_127.."'\"`UNIQ%-%-templatestyles%-%w+%-QINU`\"'"..znak_127,"");
	return argument_ze_znacznikiem;
end;
p["UsuńWywołaniaPlików"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local argument_pierwszy=parametry_modul.PobierzParametr(frame);
	local wartosc=mw.ustring.gsub(argument_pierwszy,"%[%[%s*[Pp][Ll][Ii][Kk]%s*:[^%[%]]*%]%]","");
	wartosc=mw.ustring.gsub(wartosc,"%[%[%s*[Ff][Ii][Ll][Ee]%s*:[^%[%]]*%]%]","");
	wartosc=mw.ustring.gsub(wartosc,"%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:[^%[%]]*%]%]","");
	return wartosc;
end;
p["UsuńInterwiki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local argument_pierwszy=parametry_modul.PobierzParametr(frame);
	local interwikimap=mw.loadData("Module:Wiki/interwiki").interwikimap;
	local function interwiki(interwiki)
		local wartosc=mw.ustring.match(interwiki,"%[%[[%s_]*([^:]*[^:%s_])[%s_]*:[^%[%]]*%]%]");
		if(wartosc)then
			local czy_kod_jezyka_istnieje=mw.language.isKnownLanguageTag(wartosc);
			if(czy_kod_jezyka_istnieje)then
				return "";
			end;
		end;
		return interwiki;
	end;
	return mw.ustring.gsub(argument_pierwszy,"(%[%[[^%[%]]*%]%])",function(s)return interwiki(s);end);
end;
p["WydobądźLinki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local wartosc=parametry_modul.PobierzParametr(frame);
	local linki_modul=require("Module:Linki");
	wartosc=linki_modul["UsuńZnaczniki"](wartosc);
	wartosc=linki_modul["UsuńKategorie"](wartosc);
	wartosc=linki_modul["UsuńWywołaniaPlików"](wartosc);
	wartosc=linki_modul["UsuńInterwiki"](wartosc);
	wartosc=linki_modul["PoprawLinki"](wartosc);
	return wartosc;
end;
p["TwórzLink"]=function(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,czy_wewnetrzny_z_fullurl,parametry,czy_url,czy_ogolne,wyswietl,dyskusja)
	if(not czy_url)then
		local parametry_modul=require("Module:Parametry");
		local czy_klucz_projektu_parent=parametry_modul.CzyTak(klucz_projektu_parent);
		local czy_kod_jezyka_parent=parametry_modul.CzyTak(kod_jezyka_parent);
		local czy_kod_projektu_parent=parametry_modul.CzyTak(kod_projektu_parent);
		local czy_strona_parent=parametry_modul.CzyTak(strona_parent);
		local czy_naglowek=parametry_modul.CzyTak(naglowek);
		local czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa);
		local czy_po=parametry_modul.CzyTak(po);
   
		if(not czy_naglowek)then
   	    	if(czy_strona_parent)then
				local strona_parent2,naglowek2=mw.ustring.match(strona_parent,"^([^#]*)#(.*)");
				if(strona_parent2 and naglowek2)then
					strona_parent=strona_parent2;
					naglowek2=mw.ustring.gsub(naglowek2,"^[%s_]*","");
		    		naglowek2=mw.ustring.gsub(naglowek2,"[%s_]*$","");
		    		naglowek2=mw.ustring.gsub(naglowek2,"[%s_]+","_");
					if(parametry_modul.CzyTak(naglowek2))then
						naglowek=naglowek2;
						czy_naglowek=true;
					end;
				end;
			end;
		else
			naglowek=mw.ustring.gsub(naglowek,"^[%s_]*","");
			naglowek=mw.ustring.gsub(naglowek,"[%s_]*$","");
	    	naglowek=mw.ustring.gsub(naglowek,"[%s_]+","_");
			if(not parametry_modul.CzyTak(naglowek))then
				czy_naglowek=false;
				naglowek=nil;
			end;
		end;
   ---
   		local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
		local interwikisiostrzaneangielskie=wiki_interwiki_modul.interwikisiostrzaneangielskie;

    	local wiki_modul=require("Module:Wiki");
    	local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent);
    	if(not kod_jezyka or not kod_projektu)then
    		local pudelko_modul=require("Module:Pudełko");
    		kod_jezyka=pudelko_modul["Kod języka tego projektu"]();
    		kod_projektu=pudelko_modul["Kod projektu tego projektu"]();
    	end;
    
    	local interwikimap=wiki_interwiki_modul.interwikimap;
    	local czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](strona_parent) and not mw.ustring.match(strona_parent,"^[%s_:]+$") or nil;
    	if(czy_pelna_nazwa_strony_prawidlowa)then
    		while(true)do
    			local kod, dalsza_strona_parent2=mw.ustring.match(strona_parent,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_:]*(.*)");
    			if(kod and dalsza_strona_parent2)then
    				kod=mw.ustring.gsub(kod,"[%s_]+"," ")
    				kod=mw.getContentLanguage():lc(kod);
    				local czy_jazyk=mw.language.isKnownLanguageTag(kod);
    				if(czy_jazyk)then 
    					kod_jezyka=kod;
    					strona_parent=dalsza_strona_parent2;
    				else
    					local czy_interwiki=interwikimap[kod];
    					if(czy_interwiki)then
	                		local kod_interwiki=interwikisiostrzaneangielskie[kod];
	                		if(not kod_interwiki)then
                    			kod_projektu=kod;
                    	    	strona_parent=dalsza_strona_parent2;
                    		else
                    			if(kod_projektu~=kod_interwiki)then
                    				kod_projektu=kod_interwiki;
                    				kod_jezyka="en";
                    	    		strona_parent=dalsza_strona_parent2;
                    			else
                    				kod_jezyka=(kod_interwiki~=kod_projektu)and "en" or kod_jezyka;
                    		    	break;
                    			end;
                    		end;
                		else
                			break;
    					end;
    				end;
    			else
    				break;
    			end;
    		end;
        	czy_pelna_nazwa_strony_prawidlowa=parametry_modul["CzyTakCiąg"](strona_parent) and not mw.ustring.match(strona_parent,"^[%s_:]+$") or nil;
    	end;
	---
    
    	local nazwy_modul=require("Module:Nazwy");
    	local czy_dyskusja=parametry_modul.CzyTak(dyskusja);

    	local nazwaprzestrzeni=czy_pelna_nazwa_strony_prawidlowa and ((not czy_dyskusja)and nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona_parent,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}
    	                                                       or nazwy_modul["PRZESTRZEŃDYSKUSJI"]{[1]=strona_parent,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}) or "";
    	local nazwastrony=czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWASTRONY"]{[1]=strona_parent,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or "";
    
    	local linki_modul=require("Module:Linki");
    	local strona_parent2a,czy_strona_lokalna=linki_modul.NazwaPustaStrony(nazwaprzestrzeni,nazwastrony,kod_jezyka,kod_projektu,czy_naglowek);
    
    	local function NazwaStrony(strona)
        	if(czy_dyskusja and mw.ustring.match(nazwastrony,"^[%s_]*$"))then
        		return nazwy_modul["NAZWASTRONYDYSKUSJI"]{[1]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
        	end;
        	return strona;
    	end;
    	local strona_parent2=NazwaStrony(strona_parent2a);
    	strona_parent=((not czy_strona_lokalna or ((czy_dyskusja)and(nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona_parent2a,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}~=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=strona_parent2,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,})))and strona_parent2 or "");
    
    	czy_strona_parent=parametry_modul.CzyTak(strona_parent);
    
    	local czy_biezace_wiki=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu_parent,["kod języka"]=kod_jezyka_parent,["kod projektu"]=kod_projektu_parent,};
    	local czy_dwukropek;
    	if(czy_biezace_wiki)then
    		local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
    		if((nazwaprzestrzeni==nazwy_np_modul.Category)or(nazwaprzestrzeni==nazwy_np_modul.File))then
    			czy_dwukropek=true;
    		end;
    	end;
    	local pudelko_modul=require("Module:Pudełko");
    
    	local wiki_interprojekty_modul=mw.loadData("Moduł:Wiki/interprojekty");
    	local jez_projekt=wiki_interprojekty_modul.tablokalnejezykowesiostrzane;
    	local projekty_nie_en=jez_projekt[kod_projektu];
    
    	local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"]();
    	local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"]();
    	local czy_kod_jezyka=(kod_jezyka~=kod_jezyka_tego_projektu);
    	local czy_kod_projektu=(kod_projektu~=kod_projektu_tego_projektu);
    	local function WartoscStart()
			local wartosc_start=(not projekty_nie_en and (czy_kod_projektu and kod_projektu..":" or "") or(czy_kod_jezyka and kod_jezyka..":"..(czy_kod_projektu and kod_projektu..":" or "")
    	                          	       or (czy_kod_projektu and kod_projektu..":" or "")))
    	                      ..(czy_strona_parent and strona_parent or "") 
    	                        ..(czy_naglowek and "#"..naglowek or "");
    		return wartosc_start;
		end;
		nazwa=nazwa and mw.ustring.gsub(nazwa,"^[%s_]*","") or nil;
		nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]*$","") or nil;
		nazwa=nazwa and mw.ustring.gsub(nazwa,"[%s_]+"," ") or nil;
		if(czy_ogolne and not czy_nazwa)then
   			if(parametry_modul.CzyTak(wyswietl))then
   				nazwa=strona_parent2;
   				czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa);
   			else
   				if((czy_pelna_nazwa_strony_prawidlowa)and(nazwastrony~=""))then
   					nazwa=nazwastrony;
   				else
   					nazwa=nazwy_modul["NAZWASTRONY"]{[1]=strona_parent2,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
   				end;
   				czy_nazwa=parametry_modul["CzyTakCiąg"](nazwa);
   			end
		end;
		local wartosc_start;
		if(not czy_wewnetrzny_z_fullurl)then
			wartosc_start=WartoscStart();
			if(nazwa and (nazwa~=wartosc_start))then
   				wartosc_start="[["..((not czy_kod_jezyka and not czy_kod_projektu and not czy_dwukropek)and (mw.ustring.match(wartosc_start,"^[%s_]*/") and ":" or "") or "")..((czy_kod_jezyka or czy_dwukropek) and ":" or "")..wartosc_start..(czy_nazwa and "|"..nazwa or "").."]]"..(czy_po and po or "");
			else
   				wartosc_start="[["..((czy_kod_jezyka or czy_dwukropek) and ":" or "")..wartosc_start.."]]"..(czy_po and po or "");
			end
		else
			local serwer;
			local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
			local wiki_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
			local projekt;
			if(projekty_nie_en)then
				for kod_specjalny_projektu,kod_projektu_interwiki in pairs(wiki_interwiki_modul.interwikisiostrzaneangielskie)do
					if(kod_projektu==kod_projektu_interwiki)then
						projekt=kod_specjalny_projektu;
					end;
				end;
			end;
			local function Protocol(kod_projektu)
				local interwikimap=wiki_interwiki_modul.interwikimap;
				local url=interwikimap[kod_projektu];
				if(not url)then return "";end;
				return mw.ustring.match(url,"^([^/]*)//");
			end;
			local czy_parametry=parametry_modul.CzyTak(parametry);
			local nazwy_np_modul=require("Module:Nazwy/Np");
			local nazwy_modul=require("Module:Nazwy");
			local nazwaprzestrzeni2=not czy_pelna_nazwa_strony_prawidlowa and nazwy_modul["NAZWAPRZESTRZENI"](strona_parent) or nazwaprzestrzeni;
			local czy_specjalna=(nazwaprzestrzeni==nazwy_np_modul.Special);
			strona_parent2,_=mw.ustring.gsub(strona_parent2,"[%s_]+","_");
			if((projekt)and(czy_parametry)and(czy_specjalna))then
				strona_parent=mw.ustring.gsub(strona_parent,"[%s_]+","_");
				wartosc_start="["..Protocol(kod_projektu).."//"..kod_jezyka.."."..projekt..".org/w/index.php?title="..strona_parent2..(czy_parametry and "&"..mw.text.encode(parametry) or "")..(czy_naglowek and ("#"..naglowek) or "")..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
			elseif((not projekty_nie_en)and(czy_parametry)and(czy_specjalna))then
				local techniczne_modul=require("Module:Techniczne");
				local wiki_nie_jezykowe=wiki_interprojekty_modul.pozajezykoweprojektysiostrzane[kod_projektu];
    			local serwer=mw.ustring.match(wiki_nie_jezykowe,"^([^/]*//[^/]*)")
				wartosc_start="["..serwer.."/w/index.php?title="..strona_parent2..(czy_parametry and "&"..mw.text.encode(parametry) or "")..(czy_naglowek and ("#"..naglowek) or "")..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
			elseif(projekt)then
				wartosc_start="["..Protocol(kod_projektu).."//"..kod_jezyka.."."..projekt..".org/wiki/"..mw.ustring.gsub(strona_parent2,"[_%s]+","_")..(czy_parametry and "?"..mw.text.encode(parametry) or "")..(czy_naglowek and ("#"..naglowek) or "")..(parametry_modul.CzyTak(nazwa)and " "..nazwa or "").."]"..(czy_po and po or "");
			elseif(not projekty_nie_en)then
				local wiki_nie_jezykowe=wiki_interprojekty_modul.pozajezykoweprojektysiostrzane[kod_projektu];
	            local strona_parent2,_=mw.ustring.gsub(strona_parent2,"[_%s]+","_");
	            strona_parent2=mw.ustring.gsub(strona_parent2,"[%%]","%%%%");
				wartosc_start="["..mw.ustring.gsub(wiki_nie_jezykowe,"$1",strona_parent2)..(czy_parametry and "?"..mw.text.encode(parametry) or "")..(czy_naglowek and ("#"..naglowek) or "")..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
			else
		    	wartosc_start=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") 
    			or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or "")))
    		..strona_parent2..(czy_parametry and ("?"..parametry) or "")..(czy_naglowek and ("#"..naglowek) or "");
    		
        		wartosc_start="["..tostring(mw.uri.fullUrl(wartosc_start,""))..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
        	end;
		end;
		return wartosc_start,kod_jezyka,kod_projektu,strona_parent2,czy_naglowek;
	else
		local parametry_modul=require("Module:Parametry");
		local czy_nazwa=parametry_modul.CzyTak(nazwa);
		local czy_po=parametry_modul.CzyTak(po);
		strona_parent,_=mw.ustring.gsub(strona_parent,"[%s_]+","_");
		wartosc_start="["..strona_parent..(parametry_modul.CzyTak(parametry) and "?"..parametry or "")
		                                ..(parametry_modul.CzyTak(naglowek) and "#"..naglowek or "")
		                                ..(czy_nazwa and (" "..nazwa) or "").."]"..(czy_po and po or "");
		return wartosc_start,nil,nil,strona_parent,naglowek;
	end;
end;
function p.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,nazwa,po)
	local parametry_modul=require("Module:Parametry");
	local wartosc="[[:"..(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") 
    			or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or "")))
    		..strona..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or "")..(parametry_modul.CzyTak(nazwa) and ("|"..nazwa) or "").."]]"
    return wartosc;
end;
function p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona,naglowek,czy_url)
	local wiki_modul=require("Module:Wiki")
	
	local class=wiki_modul.CzyIstniejeStronaDanejWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["strona"]=strona,["nagłówek"]=naglowek,["url"]=czy_url,};
	local nazwy_modul=require("Module:Nazwy");
    local przetworzony_link="<span class=\""..class.." link\">"..link.."</span>";
    return przetworzony_link;
end;
function p.Link(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,bez_znacznikow,czy_wewnetrzny_z_fullurl,parametry,czy_url,czy_ogolne,wyswietl,dyskusja)
	local parametry_modul=require("Module:Parametry");
    local czy_wewnetrzny_z_fullurl=parametry_modul.CzyTak(czy_wewnetrzny_z_fullurl);
    local parametry=czy_wewnetrzny_z_fullurl and parametry or nil;
    local linki_modul=require("Module:Linki");
    
    local html_modul=require("Module:Html");
	strona_parent=html_modul["TransformacjaKoduZnakuDoZnakuŁancucha"](strona_parent);
    local wartosc_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek=linki_modul["TwórzLink"](klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,czy_wewnetrzny_z_fullurl,parametry,czy_url,czy_ogolne,wyswietl,dyskusja);

	if(parametry_modul.CzyTak(bez_znacznikow))then return wartosc_parent;end;
	
	return p.LinkWikidane(wartosc_parent,nil,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,czy_url);
end;
p["Link wewnętrzny"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
	local linki_modul=require("Module:Linki");
	
	local klucz_projektu_parent=args["klucz projektu"];
	local kod_jezyka_parent=args["kod języka"];
    local kod_projektu_parent=args["kod projektu"];
    local strona_parent=args["strona"] or "_";
    local nazwa=args["nazwa"];
    local po=args["po"];
    local naglowek=args["nagłówek"];
    local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
    local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
    if(not bez_przetwarzania)then
    	return linki_modul.Link(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,bez_znacznikow);
    else
    	local link=linki_modul.TworzLinkBezPrzetwarzania(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po)
    	if(not bez_znacznikow)then
    		return p.LinkWikidane(link,klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nil);
    	else
    		return link;
    	end;
    end;
end;
p["LinkPełnyURL"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
	
	local klucz_projektu_parent;
	local kod_jezyka_parent;
    local kod_projektu_parent;
    local przestrzen;
    local strona_parent=args["strona"] or "_";
    local parametry;
    local sprawdz_modul=require("Module:Sprawdź");
    local _;
    local czy_url=sprawdz_modul["SprawdźURL"](strona_parent);
    local parametry;local naglowek;local nazwa;local po;local bez_znacznikow;
    if(not czy_url)then
    	local przestrzen=args["miano przestrzeni nazw"] or args["przestrzeń"];
    	strona_parent=parametry_modul["CzyTakCiąg"](przestrzen) and przestrzen..":"..strona_parent or strona_parent;
    	parametry=args["parametry"];
    	naglowek=args["nagłówek"];
    	nazwa=args["nazwa"];
    	parametry=args["parametry"];
    	klucz_projektu_parent=args["klucz projektu"];
		kod_jezyka_parent=args["kod języka"];
    	kod_projektu_parent=args["kod projektu"];
    	po=args["po"];
    	bez_znacznikow=args["bez znaczników"];
    	local bez_przetwarzania=args["bez przetwarzania"];
    	if(parametry_modul.CzyTak(bez_przetwarzania))then
    		local bez_znacznikow=parametry_modul.CzyTak(args["bez znacznikow"]);
    		local wartosc=(parametry_modul.CzyTak(klucz_projektu)and (klucz_projektu..":") 
    			or ((parametry_modul.CzyTak(kod_jezyka)and (kod_jezyka..":") or "")..(parametry_modul.CzyTak(kod_projektu)and (kod_projektu..":") or "")))
    		..strona_parent..((parametry_modul.CzyTak(parametry))and ("?"..parametry) or "")..(parametry_modul.CzyTak(naglowek) and ("#"..naglowek) or "")
    		;
    		local link= "["..tostring(mw.uri.fullUrl(wartosc,""))..(parametry_modul.CzyTak(nazwa) and (" "..nazwa) or "").."]";
    		if not bez_znacznikow then
    			return p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona_parent,naglowek,czy_url);
    		else
    			return link;
    		end;
    	end;
    else
    	nazwa=args["nazwa"];
    	local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
    	if(bez_przetwarzania)then
    		local nazwa=args["nazwa"];
    		local link="["..strona_parent..(parametry_modul.CzyTak(nazwa) and (" "..nazwa) or "").."]";
    		local bez_znacznikow=parametry_modul.CzyTak(args["bez znacznikow"]);
    		if not bez_znacznikow then
    			return p.LinkWikidane(link,nil,nil,nil,strona_parent,nil,czy_url);
    		else
    			return link;
    		end;
    	end;
    	
    	local function SerwerWiki(serwer)
    		local kod_jezyka2,kod_specjalny_projektu=mw.ustring.match(serwer,"^(%w+)%.(%w+)%.org");
    		local interwikisiostrzaneangielskie=mw.loadData("Module:Wiki/interwiki").interwikisiostrzaneangielskie;
    		local kod_projektu=interwikisiostrzaneangielskie[kod_specjalny_projektu];
    		local czy_jezyk_projektu=mw.language.isKnownLanguageTag(kod_jezyka2);
    		if(not czy_jezyk_projektu or not kod_projektu)then return;end;
    		return kod_jezyka2,kod_projektu;
    	end;
    	local techniczne_modul=require("Module:Techniczne");
    	local strona_parent1=techniczne_modul["UrlBezProtokołu"](strona_parent);
    	local serwer,strona_parent2,parametry2=mw.ustring.match(strona_parent1,"^//([%w_%.]+)/wiki/([^%?#]*)(.*)$");
    	if(not serwer and not strona_parent2 and not parametry2)then
    		local url="//([%w_%.]+)"..techniczne_modul.TransformacjaWzoru("/w/index.php");
    	    local serwer,parametry2=mw.ustring.match(strona_parent1,"^"..url.."([%?#].*)$");
    	    if(serwer and parametry2)then

    	    	local naglowek2=mw.ustring.match(parametry2,"^#([^%?]*%?)$") 
    	    	                       or mw.ustring.match(parametry2,"^#([^%?]*)")
    	    	                       or mw.ustring.match(parametry2,"#([^%?&]*%?)$") 
    	    	                       or mw.ustring.match(parametry2,"#([^%?&]*)");
    	    	                       
    	    	parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*%?)$","");
    	    	parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*)","");
    	        parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*%?)$","");
    	    	parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*)","");
    	    	
    	    	parametry2,_=mw.ustring.gsub(parametry2,"^(%?)","");
                
    	    	local strona_parent2=mw.ustring.match(parametry2,"%s*&?%s*title%s*=%s*([^&]*)%s*");

    	    	if(strona_parent2)then
    	    		local kod_jezyka2,kod_projektu2=SerwerWiki(serwer);
    	    		if(kod_jezyka2 and kod_projektu2)then
    	    			local parametry2a;
    	    			parametry2,_=mw.ustring.gsub(parametry2,"%s*&?%s*title%s*=%s*"..techniczne_modul.TransformacjaWzoru(strona_parent2).."&?","");
    	    			strona_parent=strona_parent2;
    	    			naglowek=naglowek2;
    	    			parametry=(parametry_modul.CzyTak(parametry2))and parametry2 or args["parametry"];
    	    			kod_jezyka_parent=kod_jezyka2;
    	    	        kod_projektu_parent=kod_projektu2;
    	    			czy_url=false;
    	    		else
    	    			local wiki_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
    	    			local pozajezykoweprojektysiostrzane=wiki_interprojekty_modul.pozajezykoweprojektysiostrzane;
    	    			for kod, url in pairs(pozajezykoweprojektysiostrzane)do
    	    				local adres=techniczne_modul["UrlBezProtokołu"](url);
    	    				local serwer_portalu=mw.ustring.match(adres,"^//([^/]*)");
    	    				if(adres and serwer_portalu)then
    	    					if(serwer_portalu==serwer)then
    	    						 kod_jezyka_parent="en";
    	    						 kod_projektu_parent=kod;
    	    						 local parametry2a;
    	    						 parametry2,_=mw.ustring.gsub(parametry2,"%s*&?%s*title%s*=%s*"..techniczne_modul.TransformacjaWzoru(strona_parent2).."&?","");
    	    						 strona_parent=strona_parent2;
    	    						 naglowek=naglowek2;
    	    						 parametry=(parametry_modul.CzyTak(parametry2))and parametry2 or args["parametry"];
    	    						 czy_url=false;
    	    						 break;
    	    					end;
    	    				end;
    	    			end;
    	    		end;
    	    	end;
    	     else
    	     	local serwer,parametry2=mw.ustring.match(strona_parent,"^(.+)([%?#].*)$");
    	     	if(serwer and parametry2)then
    	        	naglowek2=mw.ustring.match(parametry2,"^#([^%?]*%?)$") 
    	    	                       or mw.ustring.match(parametry2,"^#([^%?]*)")
    	    	                       or mw.ustring.match(parametry2,"#([^%?&]*%?)$") 
    	    	                       or mw.ustring.match(parametry2,"#([^%?&]*)");
    	    	                       
    	    		local parametry2,_=mw.ustring.gsub(parametry2,"#([^%?]*%?)$","");
    	    		parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*)","");
    	        	parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*%?)$","");
    	    		parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*)","");
    	    		parametry2,_=mw.ustring.gsub(parametry2,"^(%?)","");
    	    		
    	    		naglowek=parametry_modul.CzyTak(naglowek2) and naglowek2 or args["naglowek"];
    	    		parametry=parametry_modul.CzyTak(parametry2) and parametry2 or args["parametry"];
    	    	else
    	    		serwer=strona_parent;
    	    		naglowek=args["nagłówek"];
    	    		parametry=args["parametry"];
    	     	end;
    	    	strona_parent=serwer or strona_parent;
	    	 end;
    	else
    		local kod_jezyka2,kod_projektu2=SerwerWiki(serwer);
    		if(kod_jezyka2 and kod_projektu2)then
    	    	
    	    	local naglowek2=mw.ustring.match(parametry2,"^#([^%?]*%?)$") 
    	    	                       or mw.ustring.match(parametry2,"^#([^%?]*)")
    	    	                       or mw.ustring.match(parametry2,"#([^%?&]*%?)$") 
    	    	                       or mw.ustring.match(parametry2,"#([^%?&]*)");
    	    	                       
    	    	parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*%?)$","");
    	    	parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*)","");
    	        parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*%?)$","");
    	    	parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*)","");
    	        parametry2,_=mw.ustring.gsub(parametry2,"^(%?)","");
    	        
    	    	parametry2=mw.ustring.gsub(parametry2,"^%?","");
    	    	
	    	    parametry=(parametry_modul.CzyTak(parametry2))and parametry2 or args["parametry"];
	    	    naglowek=(parametry_modul.CzyTak(naglowek2))and naglowek2 or args["nagłówek"];
	    	    
    	    	strona_parent=strona_parent2;
    	    	kod_jezyka_parent=kod_jezyka2;
    	    	kod_projektu_parent=kod_projektu2;
    	    	czy_url=false;
    	    else
    	    	local wiki_interprojekty_modul=mw.loadData("Module:Wiki/interprojekty");
    	    	local pozajezykoweprojektysiostrzane=wiki_interprojekty_modul.pozajezykoweprojektysiostrzane;
    	    	for kod, url in pairs(pozajezykoweprojektysiostrzane)do
    	    		local adres=techniczne_modul["UrlBezProtokołu"](url);
    	    		local serwer_portalu=mw.ustring.match(adres,"^//([^/]*)");
    	    		if(adres and serwer_portalu)then
    	    			if(serwer_portalu==serwer)then
    	    				kod_jezyka_parent="en";
    	    				kod_projektu_parent=kod;
    	    				local url_wzor=mw.ustring.gsub(adres,"$1","(.*)")
    	    				strona_parent=mw.ustring.match(strona_parent1,"^"..url_wzor.."$");
    	    				local strona_parent2;
    	    				strona_parent2,parametry2=mw.ustring.match(strona_parent,"^([^%?#]*)(.*)$");
    	    				
    	    				local naglowek2=mw.ustring.match(parametry2,"^#([^%?]*%?)$") 
    	    	                       or mw.ustring.match(parametry2,"^#([^%?]*)")
    	    	                       or mw.ustring.match(parametry2,"#([^%?&]*%?)$") 
    	    	                       or mw.ustring.match(parametry2,"#([^%?&]*)");
    	    	                       
    	    				parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*%?)$","");
    	    				parametry2,_=mw.ustring.gsub(parametry2,"^#([^%?]*)","");
    	        			parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*%?)$","");
    	    				parametry2,_=mw.ustring.gsub(parametry2,"#([^%?&]*)","");
    	    				parametry2,_=mw.ustring.gsub(parametry2,"^(%?)","");
    	    				parametry2=mw.ustring.gsub(parametry2,"^%?","");
    	    			        	    			    
	    	                parametry=(parametry_modul.CzyTak(parametry2))and parametry2 or args["parametry"];
	    	                naglowek=(parametry_modul.CzyTak(naglowek2))and naglowek2 or args["nagłówek"];
    	    			    
    	    			    
	    	              	strona_parent=strona_parent2 or strona_parent;
    	    				czy_url=false;
    	    				break;
    	    			end;
    	    		end;
    	    	end;
    	    end;
    	end;
    end;
    local linki_modul=require("Module:Linki");
    return linki_modul.Link(klucz_projektu_parent,kod_jezyka_parent,kod_projektu_parent,strona_parent,naglowek,nazwa,po,bez_znacznikow,true,parametry,czy_url);
end;
p["LinkOgólne"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=frame and ((frame.getParent and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
	local miano_przestrzeni_nazw=args["miano przestrzeni nazw"] or args["przestrzeń"] or args["m"];
	local dyskusja=args["dyskusja"] or args["d"];
	local klucz_projektu=args["klucz projektu"] or args["k"];
	local kod_jezyka=args["kod języka"] or args["kj"];
	local kod_projektu=args["kod projektu"] or args["kp"];
	local bez_znacznikow=parametry_modul.CzyTak(args["bez znaczników"]);
	local wyswietl_miano_przestrzeni_nazw=args["wyświetl miano przestrzeni nazw"] or args["wyświetl"] or args["w"];
	local strona=args[1] or "_";
	local czy_niepusta_prze=parametry_modul["CzyTakCiąg"](miano_przestrzeni_nazw);
	local strona2=(czy_niepusta_prze and not mw.ustring.match(strona,"^%s*#")) and miano_przestrzeni_nazw..":"..strona or strona;
	
	local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]);
	
	local function NpStrona()
		if(mw.ustring.match(strona,"^[%s_:]*$"))then return nil;end;
		if(not parametry_modul.CzyTak(args["nazwa co nie strona"]))then
			
			if(not bez_przetwarzania and parametry_modul.CzyTak(wyswietl_miano_przestrzeni_nazw) and czy_niepusta_prze)then
				local wiki_modul=require("Module:Wiki");
				local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
				local nazwy_modul=require("Module:Nazwy");
				local prze;
				if(czy_biezaca)then
					prze=nazwy_modul.Np{nazwa=miano_przestrzeni_nazw,dyskusja=dyskusja,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
				else
					prze=nazwy_modul.NpDane{nazwa=miano_przestrzeni_nazw,["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,dyskusja=dyskusja,["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
				end;
				local skrot=args["skrót nazwy przestrzeni nazw"] or args["skrót"] or args["s"];
				local czy_skrot;
				if prze then
					local czy_niepusty_skrot=parametry_modul.CzyTak(skrot);
					if czy_niepusty_skrot then
						local tabnamespaces=mw.site.namespaces[prze];
						local skroty=tabnamespaces.aliases;
						for _,name in pairs(skroty)do
							if(name==skrot)then
					 			czy_skrot=true;
					 			break;
							end;
				    	end;
					end;
				end;
				local czy_niepusta_prze=parametry_modul["CzyTakCiąg"](prze);
				return czy_niepusta_prze and (((czy_skrot)and skrot or prze)..":"..strona) or strona;
			else
				return strona;
			end;
		else
			return nil;
		end;
	end;
	local nazwa=args[2] or NpStrona();
	local po=args["po"] or args["p"];
	local linki_modul=require("Module:Linki");
	
	if(not bez_przetwarzania)then
		return linki_modul.Link(klucz_projektu,kod_jezyka,kod_projektu,strona2,nil,nazwa,po,bez_znacznikow,false,nil,nil,true,wyswietl_miano_przestrzeni_nazw,dyskusja);
	else
	   local link=linki_modul.TworzLinkBezPrzetwarzania(klucz_projektu,kod_jezyka,kod_projektu,strona2,nil,nazwa,po);
	   if(not bez_znacznikow)then
			return p.LinkWikidane(link,klucz_projektu,kod_jezyka,kod_projektu,strona2,nil,nil);
		else
			return link;
		end;
	end;
end;
p["Forma wyrażenia po liczbie"]=function(frame)
	local czy=(type(frame)=="table");
	local args=czy and (frame.args or frame) or nil;
	local argument_funkcji_modulu_1=czy and (args[1] or "0") or (frame or "0");
	local argument_funkcji_modulu_2=czy and (args[2] or "zbiorów") or "zbiorów";
	local argument_funkcji_modulu_3=czy and (args[3] or "zbiór") or "zbiór";
	local argument_funkcji_modulu_4=czy and (args[4] or "zbiory") or "zbiory";
	local linki_modul=require("Module:Linki");
	local wartosc=linki_modul["UsuńZnaczniki"](argument_funkcji_modulu_1);
	wartosc=linki_modul["UsuńKategorie"](wartosc);
	wartosc=linki_modul["UsuńWywołaniaPlików"](wartosc);
	wartosc=linki_modul["UsuńInterwiki"](wartosc);
	local liczba=linki_modul["WydzielLiczbę"](wartosc);
	local liczba_number=tonumber(liczba);
	if(not liczba_number)then return "(błąd)";end;
	if(liczba_number==0)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_2;end;
    if(liczba_number==1)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_3;end;
    if(liczba_number<5)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_4;end;
    if(liczba_number<20)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_2;end;
	local reszta=math.fmod(liczba_number,10);
	if((reszta==0)or(reszta==1))then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_2;end;
    if(reszta<5)then return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_4;end;
    return argument_funkcji_modulu_1.." "..argument_funkcji_modulu_2;
end;
function p.ZamianaKategoriiNaLinki(frame)
	local parametry_modul=require("Module:Parametry");
	local tekst;
	if(type(frame)=="table")then
		local args=frame and ((frame.getParent and (parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or nil;
		tekst=args["tekst"] or args[1];
	else
		tekst=frame;
	end;
	local techniczne_modul=require("Module:Techniczne");
	local nazwy_np_modul=wm.loadData("Module:Nazwy/Np");
	local kategoria_polska=nazwy_np_modul.Category;
	local wzor_kategorii_polskiej=techniczne_modul["WzórDanejPrzestrzeniNazw"](kategoria_polska)
	tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*|%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%1]]");
	tekst=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%1]]");
	tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*|%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%1]]");
	tekst=mw.ustring.gsub(tekst,"%[%[%s*"..wzor_kategorii_polskiej.."%s*:%s*([^|%[%]]+)%s*%]%]","[[:"..kategoria_polska..":%1|%1]]");
	return tekst;
end;
return p;