Moduł:StronicowyParser/Tekst

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
 Dokumentacja modułu [stwórz] [odśwież]
local p={}
function p.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2,__FUNKCJA3,__FUNKCJA4,__FUNKCJA5)
   local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
   local nazwy_modul=require("Module:Nazwy");
   nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu);
   
   if(nazwy_np_modul.Module==nazwa_przestrzeni)then
   	    local techniczne_modul=require("Module:Techniczne");
   		local nazwa_modulu_opisu=techniczne_modul["PełnaNazwaOpisuModułu"](nazwa_modulu);
   		if(nazwa_modulu_opisu~=nazwa_modulu)then
   			local tekst=p.LadujZawartoscStrony(self,nazwa_modulu_opisu,nazwa_modulu,false,nil,dokumentacja);
   			tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
   			return tekst;
   		else
   			local tekst=p.LadujZawartoscStrony(self,nazwa_modulu_opisu,nil,not inkludowana,nil,dokumentacja);
   			tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
   			return tekst;
   		end;
   elseif(nazwy_np_modul.Template~=nazwa_przestrzeni)then
   	   local tekst=p.LadujZawartoscStrony(self,nazwa_modulu,nil,not inkludowana,nil,dokumentacja);
   	   tekst=__FUNKCJA and __FUNKCJA(tekst,nazwa_modulu,nil,dokumentacja,true) or tekst;
   	   return tekst;
   elseif(nazwy_np_modul.Template==nazwa_przestrzeni)then
   	   if(mw.ustring.match(nazwa_modulu,"^[^:]+:(.*/opis)%s*$"))then
   			local szablony_magiczne={};
   			local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modulu,nil,not inkludowana,szablony_magiczne,true);
   			if(not tekst_artykulu_caly)then return;end;
   			local szablonowe_modul=require("Module:Szablonowe");
   			local ramka_modul=require("Module:Ramka");
   			local tablica_obiektow_strony_dany_modul=((dokumentacja)and {} or nil);
   			tekst_artykulu_caly=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,nil,function(szablon,obiekt,kod)
   				local nazwa_szablonu,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
   				if(szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))then
   					return ramka_modul.InstrukcjeWarunkowe(szablon);
   				end;
   			end);
   			if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)))then
   				tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul);
   			end;
   			tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,false) or tekst_artykulu_caly;
   			return tekst_artykulu_caly;
   		else
   			local szablony_magiczne={};
   			local tekst_artykulu_caly=p.LadujZawartoscStrony(self,nazwa_modulu,nil,not inkludowana,szablony_magiczne,true);
   			if(not tekst_artykulu_caly)then return;end;
   			local szablonowe_modul=require("Module:Szablonowe");
   			local parametry_modul=require("Module:Parametry");
   			local ramka_modul=require("Module:Ramka");
   			local tablica_obiektow_strony_dany_modul=((dokumentacja)and {} or nil);
   			local opis=nazwa_modulu.."/opis";
   			local przekierowanie_opis=nil;
   			local techniczne_modul=require("Module:Techniczne");
   			local liczba_istniejacych_zbiorow,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory{[1]=opis,};
   			if(liczba_istniejacych_zbiorow>0)then
   				przekierowanie_opis=techniczne_modul.PrzekierowanieDoStrony(opis);
   			else
   				opis=nil;
   			end;
   			----
    		local tablica_danych_parametrow_szablonu_strony=__FUNKCJA3 and __FUNKCJA3(nazwa_modulu) or nil;
			----
			local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
			local techniczne_modul=require("Module:Techniczne");
			local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
   			tekst_artykulu_caly=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,nil,function(szablon,obiekt,kod)
   				if(obiekt=="SZABLON")then
   					local tablica_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow;
   					if((__FUNKCJA4)or(__FUNKCJA5))then
   						tablica_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,
   							function(nazwa_szablonu)
   								return __FUNKCJA4 and __FUNKCJA4(nazwa_szablonu,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nil;
   							end,
   							function(nazwa_szablonu,tabela_modyfikatorow)
   								return __FUNKCJA5 and __FUNKCJA5(nazwa_szablonu,tabela_modyfikatorow,nazwa_modulu,tablica_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony) or nil;
   							end,tablica_danych_parametrow_szablonu_strony,kod);
   					else
   						 nazwa_szablonu,tabela_modyfikatorow=szablonowe_modul["NazwaSzablonuWywołania"](szablon);
   					end;
   					if(stronicowyparser_obiekty_modul.szablony_dokumentacji[nazwa_szablonu])then
   						if(szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu))then
   							if((not __FUNKCJA4)and(not __FUNKCJA5))then
   								tablica_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow=szablonowe_modul["ParsowanieWywołaniaSzablonu"](szablon,nil,nil,nil,tablica_danych_parametrow_szablonu_strony,kod);
   							end;
   							local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tablica_parametrow_szablonu);
   							if(not czy_nie_brak_parametrow)then
   								 local nazwa_strony_opisu=nazwa_modulu.."/opis";
   								 opis=nil;
   								 local szablony_magiczne={};
   								 local tekst_artykulu_opisu_caly=p.LadujZawartoscStrony(self,przekierowanie_opis or nazwa_strony_opisu,nil,false,szablony_magiczne,true);
   								 return tekst_artykulu_opisu_caly;
   							else
   								local nazwa_strony_opisu=tablica_parametrow_szablonu[1];
		  	    				local zawartosc=tablica_parametrow_szablonu["zawartość"];
		  	    				----
		  	    				local czy_nazwa_strony_opisu=parametry_modul.CzyTak(nazwa_strony_opisu);
		  	    				local czy_zawartosc=parametry_modul.CzyTak(zawartosc);
		  	    				if((czy_nazwa_strony_opisu)and(not czy_zawartosc))then
		  	    					local opis_tak=((opis) and (nazwa_strony_opisu==opis));
		  	    					local nazwa_strony_opisu_czy_przekierowanie=opis_tak and (przekierowanie_opis or nazwa_strony_opisu) or (techniczne_modul.PrzekierowanieDoStrony(nazwa_strony_opisu) or nazwa_strony_opisu);
		  	    					if((opis)and((opis_tak)or((przekierowanie_opis)and(nazwa_strony_opisu==przekierowanie_opis))))then opis=nil;end;
		  	    					----
		  	    					local szablony_magiczne={};
		  	  						local tekst_artykulu_opisu=p.LadujZawartoscStrony(self,nazwa_strony_opisu_czy_przekierowanie,nil,false,szablony_magiczne,true,nazwa_modulu);
		  	  						return tekst_artykulu_opisu;
		  	    				elseif(czy_zawartosc)then
						    		return zawartosc;
						    	else
						    		local nazwa_strony_opisu=nazwa_modulu.."/opis";
						    		opis=nil;
   									local szablony_magiczne={};
   									local tekst_artykulu_opisu_caly=p.LadujZawartoscStrony(self,przekierowanie_opis or nazwa_strony_opisu,nil,false,szablony_magiczne,true);
   									return tekst_artykulu_opisu_caly;
		  	    				end;
							end;
   						end;
   					elseif(szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow,nazwa_szablonu))then
   						if(opis)then
   							local pelna_nazwa_szablonu=szablonowe_modul["PełnaNazwaStronyNazwySzablonu"](nazwa_szablonu);
   							if((opis==pelna_nazwa_szablonu)or((przekierowanie_opis)and(przekierowanie_opis==pelna_nazwa_szablonu)))then 
	   							opis=nil;
   								local szablony_magiczne={};
   								local tekst_artykulu_opisu=p.LadujZawartoscStrony(self,przekierowanie_opis or pelna_nazwa_szablonu,nil,false,szablony_magiczne,true,nazwa_modulu);
   								return tekst_artykulu_opisu;
   							end;
   						end;
   					end;
   					if(szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))then
   						return ramka_modul.InstrukcjeWarunkowe(szablon);
   					end;
   				end;
   			end,nil,nil,function(tekst_artykulu,nazwa_modulu,tablica_obiektow_strony_dany_modul)
   				if(opis)then
   					local szablony_magiczne={};
   					opis=przekierowanie_opis or opis;
   					local tekst_artykulu_opisu=p.LadujZawartoscStrony(self,opis,nil,false,szablony_magiczne,true,nazwa_modulu);
   					return tekst_artykulu_opisu;
   				end;
   			end);
   			if(dokumentacja and ((not __FUNKCJA2) and true or __FUNKCJA2(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)))then
   				tekst_artykulu_caly=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul);
   			end;
   			tekst_artykulu_caly=__FUNKCJA and __FUNKCJA(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul,dokumentacja,false) or tekst_artykulu_caly;
   			return tekst_artykulu_caly;
		end;
	end;
