Przejdź do zawartości

Moduł:Specjalne

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [stwórz] [odśwież]
local p={};
local function GranicznieSzereg(wzor,czy_granicznie)
	return (czy_granicznie and "^" or "")..wzor..(czy_granicznie and "$" or "");
end;
function p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(szablon)
	local specjalne_modul=mw.loadData("Module:Specjalne/dane");
    local tab_specjalne_znaki=specjalne_modul.szablony_anulowania_znaczeniowego_tagowego_mediawiki;
    szablon=mw.ustring.gsub(szablon,"[<>]",tab_specjalne_znaki);
    return szablon;
end;
p["UsuńŚciśleOkreśloneKategorie"]=function(frame)
   local parametry_modul=require("Module:Parametry");
   local PobierzParametr=parametry_modul.PobierzParametr(frame);
   local tekst=PobierzParametr("tekst") or PobierzParametr(1);
   local kategoria=PobierzParametr("kategoria") or PobierzParametr(2) or "([^%[%]|]*)";
   local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(3);
   
   tekst=mw.ustring.gsub(tekst,GranicznieSzereg("%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*"..kategoria.."%s*%]%]",czy_granicznie),"");
   tekst=mw.ustring.gsub(tekst,GranicznieSzereg("%[%[%s*[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:%s*"..kategoria.."%s*%]%]",czy_granicznie),"");
   tekst=mw.ustring.gsub(tekst,GranicznieSzereg("%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*"..kategoria.."%s*|[^%[%]]*%]%]",czy_granicznie),"");
   tekst=mw.ustring.gsub(tekst,GranicznieSzereg("%[%[%s*[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:%s*"..kategoria.."|[^%[%]]*%s*%]%]",czy_granicznie),"");
   return tekst;
end;
p["UsuńKategorie"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2);
	local category=require("Module:Nazwy").Np{nazwa="Category"};
    local wzorcategory=require("Module:Techniczne")["WzórDanejPrzestrzeniNazw"](category);
    argument_pierwszy=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("%[%[%s*"..wzorcategory.."%s*:[^%[%]]*%]%]",czy_granicznie),"");
    argument_pierwszy=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("%[%[%s*[CC][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%[%]]*%]%]",czy_granicznie),"");
    return argument_pierwszy;
end;
p["UsuńZnaczniki"]=function(frame,jakie,funkcja1,funkcja2)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_ze_znacznikiem=PobierzParametr("tekst") or PobierzParametr(1);
	argument_ze_znacznikiem=funkcja1 and funkcja1(argument_ze_znacznikiem) or argument_ze_znacznikiem;
	if(not jakie)then
    	argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"(</?%s*[^<>]+/?>)","");
    else
    	argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"(</?%s*"..jakie.."%s+[^<>]*/?>)","");
    	argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"(</?%s*"..jakie.."%s*/?>)","");
    end;
    argument_ze_znacznikiem=funkcja2 and funkcja2(argument_ze_znacznikiem) or argument_ze_znacznikiem;
    return argument_ze_znacznikiem;
end;
p["UsuńKomentarze"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_ze_znacznikiem=PobierzParametr("tekst") or PobierzParametr(1);
    argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"<!%-%-.-%-%->","");
    return argument_ze_znacznikiem;
end;
p["UsuńSzablonyStylów"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_ze_znacznikiem=PobierzParametr("tekst") or PobierzParametr(1);
	local html_dane_modul=mw.loadData("Module:Html/dane");
	local szablonowe_modul=require("Module:Szablonowe");
	argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,szablonowe_modul.NormaWzoruKodowaniaTekstu("templatestyles","%w+"),"");
	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("tekst") or PobierzParametr(1);
	local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2);
	local wartosc=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("%[%[[%s_]*[Pp][Ll][Ii][Kk][%s_]*:[^%[%]]*%]%]",czy_granicznie),"");
	wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("%[%[[%s_]*[Ff][Ii][Ll][Ee][%s_]*:[^%[%]]*%]%]",czy_granicznie),"");
	wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("%[%[[%s_]*[Ii][Mm][Aa][Gg][Ee][%s_]*:[^%[%]]*%]%]",czy_granicznie),"");
	wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("%[%[[%s_]*[Gg][Rr][Aa][Ff][Ii][Kk][Aa][%s_]*:[^%[%]]*%]%]",czy_granicznie),"");
	return wartosc;
