<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://es.wikijournal.org/w-wiki/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AArgumentos</id>
	<title>Módulo:Argumentos - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://es.wikijournal.org/w-wiki/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AArgumentos"/>
	<link rel="alternate" type="text/html" href="https://es.wikijournal.org/w-wiki/index.php?title=M%C3%B3dulo:Argumentos&amp;action=history"/>
	<updated>2026-04-30T10:19:53Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://es.wikijournal.org/w-wiki/index.php?title=M%C3%B3dulo:Argumentos&amp;diff=724&amp;oldid=prev</id>
		<title>Philip: 1 revisión importada</title>
		<link rel="alternate" type="text/html" href="https://es.wikijournal.org/w-wiki/index.php?title=M%C3%B3dulo:Argumentos&amp;diff=724&amp;oldid=prev"/>
		<updated>2025-02-15T12:25:37Z</updated>

		<summary type="html">&lt;p&gt;1 revisión importada&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 15:25 15 feb 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;es&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikijournal_org-es__:diff:1.41:old-723:rev-724 --&gt;
&lt;/table&gt;</summary>
		<author><name>Philip</name></author>
	</entry>
	<entry>
		<id>https://es.wikijournal.org/w-wiki/index.php?title=M%C3%B3dulo:Argumentos&amp;diff=723&amp;oldid=prev</id>
		<title>es__&gt;-sasha-: Arreglo para cuando el argumento solicitado sea un índice, para parámetros sin nombrar.</title>
		<link rel="alternate" type="text/html" href="https://es.wikijournal.org/w-wiki/index.php?title=M%C3%B3dulo:Argumentos&amp;diff=723&amp;oldid=prev"/>
		<updated>2023-05-25T13:53:32Z</updated>

		<summary type="html">&lt;p&gt;Arreglo para cuando el argumento solicitado sea un índice, para parámetros sin nombrar.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 16:53 25 may 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l132&quot;&gt;Línea 132:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 132:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	elseif type(list) == &amp;#039;table&amp;#039; then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	elseif type(list) == &amp;#039;table&amp;#039; then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		for num, val in ipairs(list) do&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		for num, val in ipairs(list) do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			if type(val) == &#039;string&#039; then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			if type(val) == &#039;string&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039; or type(val) == &#039;number&lt;/ins&gt;&#039; then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				key = z.obtenerValorDeArgumentos(val)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				key = z.obtenerValorDeArgumentos(val)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			elseif type(val) == &amp;#039;function&amp;#039; then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			elseif type(val) == &amp;#039;function&amp;#039; then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikijournal_org-es__:diff:1.41:old-204:rev-723:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>es__&gt;-sasha-</name></author>
	</entry>
	<entry>
		<id>https://es.wikijournal.org/w-wiki/index.php?title=M%C3%B3dulo:Argumentos&amp;diff=204&amp;oldid=prev</id>
		<title>Philip: Página creada con «local z = {}  function z.obtenerArgumentos(frame) 	if frame.args[1] then  		return frame.args 	end  	return frame:getParent().args end  function z.obtenerArgumentosConValor(frame) 	if frame == mw.getCurrentFrame() then 		argumentos = frame:getParent().args 	else 		argumentos = frame.args or frame 	end  	return require(&#039;Módulo:Tablas&#039;).copiarElementosConValor(argumentos) end  -- Obtiene los argumentos con valores de la plantilla en minúsculas y con las -- tildes remo…»</title>
		<link rel="alternate" type="text/html" href="https://es.wikijournal.org/w-wiki/index.php?title=M%C3%B3dulo:Argumentos&amp;diff=204&amp;oldid=prev"/>
		<updated>2022-11-28T12:12:09Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «local z = {}  function z.obtenerArgumentos(frame) 	if frame.args[1] then  		return frame.args 	end  	return frame:getParent().args end  function z.obtenerArgumentosConValor(frame) 	if frame == mw.getCurrentFrame() then 		argumentos = frame:getParent().args 	else 		argumentos = frame.args or frame 	end  	return require(&amp;#039;Módulo:Tablas&amp;#039;).copiarElementosConValor(argumentos) end  -- Obtiene los argumentos con valores de la plantilla en minúsculas y con las -- tildes remo…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local z = {}&lt;br /&gt;
&lt;br /&gt;
function z.obtenerArgumentos(frame)&lt;br /&gt;
	if frame.args[1] then &lt;br /&gt;
		return frame.args&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return frame:getParent().args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function z.obtenerArgumentosConValor(frame)&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		argumentos = frame:getParent().args&lt;br /&gt;
	else&lt;br /&gt;
		argumentos = frame.args or frame&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return require(&amp;#039;Módulo:Tablas&amp;#039;).copiarElementosConValor(argumentos)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Obtiene los argumentos con valores de la plantilla en minúsculas y con las&lt;br /&gt;
-- tildes removidas, en caso de que las tenga de forma que sea más sencillo&lt;br /&gt;
-- trabajar con las distintas variantes en los módulos.&lt;br /&gt;
-- &lt;br /&gt;
-- Nota: En caso de que haya parámetros duplicados tras la normalización solo&lt;br /&gt;
-- se mantendrá el último valor procesado por la función.&lt;br /&gt;
--&lt;br /&gt;
-- Parámetros de entrada:&lt;br /&gt;
--    frame: El marco utilizado por el módulo&lt;br /&gt;
--&lt;br /&gt;
-- Parámetros de salida:&lt;br /&gt;
--    argumentosNormalizados: los argumentos con valor y nombre normalizado&lt;br /&gt;
--    argumentosDuplicados: si la plantilla tiene varias veces el mismo &lt;br /&gt;
--        argumento tras la normalización o no&lt;br /&gt;
function z.obtenerArgumentosConValorNormalizados(frame)&lt;br /&gt;
	local argumentos = z.obtenerArgumentosConValor(frame)&lt;br /&gt;
	local argumentosNormalizados = {}&lt;br /&gt;
	local nombreNormalizado&lt;br /&gt;
	local argumentosDuplicados = false&lt;br /&gt;
	&lt;br /&gt;
	for nombre, valor in pairs(argumentos) do&lt;br /&gt;
		&lt;br /&gt;
		nombreNormalizado = nombre&lt;br /&gt;
		&lt;br /&gt;
		nombreNormalizado = mw.ustring.lower( nombreNormalizado )&lt;br /&gt;
		nombreNormalizado = string.gsub(nombreNormalizado, &amp;quot;[á]&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
		nombreNormalizado = string.gsub(nombreNormalizado, &amp;quot;[é]&amp;quot;, &amp;quot;e&amp;quot;)&lt;br /&gt;
		nombreNormalizado = string.gsub(nombreNormalizado, &amp;quot;[í]&amp;quot;, &amp;quot;i&amp;quot;)&lt;br /&gt;
		nombreNormalizado = string.gsub(nombreNormalizado, &amp;quot;[ó]&amp;quot;, &amp;quot;o&amp;quot;)&lt;br /&gt;
		nombreNormalizado = string.gsub(nombreNormalizado, &amp;quot;[úü]&amp;quot;, &amp;quot;u&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		if argumentosNormalizados[nombreNormalizado] then&lt;br /&gt;
			argumentosDuplicados = true&lt;br /&gt;
		end&lt;br /&gt;
		argumentosNormalizados[nombreNormalizado] = valor&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return argumentosNormalizados, argumentosDuplicados&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	@name	obtenerTablaDeArgumentos&lt;br /&gt;
	@global	args&lt;br /&gt;
	@param	frame&lt;br /&gt;
	@return	table&lt;br /&gt;
	@descr	Obtiene una tabla de argumentos tomando los parámetros recibidos&lt;br /&gt;
			tando desde la plantilla como desde la invocación de un módulo.&lt;br /&gt;
			En caso de duplicado tiene preferencia el valor de la invocación.&lt;br /&gt;
			Por ejemplo:&lt;br /&gt;
				con la plantilla:	{{Plantilla |campo=valor |key=clave }}&lt;br /&gt;
				y la invocación:	{{#invoke:Módulo |key=value }}&lt;br /&gt;
				se obtiene:			{ [&amp;#039;campo&amp;#039;] = &amp;#039;valor&amp;#039;, [&amp;#039;key&amp;#039;] = &amp;#039;value&amp;#039; }&lt;br /&gt;
--]]&lt;br /&gt;
function z.obtenerTablaDeArgumentos(frame)&lt;br /&gt;
	-- global args&lt;br /&gt;
	args = {}&lt;br /&gt;
	local function paramMerge(orig, copy)&lt;br /&gt;
		local data = {}&lt;br /&gt;
		for key, val in pairs(orig) do&lt;br /&gt;
			data[key] = val&lt;br /&gt;
		end&lt;br /&gt;
		for key, val in pairs(copy) do&lt;br /&gt;
			data[key] = val&lt;br /&gt;
		end&lt;br /&gt;
		return data&lt;br /&gt;
	end&lt;br /&gt;
	if frame then&lt;br /&gt;
		-- parentArgs = frame:getParent().args or {}&lt;br /&gt;
		if type(frame.getParent) == &amp;#039;function&amp;#039; then&lt;br /&gt;
			local parent = frame:getParent()&lt;br /&gt;
			if parent then&lt;br /&gt;
				args = paramMerge(args, parent.args)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		-- invokeArgs = frame.args or frame or {}&lt;br /&gt;
		if type(frame.args) == &amp;#039;table&amp;#039; then&lt;br /&gt;
			args = paramMerge(args, frame.args)&lt;br /&gt;
		elseif type(frame) == &amp;#039;table&amp;#039; then&lt;br /&gt;
			args = paramMerge(args, frame)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	@name	obtenerValorDeArgumentos&lt;br /&gt;
	@global	args&lt;br /&gt;
	@param	list&lt;br /&gt;
	@return	string or nil&lt;br /&gt;
	@descr	Obtiene el primer argumento válido desde una tabla de parámetros.&lt;br /&gt;
			Esta tabla de parámetros es una lista que contiene los nombres&lt;br /&gt;
			de los argumentos u otras tablas con las funciones para obtenerlos.&lt;br /&gt;
	Parámetros:&lt;br /&gt;
		con los argumentos:		{ [&amp;#039;campo&amp;#039;] = &amp;#039;valor&amp;#039;, [&amp;#039;key&amp;#039;] = &amp;#039;value&amp;#039; }&lt;br /&gt;
		y usando la llamada:	obtenerValorDeArgumentos{&amp;#039;dato&amp;#039;, &amp;#039;campo&amp;#039;, &amp;#039;key&amp;#039;}&lt;br /&gt;
		se obtiene el valor:	&amp;#039;valor&amp;#039;&lt;br /&gt;
		pues &amp;#039;dato&amp;#039; no es un argumento y &amp;#039;campo&amp;#039; es el primero encontrado&lt;br /&gt;
	Funciones:&lt;br /&gt;
		también se puede llamar con una función de la forma&lt;br /&gt;
			obtenerValorDeArgumentos{&amp;#039;dato&amp;#039;, { obtenerDato, &amp;#039;1&amp;#039;, &amp;#039;2&amp;#039; }}&lt;br /&gt;
		de forma que si el argumento &amp;#039;dato&amp;#039; no existe se llama a la función&lt;br /&gt;
			obtenerDato(&amp;#039;1&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
--]]&lt;br /&gt;
function z.obtenerValorDeArgumentos(list)&lt;br /&gt;
	-- global args&lt;br /&gt;
	local lang = mw.language.getContentLanguage()&lt;br /&gt;
	local err, key&lt;br /&gt;
	if type(list) == &amp;#039;number&amp;#039; then&lt;br /&gt;
		key = args[list]&lt;br /&gt;
	elseif type(list) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		key = args[list] or args[lang:ucfirst(list)]&lt;br /&gt;
	elseif type(list) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		for num, val in ipairs(list) do&lt;br /&gt;
			if type(val) == &amp;#039;string&amp;#039; then&lt;br /&gt;
				key = z.obtenerValorDeArgumentos(val)&lt;br /&gt;
			elseif type(val) == &amp;#039;function&amp;#039; then&lt;br /&gt;
				err, key = pcall(val)&lt;br /&gt;
				if err ~= true then&lt;br /&gt;
					key = nil&lt;br /&gt;
				end&lt;br /&gt;
			elseif type(val) == &amp;#039;table&amp;#039; then&lt;br /&gt;
				if val[1] and type(val[1]) == &amp;#039;function&amp;#039; then&lt;br /&gt;
					err, key = pcall(val[1], unpack(val, 2))&lt;br /&gt;
					if err ~= true then&lt;br /&gt;
						key = nil&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if key ~= nil and key ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				return key -- break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return key&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return z&lt;/div&gt;</summary>
		<author><name>Philip</name></author>
	</entry>
</feed>