Przejdź do zawartości

Moduł:Brudnopis/Persino/Dymki

Z Wikibooks, biblioteki wolnych podręczników.

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Brudnopis/Persino/Dymki/opis.

local p={};
local function KodOpisDymku(parametr)
	local kod_i_opis={
	------------------------------------------------------------------------------
	--bez zapytania
	------------------------------------------------------------------------------
	["su"]="Strona zawiera adres URL",
	["sun"]="Strona, z nagłówkiem, zawiera adres URL",
	["iw"]="Strona istnieje na tej wiki",
	["inw"]="Strona, z nagłówkiem, istnieje na tej wiki",
	["iwew"]="Strona, istnieje na tej wiki, jako element wikidanych",
	["inwew"]="Strona, z nagłówkiem, istnieje na tej wiki, jako element wikidanych",
	["iew"]="Strona, istnieje, jako element wikidanych",
	["inew"]="Strona, z nagłówkiem, istnieje, jako element wikidanych",
	["niw"]="Strona nie istnieje na tej wiki",
	["ninw"]="Strona, z nagłówkiem, nie istnieje na tej wiki",
	["niew"]="Strona, nie istnieje, jako element wikidanych",
	["ninew"]="Strona, z nagłówkiem, nie istnieje, jako element wikidanych",
	["was"]="Link, z nieaktywnym odnośnikiem, wskazuje na aktualną stronę",
	["wasew"]="Link, z nieaktywnym odnośnikiem, wskazuje na aktualną stronę jako element wikidanych",
	["wash"]="Link, z aktywnym odnośnikiem, wskazuje na aktualną stronę",
	["washew"]="Link, z aktywnym odnośnikiem, wskazuje na aktualną stronę jako element wikidanych",
	["wasn"]="Link, z nagłówkiem, wskazuje na aktualną stronę",
	["wasnew"]="Link, z nagłówkiem, wskazuje na aktualną stronę jako element wikidanych",
	["ipw"]="Link wskazuje na stronę niebędącą elementem wikidanych",
	["inpw"]="Link, z nagłówkiem, wskazuje na stronę niebędącą elementem wikidanych",
	["dwni"]="Link wskazuje na stronę do wiki, która nie istnieje",
	-------------------------------------------------------------------------------
	--z zapytaniem
	-------------------------------------------------------------------------------
	["sup"]="Strona, z zapytaniem, zawiera adres URL",
	["sunp"]="Strona, z zapytaniem i nagłówkiem, zawiera adres URL",
	["iwp"]="Strona, z zapytaniem, istnieje na tej wiki",
	["inwp"]="Strona, z zapytaniem i nagłówkiem, istnieje na tej wiki",
	["iwewp"]="Strona, z zapytaniem, istnieje na tej wiki, jako element wikidanych",
	["inwewp"]="Strona, z zapytaniem, nagłówkiem, istnieje na tej wiki, jako element wikidanych",
	["iewp"]="Strona, z zapytaniem, istnieje, jako element wikidanych",
	["inewp"]="Strona, z zapytaniem i nagłówkiem, istnieje, jako element wikidanych",
	["niwp"]="Strona, z zapytaniem, nie istnieje na tej wiki",
	["ninwp"]="Strona, z zapytaniem i nagłówkiem, nie istnieje na tej wiki",
	["niewp"]="Strona, z zapytaniem, nie istnieje, jako element wikidanych",
	["ninewp"]="Strona, z zapytaniem i nagłówkiem, nie istnieje, jako element wikidanych",
	["wasp"]="Link, z zapytaniem, wskazuje na aktualną stronę",
	["wasewp"]="Link, z zapytaniem, wskazuje na aktualną stronę jako element wikidanych",
	["washp"]="Link, z zapytaniem, z aktywnym odnośnikiem, wskazuje na aktualną stronę",
	["washewp"]="Link, z zapytaniem, z aktywnym odnośnikiem, wskazuje na aktualną stronę jako element wikidanych",
	["wasnp"]="Link, z zapytaniem i nagłówkiem, wskazuje na aktualną stronę",
	["wasnewp"]="Link, z zapytaniem i nagłówkiem, wskazuje na aktualną stronę jako element wikidanych",
	["ipwp"]="Link, z zapytaniem, wskazuje na stronę niebędącą elementem wikidanych",
	["inpwp"]="Link, z zapytaniem i nagłówkiem, wskazuje na stronę niebędącą elementem wikidanych",
	["dwnip"]="Link, z zapytaniem, wskazuje na stronę do wiki, która nie istnieje",  	  
	};
	return kod_i_opis[parametr] or "";
