Przejdź do zawartości

Moduł:Książkowe

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [stwórz] [odśwież]
local p={};
local function NazwaKsiazkawaSilnik(frame,funkcja_nazw,tabela_nazw)
	if((tabela_nazw)and(tabela_nazw.namespace)and(tabela_nazw.pagename))then
		local nazwy_modul=require("Module:Nazwy");
		return nazwy_modul[funkcja_nazw](nil,tabela_nazw);
	end;
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local pelna_nazwa_strony=PobierzParametr("nazwa") or PobierzParametr(1);
	local bez_transformacji=PobierzParametr("bez transformacji");
	local funkcja=PobierzParametr("funkcja");
	local funkcja_decode=PobierzParametr("funkcja decode");
	local modul=PobierzParametr("moduł");
	local modul_decode=PobierzParametr("moduł decode");
	
	funkcja=parametry_modul.CzyTak(funkcja) and funkcja or "";
	funkcja_decode=parametry_modul.CzyTak(funkcja_decode) and funkcja_decode or "DecodeHtml";
	modul=parametry_modul.CzyTak(modul) and modul or "Książkowe";
	modul_decode=parametry_modul.CzyTak(modul_decode) and modul_decode or "Html";
	
	local czy_bez_transformacji=(parametry_modul.CzyTak{[1]=bez_transformacji});
	local nazwy_modul=require("Module:Nazwy");
	local html_modul=require("Module:Html");
	local uzyskana_nazwa_jednostki=
		pelna_nazwa_strony 
			and (czy_bez_transformacji 
					and nazwy_modul[funkcja_nazw](pelna_nazwa_strony,tabela_nazw) 
					or nazwy_modul[funkcja_nazw](require("Module:"..modul)[funkcja](require("Module:"..modul_decode)[funkcja_decode](pelna_nazwa_strony,true)),tabela_nazw)
				) 
			or (czy_bez_transformacji 
					and nazwy_modul[funkcja_nazw](nil,tabela_nazw) 
					or require("Module:"..modul)[funkcja](require("Module:"..modul_decode)[funkcja_decode](nazwy_modul[funkcja_nazw](nil,tabela_nazw),true))
			  );
	return uzyskana_nazwa_jednostki;
end;
----
p[""]=function(parametr)
	return parametr;
