Moduł:StronicowyParser/Tekst

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.SpreparowanyWikikodStrony(self,nazwa_modulu,dokumentacja,inkludowana,__FUNKCJA,__FUNKCJA2)
   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 and true or 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 and true or 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 and true or 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:KodujStroneTekstuObiektowa(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:SkladajSzablonoweWywolaniaTekstu(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 and true or 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;
   			tekst_artykulu_caly=szablonowe_modul:KodujStroneTekstuObiektowa(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(nazwa_szablonu=="Dokumentacja")then
   					if(szablonowe_modul.CzyModyfikatorySzablonowe(tabela_modyfikatorow,nazwa_szablonu))then
   						local tablica_parametrow_dokumentacja,nazwa_szablonu_wywolania,modyfikatory_wywolania=szablonowe_modul["ParsujWywołanieSzablonu"](szablon);
   						local czy_nie_brak_parametrow=parametry_modul["CzySąElementyTablicy"](tablica_parametrow_dokumentacja);
   						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_dokumentacja[1];
		  	    			local zawartosc=tablica_parametrow_dokumentacja["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 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;
   				else
   					if((opis)and((opis==nazwa_szablonu)or((przekierowanie_opis)and(przekierowanie_opis==nazwa_szablonu))))then 
   						opis=nil;
   						local szablony_magiczne={};
   						local tekst_artykulu_opisu=p.LadujZawartoscStrony(self,przekierowanie_opis or nazwa_szablonu,nil,false,szablony_magiczne,true,nazwa_modulu);
   						return tekst_artykulu_opisu;
   					end;
   				end;
   				if(szablonowe_modul.CzyModyfikatoryInstrukcjiWarunkowychSzablonowych(tabela_modyfikatorow))then
   					return ramka_modul.InstrukcjeWarunkowe(szablon);
   				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:SkladajSzablonoweWywolaniaTekstu(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.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").TransformacjaKlasyZnakowej(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
        	if(self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje==nil)then
         		self.tabela_listy_danych_analizy_ksiazki.problemy.strona_nie_istnieje=0
        	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,"<!--(.-)-->","");
    --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:KodujStroneTekstuObiektowa(tekst_artykulu,nazwa_strony2 or nazwa_strony);
    	end;
    end;
    return tekst_artykulu;
end;
return p;