end;
function p.RekurencyjnyZakodowanoSpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,inkludowana,__FUNKCJA)
	local tablica_obiektow_strony_dany_modul_uzyskany=nil;
	local tablica_parametrow_szablonu_strony={};
	local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
	local szablonowe_modul=require("Module:Szablonowe");
	local techniczne_modul=require("Module:techniczne");
	local nazwy_modul=require("Module:Nazwy");
	local parametry_modul=require("Module:Parametry");
 	local tekst_rozwiniety_calego_artykulu=p.SpreparowanyWikikodStrony(self,nazwa_modulu_aktualna_czy_biezaca,true,inkludowana,function(tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_obiektow_strony_dany_modul,dokumentacja,czy_niezakodowana)
 				tablica_obiektow_strony_dany_modul=tablica_obiektow_strony_dany_modul or {};
 				tablica_obiektow_strony_dany_modul_uzyskany=tablica_obiektow_strony_dany_modul;
 				if(not tekst_rozwiniety_calego_artykulu)then return;end;
 				local __self=szablonowe_modul:TablicaTransportuSzablonowe();
 				--if((__self)and(tablica_obiektow_strony_dany_modul)and(not czy_niezakodowana))then
 					--if(not __self.tablica_obiektow_strony_dany_modul)then __self.tablica_obiektow_strony_dany_modul={};end;
 					--__self.tablica_obiektow_strony_dany_modul[nazwa_modulu_aktualna_czy_biezaca]=tablica_obiektow_strony_dany_modul;
 				--end;
 				tekst_rozwiniety_calego_artykulu=tekst_rozwiniety_calego_artykulu and szablonowe_modul[czy_niezakodowana and "RozwijanieNiezakodowanegoSzablonu" or "RozwijanieZakodowanegoSzablonu"](__self,tekst_rozwiniety_calego_artykulu,nazwa_modulu_aktualna_czy_biezaca,tablica_obiektow_strony_dany_modul,tablica_parametrow_szablonu_strony,
 				stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu,
 				stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu,
 				function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
    	    		local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tabela_parametrow_szablonu);
    	    		if(czy_nie_brak_parametrow)then return true;end;
    			end,
				function(pelna_nazwa_szablonu,tabela_parametrow_szablonu,tabela_modyfikatorow)
    				local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](pelna_nazwa_szablonu);
    				if(nazwa_artykulu=="")then
    					return true;
    				end;
    				local strona=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu);
    				if(strona)then
    					   local nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"](strona);
    					   if(nazwa_artykulu=="")then
    							return true;
    					   end;	
    				end;
				end,
				__FUNKCJA) or nil;
				return tekst_rozwiniety_calego_artykulu;
 		end, function(tekst_artykulu_caly,nazwa_modulu,tablica_obiektow_strony_dany_modul)
 			return nil;
 		end,function(nazwa_modulu)
    		return tablica_parametrow_szablonu_strony;
 		end,stronicowyparser_potrzebne_modul.DekodowanieNazwySzablonu,
		stronicowyparser_potrzebne_modul.RozwijanieZakodowanejNazwySzablonu);
 	----
 	return tekst_rozwiniety_calego_artykulu,tablica_obiektow_strony_dany_modul_uzyskany,tablica_parametrow_szablonu_strony;