end;
p["NazwaPrzestrzeni"] = function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	return NazwaKsiazkawaSilnik(frame,"NAZWAPRZESTRZENI",tabela_nazw);
end;
p["NazwaPrzestrzeniKsiążki"] = function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	return NazwaKsiazkawaSilnik(frame,"NAZWAPRZESTRZENIKSIĄŻKI",tabela_nazw);
end;
p["NazwaTytułuKsiążki"] = function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	return NazwaKsiazkawaSilnik(frame,"SUBNAZWAKSIĄŻKI",tabela_nazw);
end;
p["NazwaArtykułuKsiążki"]=function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	return NazwaKsiazkawaSilnik(frame,"NAZWAARTYKUŁUKSIĄŻKI",tabela_nazw);
end;
----
p["NazwaKsiążki"] = function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	return NazwaKsiazkawaSilnik(frame,"NAZWAKSIĄŻKI",tabela_nazw);
end;
p["PełnaNazwaKsiążki"] = function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	return NazwaKsiazkawaSilnik(frame,"PEŁNANAZWAKSIĄŻKI",tabela_nazw);
end;
p["PełnaNazwaArtykułu"] = function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	return NazwaKsiazkawaSilnik(frame,"PEŁNANAZWASTRONY",tabela_nazw);
end;
p["NazwaArtykułu"] = function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	return NazwaKsiazkawaSilnik(frame,"NAZWASTRONY",tabela_nazw);
end;
p["PełnaNazwaStronicowejKsiążki"]=function(frame,tabela_nazw)
	tabela_nazw=tabela_nazw or {};
	if((tabela_nazw)and(tabela_nazw.namespace)and(tabela_nazw.pagename))then
		local nazwy_modul=require("Module:Nazwy");
		return nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nil,tabela_nazw);
	end;
	---
	local parametry_modul=require("Module:Parametry");
	local PobierzParametr=parametry_modul.PobierzParametr(frame);
	local nazwa_ksiazki=PobierzParametr("nazwa") or PobierzParametr(1);
	local bez_transformacji=PobierzParametr("bez transformacji");
	local funkcja=PobierzParametr("funkcja");
	local funkcja_decode=PobierzParametr("funkcja decode");
	local modul=PobierzParametr("moduł");
	local modul_decode=PobierzParametr("moduł decode");
	
	funkcja=parametry_modul.CzyTak(funkcja) and funkcja or "";
	funkcja_decode=parametry_modul.CzyTak(funkcja_decode) and funkcja_decode or "DecodeHtml";
	modul=parametry_modul.CzyTak(modul) and modul or "Książkowe";
	modul_decode=parametry_modul.CzyTak(modul_decode) and modul_decode or "Html";
	
	nazwa_ksiazki=nazwa_ksiazki and ((not bez_transformacji) and require("Module:"..modul)[funkcja](require("Module:"..modul_decode)[funkcja_decode](nazwa_ksiazki,true)) or nazwa_ksiazki) or nil;
	
	local function Parametr(strona)
		return{
				["nazwa"]=strona,
				["bez transformacji"]=bez_transformacji,
				["funkcja"]=funkcja,
				["funkcja decode"]=funkcja_decode,
				["moduł"]=modul,
				["moduł decode"]=modul_decode,
		};
	end;
	
	if(not nazwa_ksiazki)then
		local nazwy_modul=require("Module:Nazwy");
		return (not bez_transformacji) and p["PełnaNazwaKsiążki"](Parametr(nazwa_ksiazki),tabela_nazw) or nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw);
	elseif(nazwa_ksiazki=="")then
		local nazwy_modul=require("Module:Nazwy");
		return nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw);
	end;
	local dwukropek=mw.ustring.match(nazwa_ksiazki,"^:");
	if(dwukropek)then 
		local nazwy_modul=require("Module:Nazwy");
		return nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw);
	else
		local nazwy_modul=require("Module:Nazwy");
		local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_ksiazki);

		local czy_nazwa_ksiazki_z_przestrzenia=(nazwa_przestrzeni~="");
		if czy_nazwa_ksiazki_z_przestrzenia then
			return nazwy_modul["PEŁNANAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw);
		else
			local title_main=mw.title.makeTitle('',nazwa_ksiazki);
			if((title_main)and(title_main.exists))then
				return nazwy_modul["NAZWAKSIĄŻKI"](nazwa_ksiazki,tabela_nazw);
			else
				local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
				local title_wikijunior=mw.title.makeTitle(nazwy_np_modul.Wikijunior,nazwa_ksiazki);
				if((title_wikijunior)and(title_wikijunior.exists))then
					return nazwy_modul["PEŁNANAZWAKSIĄŻKI"](((nazwy_np_modul.Wikijunior~="") and nazwy_np_modul.Wikijunior..":" or "")..nazwa_ksiazki,tabela_nazw);
				else
					local tabela_nazw2={};
					local nazwa_przestrzeni=(not bez_transformacji) and p["NazwaPrzestrzeni"](Parametr(),tabela_nazw2) or nazwy_modul["NAZWAPRZESTRZENI"](nil,tabela_nazw2);
					local nazwa_przestrzeni_ksiazki=(not bez_transformacji) and p["NazwaPrzestrzeniKsiążki"](Parametr(),tabela_nazw2) or nazwy_modul["NAZWAPRZESTRZENIKSIĄŻKI"](nil,tabela_nazw2);
					
					local pelna_nazwa_ksiazki=((nazwa_przestrzeni~="")and (nazwa_przestrzeni..":") or "")
					                                    ..nazwa_przestrzeni_ksiazki
					                                           ..((nazwa_ksiazki~="")and(((nazwa_przestrzeni_ksiazki~="") and "/" or "")..nazwa_ksiazki) or "");
					return nazwy_modul["PEŁNANAZWAKSIĄŻKI"](pelna_nazwa_ksiazki,tabela_nazw);
				end;
			end;
		end;
	end;
end;
return p;