end;
local function TworzenieTablicyEksportuDymkoweStrony(frame)
	local kod=frame.args[1];
	local href_new=frame.args[2];
	local href_old=frame.args[3];
   local linki_modul=require("Module:Linki");
   local parametry_modul=require("Module:Parametry");
   local nazwy_modul=require("Module:Nazwy");
   		
   local href=((href_new~="")and ((parametry_modul.CzyTak(href_old) and (href_new==href_old)) and href_new or (parametry_modul.CzyTak(href_old) and href_old or href_new)) or nazwy_modul["PEŁNANAZWASTRONY"]());
   
   local 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=linki_modul["GanerujSkładoweURL"]{["strona"]=href,};
   naglowek_strony=naglowek_strony and mw.text.encode(naglowek_strony) or nil;
   
   local kod_jezyka_koncowy;local kod_projektu_koncowy;local nazwa_serwisu;local wersja_jezykowa;
   local nazwa_przestrzeni_nazw;local pelna_nazwa_strony;local nazwa_artykulu;local nazwa_ksiazki;local nazwa_przestrzeni_ksiazki;local nazwa_strony;local nazwa_przestrzeni_nazw_po_polsku;
   
   local informacja=KodOpisDymku(kod);
   local czy_wiki_url=false;
   local wiki_modul=require("Module:Wiki");
   if(not czy_url)then
		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 kod_jezyka_poczatkowy;local kod_projektu_poczatkowy;
		nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy=wiki_modul.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy);
  
		local lang_modul=require("Module:Lang");
   
		nazwa_serwisu=nazwy_modul["NAZWASERWISU"]{args={["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,}};
		wersja_jezykowa=lang_modul["istnieje"]{args={[1]=kod_jezyka_koncowy or "en",}} and lang_modul["hasło"]{args={[1]=kod_jezyka_koncowy or "en",}} or lang_modul["hasło"]{args={[1]="en",}};
   
		local pudelko_modul=require("Module:Pudełko");
   
      	local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
    	local interwikimap=wiki_interwiki_modul.interwikimap;
    	local url=interwikimap[kod_projektu_koncowy];
    	czy_wiki_url=((url)and(mw.ustring.match(url,"/wiki/$1$"))and(((nazwa_strony_linku)and(nazwa_strony_linku~=""))or((naglowek_strony)and(naglowek_strony~=""))));
		
        if(czy_wiki_url)then
        	local czy_nie_pusta_nazwa_strony_linku=parametry_modul.CzyTak(nazwa_strony_linku);
    		----
    		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
    			nazwa_strony_linku=linki_modul["PrzetłumaczZnakZastępczyNaStronę"]("","",kod_jezyka_koncowy,kod_projektu_koncowy,czy_naglowek_strony);
    		end;
    		----

			nazwa_strony_linku=((parametry_modul.CzyTak(nazwa_strony_linku))and nazwa_strony_linku or (((kod_jezyka_koncowy==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu_koncowy==pudelko_modul["Kod projektu tego projektu"]())) and nazwy_modul["PEŁNANAZWASTRONY"]() or nil));
			if(not parametry_modul.CzyTak(nazwa_strony_linku))then
			    local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
			    local interwikimap=wiki_interwiki_modul.interwikimap;
			    local url=interwikimap[kod_projektu_koncowy];
                nazwa_strony_linku=((kod_jezyka_koncowy=="pl")and "Strona główna" or "Main Page");
			end;
			if(parametry_modul.CzyTak(nazwa_strony_linku))then
				nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{["nazwa"]=nazwa_strony_linku,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
				nazwa_przestrzeni_nazw_po_polsku=nazwy_modul["NpDane"]{["nazwa"]=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,["wyświetlana"]="tak",["po polsku"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",};
				pelna_nazwa_strony=parametry_modul["Odstępy"]{[1]=nazwa_strony_linku,[2]="tak",};
				nazwa_artykulu=nazwy_modul["NAZWAARTYKUŁUKSIĄŻKI"]{["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
				nazwa_ksiazki=nazwy_modul["SUBNAZWAKSIĄŻKI"]{["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
        		nazwa_przestrzeni_ksiazki=nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"]{["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
				nazwa_strony=nazwy_modul["NAZWASTRONY"]{["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
			end;
		end;
	end;
   local nazwy_np_modul=mw.loadData("Module:Nazwy/Np")   
   local tablica_komunikat={};
   table.insert(tablica_komunikat,{"Informacja o linku: ",informacja,});
			
   if(not czy_url)then
   	   local latki_modul=require("Module:Łatki");
   	   local args={["nazwa"]=pelna_nazwa_strony,["kod języka"]=kod_jezyka_koncowy,["kod projektu"]=kod_projektu_koncowy,};
   	   
   	   local odniesienia=latki_modul["są interwiki"]{args=args,};
   	   
   	   if((parametry_modul.CzyTak(odniesienia))and(odniesienia>0))then
   			table.insert(tablica_komunikat,{"Liczba odniesień wikidanych: ",odniesienia,});
   	   end;
   	   table.insert(tablica_komunikat,{"Projekt: ",nazwa_serwisu,"Wersja językowa: ",wersja_jezykowa});
   	   if(czy_wiki_url)then   	   
   	        local czy_ksiazkowe=((nazwa_przestrzeni_nazw_po_polsku==nazwy_np_modul.MainDisplayName)
   	            	                 or(nazwa_przestrzeni_nazw_po_polsku==nazwy_np_modul.Wikijunior));
   	        if(czy_ksiazkowe)then
   	        	  table.insert(tablica_komunikat,{"Przestrzeń nazw: ",nazwa_przestrzeni_nazw_po_polsku,});
   	        elseif(nazwa_przestrzeni_nazw~="")then
   	        	  table.insert(tablica_komunikat,{"Przestrzeń nazw: ",nazwa_przestrzeni_nazw_po_polsku,});
   	        else
   	        	  table.insert(tablica_komunikat,{"Przestrzeń nazw: ",nazwa_przestrzeni_nazw_po_polsku,});
   	        end;
			if((nazwa_przestrzeni_ksiazki)and(nazwa_przestrzeni_ksiazki~=""))then
				   table.insert(tablica_komunikat,{"Przestrzeń nazw książki: ",nazwa_przestrzeni_ksiazki,});
			end;
   	      	local czy_artykul=(czy_ksiazkowe 
   	      		                        or(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^Wikibooks:Brudnopis/[^/]*"))
   	      		                            or(mw.ustring.match(nazwa_przestrzeni_ksiazki,"^Wikipedysta:[^/]*")));
   	   
   	   	   local pudelko_modul=require("Module:Pudełko");
		   local strona_glowna_tego_projektu=pudelko_modul["Strona główna tego projektu"]();
   	       local main_page=wiki_modul.WikidaneOdpowiednikStrony{
		 			["nazwa strony"]=strona_glowna_tego_projektu,
		 			["kod języka"]=kod_jezyka_koncowy,
		 			["kod projektu"]=kod_projektu_koncowy,
				} or ((kod_jezyka_koncowy=="pl")and "Strona główna" or "Main Page");
			
   	        local czy_strona_glowna=
				(main_page==(((nazwa_przestrzeni_nazw~="")and(nazwa_przestrzeni_nazw..":")or "")
							..((nazwa_przestrzeni_ksiazki~="") and (nazwa_przestrzeni_ksiazki.."/") or "")
							..nazwa_ksiazki
							..((nazwa_artykulu~="")and("/"..nazwa_artykulu) or "")));
   	        
   	        if(parametry_modul.CzyTak(naglowek_strony))then   				
   				local naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony,"^[%s_]+","");
   				naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony_przetworzony,"[%s_]+$","");
   			    naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony_przetworzony,"[%s_]+"," ");
   			    table.insert(tablica_komunikat,{"Nagłówek: ",naglowek_strony_przetworzony,});
   			end;
   			
   			if(parametry_modul.CzyTak(nazwa_artykulu))then
   				local nazwa_rozdzialu;
   				local czy_rozdzial;
   	   	    	 if(not czy_strona_glowna)then
   					if(czy_artykul)then
     					if(kod_projektu_koncowy=="b")then
     						czy_rozdzial=mw.ustring.match(nazwa_artykulu,"/");
     						if(czy_rozdzial)then
     						  	nazwa_rozdzialu,nazwa_artykulu=mw.ustring.match(nazwa_artykulu,"^([^/]*)/(.*)$");
   							end;
     					end;
     					if(kod_projektu_koncowy=="b")then
   							table.insert(tablica_komunikat,{"Nazwa artykułu: ",nazwa_artykulu,});
   						elseif(kod_projektu_koncowy=="s")then
   							table.insert(tablica_komunikat,{"Nazwa rozdziału: ",nazwa_artykulu,});
   						elseif(kod_projektu_koncowy=="v")then
   							table.insert(tablica_komunikat,{"Nazwa tekstu: ",nazwa_artykulu,});
   						elseif(kod_projektu_koncowy=="w")then
   							table.insert(tablica_komunikat,{"Nazwa podartykułu: ",nazwa_artykulu,});
   						elseif(kod_projektu_koncowy=="q")then
   							table.insert(tablica_komunikat,{"Nazwa podcytatu: ",nazwa_artykulu,});	
   						elseif(kod_projektu_koncowy=="voy")then
   							table.insert(tablica_komunikat,{"Nazwa submiejsca: ",nazwa_artykulu,});		
   						elseif(kod_projektu_koncowy=="wikt")then
   							table.insert(tablica_komunikat,{"Nazwa podhasła: ",nazwa_artykulu,});	
   						elseif(kod_projektu_koncowy=="n")then
   							table.insert(tablica_komunikat,{"Nazwa rozdziału tekstu: ",nazwa_artykulu,});
   						else
   							table.insert(tablica_komunikat,{"Nazwa modułu opisu: ",nazwa_artykulu,});
   						end;
   					else
   				 		table.insert(tablica_komunikat,{"Nazwa podstrony: ",nazwa_artykulu,});
   					end;
   				else
   					table.insert(tablica_komunikat,{"Moduł strony głównej: ",nazwa_artykulu,});
   				end;				
   				if(not czy_strona_glowna)then
   					if(czy_artykul)then
   						if(kod_projektu_koncowy=="b")then
     						if(czy_rozdzial)then
     							table.insert(tablica_komunikat,{"Nazwa rozdziału: ",nazwa_rozdzialu,});
   							end;
   						end;
   					end;
 				end;
   			    if(not czy_strona_glowna)then
   						if(czy_artykul)then
   							if(kod_projektu_koncowy=="b")then
   								table.insert(tablica_komunikat,{"Nazwa podręcznika: ",nazwa_ksiazki,});
   							elseif(kod_projektu_koncowy=="s")then
   								table.insert(tablica_komunikat,{"Nazwa książki: ",nazwa_ksiazki,});
   							elseif(kod_projektu_koncowy=="v")then
   								table.insert(tablica_komunikat,{"Nazwa skryptu: ",nazwa_ksiazki,});
   							elseif(kod_projektu_koncowy=="w")then
   								table.insert(tablica_komunikat,{"Nazwa artykułu: ",nazwa_ksiazki,});
   							elseif(kod_projektu_koncowy=="q")then
   								table.insert(tablica_komunikat,{"Nazwa cytatu: ",nazwa_ksiazki,});	
   							elseif(kod_projektu_koncowy=="voy")then
   								table.insert(tablica_komunikat,{"Nazwa miejsca: ",nazwa_ksiazki,});		
   							elseif(kod_projektu_koncowy=="wikt")then
   								table.insert(tablica_komunikat,{"Nazwa hasła: ",nazwa_ksiazki,});	
   						    elseif(kod_projektu_koncowy=="species")then
   								table.insert(tablica_komunikat,{"Nazwa strony gatunku: ",nazwa_ksiazki,});	
   							elseif(kod_projektu_koncowy=="n")then
   								table.insert(tablica_komunikat,{"Nazwa tekstu wiadomości: ",nazwa_ksiazki,});	
   							else
   								table.insert(tablica_komunikat,{"Nazwa broszury: ",nazwa_ksiazki,});
   							end;
   						else
   				 			table.insert(tablica_komunikat,{"Nazwa strony: ",nazwa_ksiazki,});
   						end;
   				else
   					  table.insert(tablica_komunikat,{"Nazwa strony głównej: ",nazwa_ksiazki,});
   				end;
   			else
   				if(not czy_strona_glowna)then
   					if(czy_artykul)then
   						if(kod_projektu_koncowy=="b")then
   							table.insert(tablica_komunikat,{"Strona tytułowa podręcznika: ",nazwa_ksiazki,});
   						elseif(kod_projektu_koncowy=="s")then
   							table.insert(tablica_komunikat,{"Strona tytułowa książki: ",nazwa_ksiazki,});
   						elseif(kod_projektu_koncowy=="v")then
   							table.insert(tablica_komunikat,{"Strona tytułowa skryptu: ",nazwa_ksiazki,});
   						elseif(kod_projektu_koncowy=="w")then
   							table.insert(tablica_komunikat,{"Strona artykułu: ",nazwa_ksiazki,});
   						elseif(kod_projektu_koncowy=="q")then
   							table.insert(tablica_komunikat,{"Strona cytatu: ",nazwa_ksiazki,});	
   						elseif(kod_projektu_koncowy=="voy")then
   							table.insert(tablica_komunikat,{"Strona miejsca: ",nazwa_ksiazki,});		
   						elseif(kod_projektu_koncowy=="wikt")then
   							table.insert(tablica_komunikat,{"Strona hasła: ",nazwa_ksiazki,});	
   						elseif(kod_projektu_koncowy=="species")then
   							table.insert(tablica_komunikat,{"Strona gatunku: ",nazwa_ksiazki,});		
   					    elseif(kod_projektu_koncowy=="n")then
   							table.insert(tablica_komunikat,{"Strona wiadomości: ",nazwa_ksiazki,});
   						else
   							table.insert(tablica_komunikat,{"Strona broszury: ",nazwa_ksiazki,});	
   						end;
   					else
   				 		table.insert(tablica_komunikat,{"Strona: ",nazwa_ksiazki,});
   					end;
   				else
   					  table.insert(tablica_komunikat,{"Strona główna projektu: ",nazwa_ksiazki,});
   				end;
   			end;
   	   end
   end;
   if((not czy_url)and(not czy_wiki_url)and(parametry_modul.CzyTak(nazwa_strony_linku)))then
   		table.insert(tablica_komunikat,{"Nazwa strony: ",nazwa_strony_linku,});
   elseif(czy_url)then
   	   	local html_modul=require("Module:Html");
   	    local nazwa_strony_linku=html_modul["UrlBezProtokołu"](nazwa_strony_linku);
   		local serwer,nazwa_strony=html_modul["URLStrona"](nazwa_strony_linku);
   		table.insert(tablica_komunikat,{"Nazwa serwera: ",serwer,});
   		
   		if(parametry_modul.CzyTak(naglowek_strony))then
   			local naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony,"^[%s_]+","");
   			naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony_przetworzony,"[%s_]+$","");
   			naglowek_strony_przetworzony,_=mw.ustring.gsub(naglowek_strony_przetworzony,"[%s_]+"," ");
   			table.insert(tablica_komunikat,{"Nagłówek identyfikatora: ",naglowek_strony_przetworzony,});
   		end;
   		
   		if(parametry_modul.CzyTak(nazwa_strony)and(nazwa_strony~="/"))then
   			table.insert(tablica_komunikat,{"Nazwa strony: ",nazwa_strony,});

   		end;
   end;
   return tablica_komunikat;
end;
local function InterfejsDymku(frame)
	local function LiniaKomunikatu(parametr1,parametr2,div_pozycja)
		local strong_artykulu=mw.html.create('strong');
	   	strong_artykulu:wikitext(parametr1);
	   	strong_artykulu:css('color','blue');
		local span_artykulu=mw.html.create('span');
		   span_artykulu:wikitext(parametr2);
		   span_artykulu:wikitext(".");
		div_pozycja:node(strong_artykulu);
		div_pozycja:node(span_artykulu);
	end;
	
	local tablica_komunikat=TworzenieTablicyEksportuDymkoweStrony(frame);
	
	local div_artykulu=mw.html.create('div');
	div_artykulu:css('font-size',"90%");
    div_artykulu:css('line-height','1.4em');
	div_artykulu:css('box-sizing','border-box');
	div_artykulu:css('max-width','21.25rem');
	div_artykulu:css('width','100%');
	
	for numer,tab_komunikatu in ipairs(tablica_komunikat)do
		local div_pozycja=mw.html.create('div');
		if((not tab_komunikatu[3])and(not tab_komunikatu[4]))then
			LiniaKomunikatu(tab_komunikatu[1],tab_komunikatu[2],div_pozycja);
		elseif((tab_komunikatu[3])and(tab_komunikatu[4]))then
			local span_pozycja_lewy=mw.html.create('span');
			local span_pozycja_prawy=mw.html.create('span');
			span_pozycja_lewy:css('margin-right',"4px");
			LiniaKomunikatu(tab_komunikatu[1],tab_komunikatu[2],span_pozycja_lewy);
			LiniaKomunikatu(tab_komunikatu[3],tab_komunikatu[4],span_pozycja_prawy);
			div_pozycja:node(span_pozycja_lewy);
			div_pozycja:node(span_pozycja_prawy);
		end;
		div_artykulu:node(div_pozycja);
	end;
	return tostring(div_artykulu:allDone());
end;
p["UzyskajOpisOdParametrówLinku"] = function(frame)
	local wynik=InterfejsDymku(frame);
	return wynik;
end;
return p;