end;
p["CzyPlik"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	return mw.ustring.match(argument_pierwszy,"^%[%[[%s_]*([Pp][Ll][Ii][Kk])[%s_]*:[^%[%]]*%]%]$") 
	        or mw.ustring.match(argument_pierwszy,"^%[%[[%s_]*([Ff][Ii][Ll][Ee])[%s_]*:[^%[%]]*%]%]$")
	          or mw.ustring.match(argument_pierwszy,"^%[%[[%s_]*([Ii][Mm][Aa][Gg][Ee])[%s_]*:[^%[%]]*%]%]$")
	            or mw.ustring.match(argument_pierwszy,"^%[%[[%s_]*([Gg][Rr][Aa][Ff][Ii][Kk][Aa])[%s_]*:[^%[%]]*%]%]$");
end;
p["UsuńInterwiki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2);
	local pudelko_modul=require("Module:Pudełko");
	----
	local function usun_interwiki(interwiki)
		local wartosc=mw.ustring.match(interwiki,"%[%[[%s_]*([^:]*[^:%s_])[%s_]*:[^%[%]]*%]%]");
		if(wartosc)then
			wartosc=mw.getContentLanguage():lc(wartosc);
			local czy_kod_jezyka_istnieje=mw.language.isKnownLanguageTag(wartosc);
			if(czy_kod_jezyka_istnieje)then
				if(wartosc==pudelko_modul["Kod języka tego projektu"](frame))then
					return interwiki;
				else
					return "";
				end;
			end;
		end;
		return interwiki;
	end;
	---
	return mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("(%[%[[^%[%]]*%]%])",czy_granicznie),function(s)return usun_interwiki(s);end);
end;
p["CzyInterwiki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	local pudelko_modul=require("Module:Pudełko");
	----
	local function czy_interwiki(interwiki)
		local wartosc=mw.ustring.match(interwiki,"^%[%[[%s_]*([^:]*[^:%s_])[%s_]*:[^%[%]]*%]%]$");
		if(wartosc)then
			wartosc=mw.getContentLanguage():lc(wartosc);
			local czy_kod_jezyka_istnieje=mw.language.isKnownLanguageTag(wartosc);
			if(czy_kod_jezyka_istnieje)then
				if(wartosc==pudelko_modul["Kod języka tego projektu"](frame))then
					return nil;
				else
					return "tak";
				end;
			end;
		end;
		return nil;
	end;
	----
	return czy_interwiki(argument_pierwszy);
end;
p["CzyAdresLinkuWewnętrznego"]=function(frame)
	local dwukropek=frame.args[1];
	if(dwukropek~="")then
		return "tak";
	else
		local adres=frame.args[2];
		local kod=mw.ustring.match(adres,"^[:%s_]*([^:%s]+[^:]*):");
		if(kod)then
			kod=mw.getContentLanguage():lc(kod);
			if(mw.language.isKnownLanguageTag(kod))then 
				local pudelko_modul=require("Module:Pudełko");
				if(kod==pudelko_modul["Kod języka tego projektu"]())then return "tak";else return nil;end;
			end;
			local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
			if(wiki_interwiki_modul.interwikimap[kod])then return "tak";end;
			local nazwy_modul=require("Module:Nazwy");
			local przestrzen=nazwy_modul["NAZWAPRZESTRZENI"](adres);
			local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
			if((przestrzen==nazwy_np_modul.File)or(przestrzen==nazwy_np_modul.Category))then return nil;end;
		end;
		return "tak";
	end;
	return nil;
end;
p["CzyLinkWewnętrzny"]=function(szablon)
	local dwukropek,adres=mw.ustring.match(szablon,"^%[%[%s*(:?)%s*([^|]*)");
    return ((p["CzyAdresLinkuWewnętrznego"]{args={[1]=dwukropek,[2]=adres,}})and true or false);
end;
p["ZamieńLinkiWewnętrzneNaTekst"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2);
	local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
	local nazwy_modul=require("Module:Nazwy");
	local pudelko_modul=require("Module:Pudełko");
	local html_modul=require("Module:Html");
	local function LinkiZamienianieNaZawartoscLubNazwe(link,dwukropek,zawartosc,nazwa)
		local prefix=mw.ustring.match(zawartosc,"^[%s_]*([^:]*[^:%s_])[%s_]*:");
		if(prefix)then
			local czy_kod_jezyka_istnieje=mw.language.isKnownLanguageTag(prefix);
			if(czy_kod_jezyka_istnieje)then
				if(#dwukropek>0)then
					return nazwa or html_modul.DecodeHtml(zawartosc,true);
				elseif(prefix==pudelko_modul["Kod języka tego projektu"](frame))then
					return nazwa or html_modul.DecodeHtml(zawartosc,true);
				else
					return link;
				end;
			else
				local nazwa_przestrzeni=nazwy_modul.Np{nazwa=prefix,istnieje="tak",["wynik błędu nietekstowy"]="tak"};
				if(not nazwa_przestrzeni)then return nazwa or zawartosc;end;
				if((nazwa_przestrzeni==nazwy_np_modul.Category)or(nazwa_przestrzeni==nazwy_np_modul.File))then
					if(#dwukropek>0)then
						return nazwa or html_modul.DecodeHtml(zawartosc,true);
					else
						return link;
					end;
				else
					return nazwa or html_modul.DecodeHtml(zawartosc,true);
				end;
			end;
		else
			return nazwa or html_modul.DecodeHtml(zawartosc,true);
		end;
	end;
	-----
	local wartosc=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("(%[%[(:?)/([^/{}|%[%]][^{}|%[%]]-)/+%]%])",czy_granicznie),LinkiZamienianieNaZawartoscLubNazwe);
	wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("(%[%[(:?)/([^/{}|%[%]][^{}|%[%]]-)/+|(..-)%]%])",czy_granicznie),LinkiZamienianieNaZawartoscLubNazwe);
	-----
	wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("(%[%[(:?)([^{}|%[%]]+)%]%])",czy_granicznie),LinkiZamienianieNaZawartoscLubNazwe);
	wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("(%[%[(:?)([^{}|%[%]]+)|(..-)%]%])",czy_granicznie),LinkiZamienianieNaZawartoscLubNazwe);
	----
	return wartosc;
