Przejdź do zawartości

Moduł:Sekcja referencyjna

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [stwórz] [odśwież]
local p={};
function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)
	if(not ustep)then return ustep;end;
	if(not czy_ustep)then return ustep;end;
	local czy=mw.ustring.match(ustep,"^[^#]*#(.*)$");
	if(czy)then
		return czy;
	else
		local czy=mw.ustring.match(ustep,"/([^/]*)$");
		if(czy)then
			return czy;
		end;
	end;
	return ustep;
end;
function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)
   if((od_malej)and(not od_duzej))then
		nazwa=mw.getContentLanguage():lcfirst(nazwa);
   elseif((not od_malej)and(od_duzej))then
   		nazwa=mw.getContentLanguage():ucfirst(nazwa);
   end;
   return nazwa;
end;
function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)
   local parametry_modul=require("Module:Parametry");
   nazwa=parametry_modul.CzyTak(nazwa) and nazwa or p.Indentyfikator_lub_podstrona_wikiadresu_strony(strona,czy_ustep);
   strona=parametry_modul["Odstępy"]{[1]=strona,[2]="tak",};
   local naglowek=(parametry_modul.CzyTak(podstrona) and (podstrona.."/") or "")..(parametry_modul.CzyTak(strona) and strona or "");
   local nazwy_modul=require("Module:Nazwy");
   local czy_naglowek=parametry_modul.CzyTak(naglowek);
   local strona=(not czy_naglowek) and nazwy_modul["PEŁNANAZWASTRONY"](pelnanazwajednostki) or nil;
   naglowek=(czy_naglowek and naglowek~="#") and naglowek or nil;
   naglowek=naglowek and mw.ustring.gsub(naglowek,"^[^#]*#","") or nil;
   naglowek=czy_pod_ustep and (czy_naglowek and mw.ustring.match(naglowek,"([^/]*)$") or nil) or naglowek;
   nazwa=p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej);
   
   return strona,naglowek,nazwa;
end;
function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)
   	local parametry_modul=require("Module:Parametry");
   	local nazwy_modul=require("Module:Nazwy");
   	if(not parametry_modul.CzyTak(strona))then
   	   strona=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](pelnanazwajednostki);
   	   nazwa=parametry_modul.CzyTak(nazwa) and nazwa or p.Indentyfikator_lub_podstrona_wikiadresu_strony(nazwy_modul["NAZWASTRONY"](strona),not czy_ustep);
   	else
   	   local czy_hash=mw.ustring.match(strona,"^#");
   	   if(not czy_hash)then
   	   	  	nazwa=parametry_modul.CzyTak(nazwa) and nazwa or p.Indentyfikator_lub_podstrona_wikiadresu_strony(strona,czy_ustep);
   	   	  	strona=parametry_modul["Odstępy"]{[1]=strona,[2]="tak",};
   	   		strona=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](pelnanazwajednostki).."/"..((parametry_modul.CzyTak(podstrona)) and (podstrona.."/") or "")..strona;
   	   else
   	   	   	nazwa=parametry_modul.CzyTak(nazwa) and nazwa or mw.ustring.match(strona,"^#(.*)$");
   	   	   	strona=parametry_modul["Odstępy"]{[1]=strona,[2]="tak",};
   	   	    strona=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](pelnanazwajednostki)..((parametry_modul.CzyTak(podstrona)) and ("/"..podstrona) or "")..strona;
   	   end;
   	end;
   	nazwa=p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej);
   	
   	return strona,nazwa;
end;
p["Sekcja referencyjna"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local strona=args["strona"] or args["s"] or args[1];
	local nazwa=parametry_modul["Odstępy"](args["nazwa"] or args["n"] or args[2]);
	local podstrona=parametry_modul["Odstępy"]{[1]=args["podstrona"] or args["p"] or args[3],[2]="tak",};
	local ustep=parametry_modul.CzyTak(args["ustęp"]) or parametry_modul.CzyTak(args["u"])  or parametry_modul["CzyTakCiąg"](args[4]);
	local od_malej=parametry_modul.CzyTak(args["od małej"]) or parametry_modul.CzyTak(args["m"]);
	local od_duzej=parametry_modul.CzyTak(args["od dużej"]) or parametry_modul.CzyTak(args["d"]);
	local pod_ustep=parametry_modul.CzyTak(args["pod-ustęp"]) or parametry_modul.CzyTak(args["t"]);
	local astandardowo=parametry_modul.CzyTak(args["astandardowo"]) or parametry_modul.CzyTak(args["o"]);
	local naglowkowo=parametry_modul.CzyTak(args["nagłówkowo"]) or parametry_modul.CzyTak(args["c"]);
	local czy_analiza=parametry_modul.CzyTak(args["analiza"]) or parametry_modul.CzyTak(args["a"]);
	local bez_znacznikow=args["bez znaczników"] or args["bz"];
	local bez_przetwarzania=args["bez przetwarzania"] or args["bp"];
	local pudelko_modul=require("Module:Pudełko");
	local czy_pudelko=((parametry_modul.CzyTak(args["nazwa jednostki"]) or args["nazwa przestrzeni nazw"])and true or false);
	local pelnanazwajednostki=((czy_pudelko)and pudelko_modul["Pełna nazwa jednostki"](frame) or nil);
	
	local __strona,__naglowek,__nazwa;
	if((not astandardowo)and(naglowkowo or parametry_modul.CzyTak(require("Module:StronicowyParser").CzyStronaSubst(frame,czy_pudelko))))then
		local bez_przetwarzania=parametry_modul.CzyTak(bez_przetwarzania) or ((not czy_analiza) and "tak" or nil);
		__strona,__naglowek,__nazwa=p.Strona_zbiorcza(strona,podstrona,nazwa,ustep,pod_ustep,od_malej,od_duzej,pelnanazwajednostki,bez_znacznikow,bez_przetwarzania);
	else
		local bez_przetwarzania=parametry_modul.CzyTak(bez_przetwarzania) or ((not czy_analiza) and "tak" or nil);
		__strona,__nazwa=p.Wolumin(strona,podstrona,nazwa,ustep,od_malej,od_duzej,pelnanazwajednostki,bez_znacznikow,bez_przetwarzania);
	end;
	local linki_modul=require("Module:Linki");
    return linki_modul["Link wewnętrzny"]{["strona"]=__strona,["nagłówek"]=__naglowek,["nazwa"]=__nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
end;
return p;