Moduł:Sekcja referencyjna

 Dokumentacja modułu [stwórz] [odśwież]
local p={};
function 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;
local function 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;
local function Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki,bez_znacznikow,bez_przetwarzania)
   local parametry_modul=require("Module:Parametry");
   local naglowek=(parametry_modul.CzyTak(podstrona) and (podstrona.."/") or "")..(parametry_modul.CzyTak(strona) and strona or "");
   nazwa=parametry_modul.CzyTak(nazwa) and nazwa or Indentyfikator_lub_podstrona_wikiadresu_strony(strona,czy_ustep);
   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=Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej);
   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;
local function Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki,bez_znacznikow,bez_przetwarzania)
   	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 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 Indentyfikator_lub_podstrona_wikiadresu_strony(strona,czy_ustep);
   	   		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=nazwy_modul["PEŁNANAZWAKSIĄŻKI"](pelnanazwajednostki)..((parametry_modul.CzyTak(podstrona)) and ("/"..podstrona) or "")..strona;
   	   end;
   	end;
   	nazwa=Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej);
   	local linki_modul=require("Module:Linki");
   	return linki_modul["Link wewnętrzny"]{["strona"]=strona,["nazwa"]=nazwa,["bez znaczników"]=bez_znacznikow,["bez przetwarzania"]=bez_przetwarzania,};
end;
p["Sekcja referencyjna"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local strona=parametry_modul["Odstępy"]{[1]=args["strona"] or args[1],[2]="tak",};
	local nazwa=parametry_modul["Odstępy"](args["nazwa"] or args[2]);
	local podstrona=parametry_modul["Odstępy"]{[1]=args["podstrona"] or args[3],[2]="tak",};
	local ustep=parametry_modul["CzyTakCiąg"](args["ustęp"] or args[4]);
	local od_malej=parametry_modul.CzyTak(args["od małej"]);
	local od_duzej=parametry_modul.CzyTak(args["od dużej"]);
	local pod_ustep=parametry_modul.CzyTak(args["pod-ustęp"]);
	local astandardowo=parametry_modul.CzyTak(args["astandardowo"]);
	local naglowkowo=parametry_modul.CzyTak(args["nagłówkowo"]);
	local czy_analiza=parametry_modul.CzyTak(args["analiza"]);
	local bez_znacznikow=args["bez znaczników"];
	local bez_przetwarzania=args["bez przetwarzania"];
	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);
	if((not astandardowo)and(naglowkowo or parametry_modul.CzyTak(require("Module:StronicowyParser").CzyStronaSubst(frame,pelnanazwajednostki,czy_pudelko))))then
		local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or ((not czy_analiza) and "tak" or nil);
		return Strona_zbiorcza(strona,podstrona,nazwa,ustep,pod_ustep,od_malej,od_duzej,pelnanazwajednostki,bez_znacznikow,bez_przetwarzania);
	else
		local bez_przetwarzania=parametry_modul.CzyTak(args["bez przetwarzania"]) or ((not czy_analiza) and "tak" or nil);
		return Wolumin(strona,podstrona,nazwa,ustep,od_malej,od_duzej,pelnanazwajednostki,bez_znacznikow,bez_przetwarzania);
	end;
end;
return p;