Modulo:Ŝablono:Kun Lua-modulo

El Vikipedio, la libera enciklopedio
Dokumentado Dokumentado


Ŝablona programado Diskutoj Lua Testoj Subpaĝoj
Modulo Esperanto English

Lua-modulo&namespace=828 Modulo: Lua-modulo&namespace=4 Dokumentado


Se vi havas demandon pri ĉi tiu Lua-modulo, tiam vi povas demandi en la diskutejo pri Lua-moduloj. La Intervikiaj ligiloj estu metataj al Vikidatumoj. (Vidu Helpopaĝon pri tio.)
-- modulo por la teksta parto de la ŝablono {{Kun Lua-modulo}}, 2022-05-21

local listoj = require ("Modulo:Listutil")

-- enplektu ŝablonon 
local function m (modulo)
			local frame = mw.getCurrentFrame()		
			local r = frame:expandTemplate {
				title="Modulo",
				args={
					modulo
				}
			}	
			return r
end

-- por indiko pri ŝablono
local function shablono (nomo)
			local frame = mw.getCurrentFrame()
			local r = frame:expandTemplate {
				title="Ŝ",
				args = {
					nomo
				}
			}
			return r	
end	

local function info (subshablono,modulo,parametro,funkcio,detaloj,neunua,dok,dmodulo)
		if subshablono ~= "" then
			if neunua == "jes" then
				t = "<br /><hr />Krome [[" .. subshablono .. "|subŝablono]] de ĉi tiu ŝablono"
			else	
				t = "[[" .. subshablono .. "|Subŝablono]] de ĉi tiu ŝablono"
			end
		else 
			if neunua == "jes" then
				t = "<br /><hr />Krome ĉi tiu ŝablono"
			else	
				t = "Ĉi tiu ŝablono"
			end
		end
		
		-- aldoneto
		t = t .. " uzas "
		
		if modulo ~= "" then 
			t = t .. "la [[Lua]]-modulon " .. m(modulo) .. " "
		else
			t = t .. "[[Lua]]-modulon "
		end
		
		local p = ""
		if parametro ~= "" then
			if parametro == "kelka" or parametro == "kelkaj" then
				p = "por kelkaj parametroj."
			elseif parametro == "ĉiu" or parametro == "ĉiuj" then
				p = "por ĉiuj parametroj."
			elseif parametro == "pĉ"	then
				p = "por preskaŭ ĉiuj parametroj"
			elseif parametro == "multaj" then
				p = "por multaj parametroj"
			else 
				p = "por la parametro"
				local l = listoj._count(",",parametro)
				if l > 1 then
					p = p .. "j "
				else 
					p = p .. " "
				end	
				local l = listoj._list(",",parametro)
				p = p .. " " .. l				
			end
		else
			p = "por iu parametro."
		end
		
		-- almeto al t
		t = t .. p
		
		-- informo pri modulo en la ŝablona dokumentado, se tiu estas uzata
		local d = ""
		if dok ~= "" and dmodulo ~= "" then
			dok = shablono(dok)
			dmodulo = m(dmodulo)
			d = " Ĝia dokumentado en " .. dok .. " uzas la modulon " .. dmodulo .. "."
		end
		
		-- almeto al t
		t = t .. d
		
		local f = ""
		local f2 = ""
		if funkcio ~= "" then
			f = " Ĝi uzas la "
			local l = listoj._count(",",funkcio)
			if l > 1 then
				f = f .. "modulajn funkciojn "
				f2 = listoj._list(",",funkcio, "", "kaj", "", "", "", "", "''<code>", "</code>''")
				f = f .. f2
			else
				f = f .. "modulan funkcion"
				f2 = "''<code>" .. funkcio.. "</code>''"
				f = f .. f2
			end
--			f = f .. "."
		end
		
		-- almeto al t
		if neunua == 'jes' then
			t = t .. f
		else	
			t = t .. f .. " Vidu ankaŭ [[Vikipedio:Lua]]."
		end
		
		if detaloj ~= "" then
			t = t .. " kaj " .. detaloj .. "."
--		else
--			t = t .. "."
		end
					
		return t	
end

local p = {}

function p.chefa (frame)
		local subshablono = frame.args['subŝablono'] or ""
		local modulo = frame.args['modulo'] or ""
		local parametro = frame.args['parametro'] or ""
		local funkcio = frame.args['funkcio'] or ""
		local detaloj = frame.args['detaloj'] or ""
		local dok = frame.args['dokumentado'] or ""
		local dmodulo = frame.args['dok-modulo'] or ""
	
		-- ceteraj variabloj 
		local t = ""
		
		t = info (subshablono,modulo,parametro,funkcio,detaloj,"",dok,dmodulo)
		
		-- aldonaj informoj
		local maximum = 7  -- 5 estis tro malgranda
		
		for i=2, maximum do
			if frame.args['modulo' .. i] ~= "" and frame.args['modulo' .. i] ~= nil then
				local s = frame.args['subŝablono' .. i] or ""
				local m = frame.args['modulo' .. i] 
				local p = frame.args['parametro' .. i] or ""
				local f = frame.args['funkcio' .. i] or ""
				local d = frame.args['detaloj' .. i] or ""
				local dok = frame.args['dokumentado' .. i] or ""
				local dmodulo = frame.args['dok-modulo' .. i] or ""				
				local t2 = info (s,m,p,f,d,"jes",dok,dmodulo)
				t = t .. "\n\n" .. t2
			end
		end
		
		
		return t
end	

function p.teksteto (frame)
		local parametro = frame.args['parametro'] or ""
		local t = ""
		if parametro ~= "" then
			-- n - nombro de listeroj
			local n = listoj._count(",",parametro)
			if n > 1 then
				t = "Se vi volas ŝanĝi la koncernajn parametrojn, bonvolu esti tre atentema."
				t = t .. "Se vi ne estas sufiĉe sperta pri tia teknikaĵo, vi povas demandi sur la paĝo [[Vikipedio:Lua/Petoj]]."
			else
				t = "Se vi volas ŝanĝi la "
				if parametro == "kelka" or parametro == "kelkaj" or parametro == "multaj" or parametro == "pĉ" or parametro == "ĉiu" or parametro == "ĉiuj" then
					t = t .. "koncernajn parametrojn"
				else
					t = t .. "koncernan parametron"
				end
				t = t .. ", bonvolu esti tre atentema. Se vi ne estas sufiĉe sperta pri tia teknikaĵo, vi povas demandi sur la paĝo [[Vikipedio:Lua/Petoj]]."
			end	
		else
			t = "Se vi volas ŝanĝi la koncernajn parametrojn, bonvolu esti tre atentema."
			t = t .. "Se vi ne estas sufiĉe sperta pri tia teknikaĵo, vi povas demandi sur la paĝo [[Vikipedio:Lua/Petoj]]."			
		end
		return t
end	


return p