<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://guanches.org/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AListas</id>
	<title>Módulo:Listas - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://guanches.org/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AListas"/>
	<link rel="alternate" type="text/html" href="https://guanches.org/index.php?title=M%C3%B3dulo:Listas&amp;action=history"/>
	<updated>2026-04-17T14:01:58Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://guanches.org/index.php?title=M%C3%B3dulo:Listas&amp;diff=218420&amp;oldid=prev</id>
		<title>Atamankad: Página creada con «local listas = {} local existeCategoria = require(&#039;Módulo:Páginas&#039;).existeCategoria  -- Función que devuelve los elementos de la lista. -- Solo se obtienen los elementos informados. function listas.ObtenerElementosLista(frame) 	local Argumentos = frame.args; 	local parent     = frame:getParent();  	if not Argumentos[1] then 		Argumentos = parent.args; 	end  	local categoria = Argumentos[&#039;categoría&#039;] or &#039;&#039; 	local ordenar   = Argumentos[&#039;ordenar&#039;]   or &#039;&#039;  	separado…»</title>
		<link rel="alternate" type="text/html" href="https://guanches.org/index.php?title=M%C3%B3dulo:Listas&amp;diff=218420&amp;oldid=prev"/>
		<updated>2026-02-12T22:28:44Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «local listas = {} local existeCategoria = require(&amp;#039;Módulo:Páginas&amp;#039;).existeCategoria  -- Función que devuelve los elementos de la lista. -- Solo se obtienen los elementos informados. function listas.ObtenerElementosLista(frame) 	local Argumentos = frame.args; 	local parent     = frame:getParent();  	if not Argumentos[1] then 		Argumentos = parent.args; 	end  	local categoria = Argumentos[&amp;#039;categoría&amp;#039;] or &amp;#039;&amp;#039; 	local ordenar   = Argumentos[&amp;#039;ordenar&amp;#039;]   or &amp;#039;&amp;#039;  	separado…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local listas = {}&lt;br /&gt;
local existeCategoria = require(&amp;#039;Módulo:Páginas&amp;#039;).existeCategoria&lt;br /&gt;
&lt;br /&gt;
-- Función que devuelve los elementos de la lista.&lt;br /&gt;
-- Solo se obtienen los elementos informados.&lt;br /&gt;
function listas.ObtenerElementosLista(frame)&lt;br /&gt;
	local Argumentos = frame.args;&lt;br /&gt;
	local parent     = frame:getParent();&lt;br /&gt;
&lt;br /&gt;
	if not Argumentos[1] then&lt;br /&gt;
		Argumentos = parent.args;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local categoria = Argumentos[&amp;#039;categoría&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local ordenar   = Argumentos[&amp;#039;ordenar&amp;#039;]   or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	separador  = frame.args[&amp;#039;separador&amp;#039;] or Argumentos[&amp;#039;separador&amp;#039;]&lt;br /&gt;
	conjuncion = frame.args[&amp;#039;conjunción&amp;#039;] or Argumentos[&amp;#039;conjunción&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	local ElementosLista = {}&lt;br /&gt;
&lt;br /&gt;
	local i = 1;&lt;br /&gt;
	local j = 0;&lt;br /&gt;
	while Argumentos[i] do&lt;br /&gt;
		local TextoAMostrar&lt;br /&gt;
		if Argumentos[i] and not Argumentos[i]:match(&amp;#039;^%s*$&amp;#039;) then&lt;br /&gt;
			j = j + 1&lt;br /&gt;
&lt;br /&gt;
			-- Añadir el enlace si no incluye ya uno&lt;br /&gt;
			local enlazar = frame.args.enlazar or parent.args.enlazar&lt;br /&gt;
&lt;br /&gt;
			if mw.ustring.find(Argumentos[i], &amp;#039;%[%[&amp;#039;) then&lt;br /&gt;
				enlazar = &amp;#039;no&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if enlazar == &amp;#039;sí&amp;#039; then&lt;br /&gt;
				-- Desambiguar eliminando el texto ente paréntesis del argumento i-ésimo si es de la forma&lt;br /&gt;
				--   &amp;quot;Texto (lo que sea)&amp;quot;.&lt;br /&gt;
				-- Esto solo se hará si después de los paréntesis no hay nada. Ejemplos:&lt;br /&gt;
				--   Alfonso Albacete (director) --&amp;gt; Alfonso Albacete&lt;br /&gt;
				--   [[Carlos Vera (árbitro de fútbol)|Carlos Vera]] --&amp;gt; [[Carlos Vera (árbitro de fútbol)|Carlos Vera]]&lt;br /&gt;
&lt;br /&gt;
				TextoAMostrar = Argumentos[i]:match(&amp;#039;^(.*)%s%(.*%)$&amp;#039;) or Argumentos[i]&lt;br /&gt;
&lt;br /&gt;
				--Obtener el espacio de nombres de los argumentos&lt;br /&gt;
				local espacio_nombres = frame.args.nspace or parent.args.nspace or frame.args[&amp;#039;espacio de nombres&amp;#039;] or parent.args[&amp;#039;espacio de nombres&amp;#039;] or mw.title.getCurrentTitle().nsText&lt;br /&gt;
&lt;br /&gt;
				if espacio_nombres == &amp;#039;&amp;#039; then&lt;br /&gt;
					--Se accede a la función con el argumento espacio_nombres pero está sin informar&lt;br /&gt;
					if Argumentos[i] == TextoAMostrar then&lt;br /&gt;
						ElementosLista[j] = mw.ustring.format(&amp;#039;[[%s]]&amp;#039;, TextoAMostrar)&lt;br /&gt;
					else&lt;br /&gt;
						ElementosLista[j] = mw.ustring.format(&amp;#039;[[%s|%s]]&amp;#039;, Argumentos[i], TextoAMostrar)&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					--Se accede sin el espacio de nombres (en cuyo caso se toma el espacio de nombres desde global) o informado.&lt;br /&gt;
&lt;br /&gt;
					--Obtener el nombre de la página (eliminando el espacio de nombres si lo tiene). Similar a {{PAGENAME:Argumentos[i]}}&lt;br /&gt;
					--Por ejemplo, si argumentos[i] vale &amp;quot;Plantilla:A&amp;quot; se informa nombrepagina con &amp;quot;A&amp;quot;.&lt;br /&gt;
					local nombrepagina&lt;br /&gt;
&lt;br /&gt;
					local noError, pageObject = pcall(mw.title.new, Argumentos[i])&lt;br /&gt;
&lt;br /&gt;
					if noError then&lt;br /&gt;
						nombrepagina = pageObject.text&lt;br /&gt;
					else&lt;br /&gt;
						nombrepagina = Argumentos[i]&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					-- Enlazar tomando como espacio de nombres el recibido en el argumento o el global.&lt;br /&gt;
					ElementosLista[j] = mw.ustring.format(&amp;#039;[[:%s:%s|%s]]&amp;#039;, espacio_nombres, nombrepagina, TextoAMostrar)&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				TextoAMostrar     = Argumentos[i]&lt;br /&gt;
				ElementosLista[j] = mw.text.trim( TextoAMostrar )&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- Añadir el delimitador&lt;br /&gt;
			local delimitador = frame.args.delimitador or parent.args.delimitador or frame.args.delim or parent.args.delim&lt;br /&gt;
&lt;br /&gt;
			if delimitador then&lt;br /&gt;
				ElementosLista[j] = delimitador .. ElementosLista[j] .. delimitador&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			--Añadir la categoría&lt;br /&gt;
			if categoria ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				-- Utilizar argumentos[i] si existe la correspondiente categoría&lt;br /&gt;
				local CategoriaElemento = existeCategoria(categoria:gsub(&amp;#039;$1&amp;#039;,Argumentos[i]))&lt;br /&gt;
&lt;br /&gt;
				-- Si no existe ver si existe la categoría eliminando el texto entre paréntesis&lt;br /&gt;
				if not CategoriaElemento and TextoAMostrar ~= Argumentos[i] then&lt;br /&gt;
					CategoriaElemento = existeCategoria(categoria:gsub(&amp;#039;$1&amp;#039;,TextoAMostrar))&lt;br /&gt;
				end&lt;br /&gt;
				if CategoriaElemento then&lt;br /&gt;
					if ordenar == &amp;#039;&amp;#039; then&lt;br /&gt;
						ElementosLista[j] = ElementosLista[j] .. &amp;#039;[[&amp;#039; .. CategoriaElemento .. &amp;#039;]]&amp;#039;&lt;br /&gt;
					else&lt;br /&gt;
						ElementosLista[j] = ElementosLista[j] .. &amp;#039;[[&amp;#039; .. CategoriaElemento .. &amp;#039;|&amp;#039; .. ordenar .. &amp;#039;]]&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		i = i + 1;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return ElementosLista&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- lista con los elementos separados por comas&lt;br /&gt;
function listas.lista(frame)&lt;br /&gt;
	-- Obtener los elementos de la lista informados.&lt;br /&gt;
	local ElementosLista= listas.ObtenerElementosLista(frame)&lt;br /&gt;
&lt;br /&gt;
	if not ElementosLista[1] then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not separador and not conjuncion then&lt;br /&gt;
		separador  = &amp;#039;,&amp;#039;&lt;br /&gt;
		conjuncion = &amp;#039;y&amp;#039;&lt;br /&gt;
	elseif separador and not conjuncion then&lt;br /&gt;
		conjuncion = separador&lt;br /&gt;
	end&lt;br /&gt;
	-- Corregir el separador&lt;br /&gt;
	if separador == &amp;#039;,&amp;#039; then&lt;br /&gt;
		separador= &amp;#039;, &amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	-- Corregir la conjunción&lt;br /&gt;
	if conjuncion == &amp;#039;o&amp;#039; then&lt;br /&gt;
		conjuncion = &amp;#039; o &amp;#039;&lt;br /&gt;
	elseif conjuncion == &amp;#039;y&amp;#039; then&lt;br /&gt;
		conjuncion = frame:preprocess(&amp;#039; {{Y-e|{{Desvincular|&amp;#039; .. ElementosLista[#ElementosLista] .. &amp;#039;}}|sin texto}} &amp;#039;) -- &amp;#039; y &amp;#039;&lt;br /&gt;
		conjuncion = &amp;#039; &amp;#039; .. conjuncion .. &amp;#039; &amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return mw.text.listToText(ElementosLista, separador, conjuncion)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function listas.listahtml(frame)&lt;br /&gt;
	local parent = frame:getParent();&lt;br /&gt;
&lt;br /&gt;
	-- Obtener los elementos de la lista informados delimitándolos con &lt;br /&gt;
	local ElementosLista= listas.ObtenerElementosLista(frame)&lt;br /&gt;
	if not ElementosLista[1] then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Añadir a los elementos de la lista &amp;lt;li&amp;gt; y &amp;lt;/li&amp;gt;&lt;br /&gt;
	local i = 1;&lt;br /&gt;
	while ElementosLista[i] do&lt;br /&gt;
		ElementosLista[i] = &amp;#039;&amp;lt;li&amp;gt;&amp;#039; .. ElementosLista[i] .. &amp;#039;&amp;lt;/li&amp;gt;&amp;#039;&lt;br /&gt;
		i = i + 1;&lt;br /&gt;
	end&lt;br /&gt;
	-- Añadir la clase en su caso&lt;br /&gt;
	local clase = frame.args.clase or parent.args.clase&lt;br /&gt;
	local final = &amp;#039;&amp;lt;ul&amp;gt;&amp;#039; .. table.concat( ElementosLista ) .. &amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;&lt;br /&gt;
	if clase then&lt;br /&gt;
		final = &amp;#039;&amp;lt;div class=&amp;quot;&amp;#039; .. clase ..&amp;#039;&amp;quot;&amp;gt;&amp;#039; .. final .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return final&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function listas.primero(frame)&lt;br /&gt;
	local ElementosLista= listas.ObtenerElementosLista(frame)&lt;br /&gt;
	if not ElementosLista[1] then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	table.sort( ElementosLista )&lt;br /&gt;
	return ElementosLista[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return listas&lt;/div&gt;</summary>
		<author><name>Atamankad</name></author>
	</entry>
</feed>