end;
p["ZamieńLinkiZewnętrzneNaTekst"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2);
	
	local function SprawdzanieCzyLinkPozaProjektowyPoprawny(link)
		local strony_modul=require("Module:Strony");
		local czy_link=strony_modul.SprawdzanieURL(link);
		if(czy_link)then
			return true;
		end;
	end;
	local wartosc=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("%[%s*([^%[%]%s]+)%s+([^%[%]]*)%]",czy_granicznie),function(a,b)
		local wynik=SprawdzanieCzyLinkPozaProjektowyPoprawny(a);
		if(wynik)then return b;end;
	end);
	------
	wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("%[%s*([^%[%]%s]-)%s*%]",czy_granicznie),function(a)
		local wynik=SprawdzanieCzyLinkPozaProjektowyPoprawny(a);
		if(wynik)then return a;end;
	end);
	return wartosc;
end;
p["UsuńZnakiSpecjalne"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	local wartosc=argument_pierwszy;
	repeat 
		local ile;
		wartosc,ile=mw.ustring.gsub(wartosc,"'''([^'].-)'''","%1");
		until (ile==0);
	repeat 
		local ile;
		wartosc,ile=mw.ustring.gsub(wartosc,"''([^'].-)''","%1");
	until (ile==0);
	repeat
		local ile1;local ile2;
		wartosc,ile1=mw.ustring.gsub(wartosc,"'''","");
		wartosc,ile2=mw.ustring.gsub(wartosc,"''","");
	until ((ile1==0)and(ile2==0));
	return wartosc;
end;
p["UsuńZbędneBiałeZnaki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	argument_pierwszy=mw.ustring.gsub(argument_pierwszy,"^%s*","");
	argument_pierwszy=mw.ustring.gsub(argument_pierwszy,"%s*$","");
	argument_pierwszy=mw.ustring.gsub(argument_pierwszy,"%s+"," ");
	return argument_pierwszy;
end;
p["WydzielLiczbę"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1);
	---
	local wartosc=p["WydzielZwykłyTekst"](argument_pierwszy);
	----
	local ile;
	wartosc,ile=mw.ustring.gsub(wartosc,"^([^%d]-)([%+%-]?%s*%d+[%d%s]-)%s*$","%2");
	if(ile==0)then return nil;end;
	wartosc=mw.ustring.gsub(wartosc,"%s+","");
	return tonumber(wartosc);
end;
p["PrzetwórzNagłówek"]=function(adres,czy_naglowek_linku,czy_nie_rozwin_adres)
	local Znaczniki,SzablonyStylowe,ZnakiSpecjalne;
	if(not czy_nie_rozwin_adres)then
		adres,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=p["WydzielZwykłyTekst"]{tekst=adres,["nagłówek"]=true,preprocess=true,};
	else
		adres,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=p["WydzielZwykłyTekst"]{tekst=adres,["nagłówek"]=true,preprocess=false,};
	end;
	local bez_funkcji_naglowka_linku_adres=nil;
	if(czy_naglowek_linku)then
		local tab_element={};
		local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne");
		adres=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(adres,tab_element);
		adres=Znaczniki(adres,"li");
		adres=Znaczniki(adres,"ol");
		adres=Znaczniki(adres,"ul");
		bez_funkcji_naglowka_linku_adres=adres;
		adres=Znaczniki(adres);
		local szablonowe_modul=require("Module:Szablonowe");
		adres=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(adres,nil,tab_element);
		bez_funkcji_naglowka_linku_adres=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(bez_funkcji_naglowka_linku_adres,nil,tab_element);
		bez_funkcji_naglowka_linku_adres=mw.ustring.gsub(bez_funkcji_naglowka_linku_adres,"[%[%]]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end);
		adres=SzablonyStylowe(adres);
		adres=ZnakiSpecjalne(adres);
		local html_modul=require("Module:Html");
		adres=html_modul.DecodeKoduHTMLZnaku(adres);
        adres=html_modul.EncodeSpecjalneZnakiHtml(adres);
		local parametry_modul=require("Module:Parametry");
		adres=parametry_modul["Odstępy"]{[1]=adres,[2]="tak",[3]="tak",};
	end;
	return adres,bez_funkcji_naglowka_linku_adres;
end;
p["WydzielZwykłyTekst"]=function(frame,funkcja1,funkcja2)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local tekst=PobierzParametr("tekst") or PobierzParametr(1);
	local nieklasycznie=PobierzParametr("nieklasycznie") or PobierzParametr(2);
	nieklasycznie=parametry_modul.CzyTak(nieklasycznie);
	
	local preprocess=PobierzParametr("preprocess") or PobierzParametr(3);
	local preprocess=parametry_modul.CzyTak(preprocess);
	
	local kodowanie=PobierzParametr("kodowanie") or PobierzParametr(4);
	local kodowanie=parametry_modul.CzyTak(kodowanie);
	
	local naglowek=PobierzParametr("nagłówek") or PobierzParametr(5);
	local naglowek=parametry_modul.CzyTak(naglowek);
	
	local tablica_analizy_obiektow_strony_dany_modul;
	if(kodowanie)then
		tablica_analizy_obiektow_strony_dany_modul={};
	elseif(nieklasycznie)then
		tablica_analizy_obiektow_strony_dany_modul=PobierzParametr("tablica kodowania") or PobierzParametr(5);
	end;
	local function DwaNawiasyLinkowe(tekst)
    	tekst=p["UsuńKategorie"]{tekst,nieklasycznie,};
    	tekst=p["UsuńWywołaniaPlików"]{tekst,nieklasycznie,};
    	tekst=p["UsuńInterwiki"]{tekst,nieklasycznie,};
    	tekst=p["ZamieńLinkiWewnętrzneNaTekst"]{tekst,nieklasycznie,};
    	return tekst;
	end;
	local function JedenNawiasLinkowe(tekst)
		tekst=p["ZamieńLinkiZewnętrzneNaTekst"]{tekst,nieklasycznie,};
		return tekst;
	end;
	local function Komentarze(tekst)
		tekst=p["UsuńKomentarze"](tekst);
		return tekst;
	end;
	local function SzablonyStylowe(tekst)
		tekst=p["UsuńSzablonyStylów"](tekst);
		return tekst;
	end;
	local function ZnakiSpecjalne(tekst)
		tekst=p["UsuńZnakiSpecjalne"](tekst);
		return tekst;
	end;
	local function Znaczniki(tekst,jakie,__FUNKCJA1,__FUNKCJA2)
		tekst=p["UsuńZnaczniki"](tekst,jakie,__FUNKCJA1,__FUNKCJA2);
		return tekst;
	end;
	local function PreProcessFrame(tekst)
		local frame=mw.getCurrentFrame();
		frame=frame.getParent and frame:getParent() or frame;
		tekst=frame:preprocess(tekst);
		return tekst;
	end;
	if(not nieklasycznie)then
		if(preprocess)then
			tekst=p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(tekst);
			tekst=PreProcessFrame(tekst);
		end;
		tekst=Komentarze(tekst);
		tekst=JedenNawiasLinkowe(tekst);
		tekst=DwaNawiasyLinkowe(tekst);
		if(not naglowek)then
			tekst=SzablonyStylowe(tekst);
			tekst=ZnakiSpecjalne(tekst);
			tekst=Znaczniki(tekst);
		end;
		if(naglowek)then
			return tekst,Znaczniki,SzablonyStylowe,ZnakiSpecjalne;
		end;
		return tekst;
	end;
	local szablonowe_modul=require("Module:Szablonowe");
	if(kodowanie)then
		tekst=Komentarze(tekst);
		tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul);
	end;
	tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul,
        function(szablon,obiekt,kod)
        	if(obiekt=="SZABLON")then
        		local wynik;
        		if(funkcja1)then
        			szablon,wynik=funkcja1(szablon,obiekt,kod);
        		end;
        		if(((not funkcja1) or (szablon))and((not funkcja2) or funkcja2(szablon,obiekt,kod)))then
        			szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul);
        			szablon=p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(szablon);
        			szablon=PreProcessFrame(szablon);
        			szablon=Komentarze(szablon);
        			szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul,
        				nil,nil,
        				function()
        					local numer_szablonu=szablonowe_modul:NumerSzablonuKodowaniaTekstu(nil,tablica_analizy_obiektow_strony_dany_modul);
        					return numer_szablonu;
        				end);
        			szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod)
        				if(obiekt=="LINKW")then
        					szablon=DwaNawiasyLinkowe(szablon)
        					return szablon;
        				elseif(obiekt=="LINKZ")then
        					szablon=JedenNawiasLinkowe(szablon)
        					return szablon;
        				elseif(obiekt=="ATRYBUTY")then
        					if(naglowek)then
        						return nil,true;
        					end;
        					return szablon;
        				elseif(obiekt=="ZNACZNIK")then
        					if(naglowek)then
        						return nil,true;
        					end;
        					szablon=Znaczniki(szablon);
        					return szablon;
        				elseif((obiekt=="NOWIKI")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA")or(obiekt=="QUIZ"))then
        					if(naglowek)then
        						return nil,true;
        					end;
        					szablon=Znaczniki(szablon);
        					return szablon;
        				end;
        				return szablon;
        		   end);
        		end;
        		return szablon,wynik;
        	else
        		if(obiekt=="LINKW")then
        			szablon=DwaNawiasyLinkowe(szablon);
        			return szablon;
        		elseif(obiekt=="LINKZ")then
        			szablon=JedenNawiasLinkowe(szablon);
        			return szablon;
        		elseif(obiekt=="ATRYBUTY")then
        			if(naglowek)then
        				return nil,true;
        			end;
        			return szablon;
        		elseif(obiekt=="ZNACZNIK")then
        			if(naglowek)then
        				return nil,true;
        			end;	
        			szablon=Znaczniki(szablon);
        			return szablon;
        		elseif((obiekt=="NOWIKI")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA")or(obiekt=="QUIZ"))then
        			if(naglowek)then
        				return nil,true;
        			end;
	        		szablon=Znaczniki(szablon);
    	    		return szablon;
        		end;
        	end;
        	return szablon;
     end);
	if(not naglowek)then
		tekst=SzablonyStylowe(tekst);
		tekst=ZnakiSpecjalne(tekst);
	end;
	if(naglowek)then
		return tekst,Znaczniki,SzablonyStylowe,ZnakiSpecjalne;
	else
		return tekst;
	end;
end;
p["OdstępyZmiennychNumerowanychSzablonu"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local argument_pierwszy=PobierzParametr(1);
	local lewy=PobierzParametr("lewy");
	local parametry_modul=require("Module:Parametry");
	local czy_lewy=parametry_modul.CzyTak(lewy);
	if(czy_lewy)then
		return mw.ustring.match(argument_pierwszy,"^%s+") or "";
	else
		return mw.ustring.match(argument_pierwszy,"%s+$") or "";
	end;
end;
return p;