end;
function p.LadujZawartoscStrony(self,nazwa_strony,nazwa_strony2,czy_noinclude,szablony_magiczne,dokumentacja,nazwa_modulu_szablonu_opisu,szablon_nie_opis)
   local czy_nazwa_strony_z_tylko_odstepami_lub_pusta=mw.ustring.match(nazwa_strony,"^%s*$");
   local uchwyt_strony;
   local tekst_artykulu;
   local nazwa_strony_bez_kodow_html;
   if(not czy_nazwa_strony_z_tylko_odstepami_lub_pusta)then
   	  nazwa_strony_bez_kodow_html=require("Module:Html")["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](nazwa_strony);
      
      uchwyt_strony = mw.title.makeTitle('', nazwa_strony_bez_kodow_html);
      tekst_artykulu = uchwyt_strony and uchwyt_strony:getContent() or nil;
      local czy_istnieje = tekst_artykulu or (uchwyt_strony and uchwyt_strony.exists or nil);
      
      if(not czy_istnieje)then 
      	if(self and self.tabela_listy_danych_analizy_ksiazki)then
      		local stronicowyparser_zbieraniedanychstron_modul=require("Module:StronicowyParser/ZbieranieDanychStron");
        	if(not stronicowyparser_zbieraniedanychstron_modul.CzyJestTakiProblemowyElement(self,"strona nie istnieje"))then
         		stronicowyparser_zbieraniedanychstron_modul.UstawTakiProblemowyElement(self,"strona nie istnieje");
        	end;
        end;
        return nil;
      else
    	local czy_nie_istnieje_zawartosc=((uchwyt_strony)and(not tekst_artykulu));
    	if(czy_nie_istnieje_zawartosc)then
      		return nil;
    	end;
      end;
    else
      return nil;
   end;
    
    if(czy_noinclude)then
		tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->(.-)<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","%1");
    	tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->.-<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","");
    else
    	tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->.-<%s-/%s-[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]%s->","");
    	tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->(.-)<%s-/%s-[Ii][Nn][Cc][Ll][Uu][Dd][Ee][Oo][Nn][Ll][Yy]%s->","%1");
    end;
    tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>(.-)</[Tt][Ee][Mm][Pp][Ll][Aa][Tt][Ee][Dd][Aa][Tt][Aa]>","");
    
    tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"\n[^%S\n]*<!--(.-)-->[^%S\n]*\n","\n");
    tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<!--(.-)-->","");
    --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->.-<%s-/%s-[Nn][Oo][Ww][Ii][Kk][Ii]%s->","");
    --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"<%s-[Pp][Rr][Ee]%s->.-<%s-/%s-[Pp][Rr][Ee]%s->","");
    --tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"(<%s-[mM][aA][tT][hH]%s->.-<%s-/%s-[mM][aA][tT][hH]%s->)",""); 	
    if(szablony_magiczne)then
    	local nazwy_modul=require("Module:Nazwy");
    	szablony_magiczne["{{ROOTPAGENAME}}"]=nazwy_modul["NAZWAKORZENIASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html);
    	szablony_magiczne["{{NAMESPACE}}"]=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html);
    	szablony_magiczne["{{PAGENAME}}"]=nazwy_modul["NAZWASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html);
    	szablony_magiczne["{{FULLPAGENAME}}"]=nazwy_modul["PEŁNANAZWASTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html);
    	szablony_magiczne["{{SUBPAGENAME}}"]=nazwy_modul["NAZWASUBSTRONY"](nazwa_modulu_szablonu_opisu or nazwa_strony_bez_kodow_html);
    end;
    if(szablony_magiczne)then 
    	tekst_artykulu=mw.ustring.gsub(tekst_artykulu,"{{[^{}]+}}",szablony_magiczne);
    	local ramka_modul=require("Module:Ramka");
    	tekst_artykulu=ramka_modul.InstrukcjeWarunkowe(tekst_artykulu);
    end;
    if(not szablon_nie_opis)then
    	if(not dokumentacja)then
    		local szablonowe_modul=require("Module:Szablonowe");
    		tekst_artykulu=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst_artykulu,nazwa_strony2 or nazwa_strony);
    	end;
    end;
    return tekst_artykulu;
end;
return p;