<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.mundoconan.com/w/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3APortada</id>
	<title>Módulo:Portada - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mundoconan.com/w/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3APortada"/>
	<link rel="alternate" type="text/html" href="https://wiki.mundoconan.com/w/index.php?title=M%C3%B3dulo:Portada&amp;action=history"/>
	<updated>2026-10-15T05:31:37Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.mundoconan.com/w/index.php?title=M%C3%B3dulo:Portada&amp;diff=72&amp;oldid=prev</id>
		<title>Administrador: Correcciones de diseño</title>
		<link rel="alternate" type="text/html" href="https://wiki.mundoconan.com/w/index.php?title=M%C3%B3dulo:Portada&amp;diff=72&amp;oldid=prev"/>
		<updated>2026-10-15T01:33:07Z</updated>

		<summary type="html">&lt;p&gt;Correcciones de diseño&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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 03:33 15 oct 2026&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-l90&quot;&gt;Línea 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 90:&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;	end)&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;	end)&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;	texto = texto:gsub(&amp;#039;__[A-ZÁÉÍÓÚ]+__&amp;#039;, &amp;#039;&amp;#039;)&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;	texto = texto:gsub(&amp;#039;__[A-ZÁÉÍÓÚ]+__&amp;#039;, &amp;#039;&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	texto = texto:gsub(&#039;%s*%(%s*[,;]?%s*%)&#039;, &#039;&#039;)&lt;/ins&gt;&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 parrafo in mw.text.gsplit(texto, &amp;#039;\n%s*\n&amp;#039;) 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 parrafo in mw.text.gsplit(texto, &amp;#039;\n%s*\n&amp;#039;) do&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;		parrafo = mw.text.trim(parrafo)&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;		parrafo = mw.text.trim(parrafo)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mundoconan_wiki:diff:1.41:old-25:rev-72:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.mundoconan.com/w/index.php?title=M%C3%B3dulo:Portada&amp;diff=25&amp;oldid=prev</id>
		<title>Administrador: Plantillas y diseño de MundoConan Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.mundoconan.com/w/index.php?title=M%C3%B3dulo:Portada&amp;diff=25&amp;oldid=prev"/>
		<updated>2026-10-15T01:24:43Z</updated>

		<summary type="html">&lt;p&gt;Plantillas y diseño de MundoConan Wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Módulo:Portada — piezas dinámicas de la Página principal.&lt;br /&gt;
--   {{#invoke:Portada|rotar|pagina=Plantilla:Portada/Sabías que|n=3}}  -&amp;gt; n elementos que cambian cada día&lt;br /&gt;
--   {{#invoke:Portada|personaje|pagina=Plantilla:Portada/Personajes}}   -&amp;gt; personaje del día&lt;br /&gt;
--   {{#invoke:Portada|destacado}}                                       -&amp;gt; artículo de MediaWiki:Portada-destacado&lt;br /&gt;
-- La portada se refresca sola cada noche (cron que purga la Página principal).&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function lineas(pagina)&lt;br /&gt;
	local t = mw.title.new(pagina)&lt;br /&gt;
	local contenido = t and t:getContent()&lt;br /&gt;
	if not contenido then&lt;br /&gt;
		return {}&lt;br /&gt;
	end&lt;br /&gt;
	local out = {}&lt;br /&gt;
	for linea in mw.text.gsplit(contenido, &amp;#039;\n&amp;#039;, true) do&lt;br /&gt;
		local item = linea:match(&amp;#039;^%*%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
		if item and item ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			table.insert(out, item)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function dia()&lt;br /&gt;
	return math.floor(os.time() / 86400)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.rotar(frame)&lt;br /&gt;
	local items = lineas(frame.args.pagina or &amp;#039;&amp;#039;)&lt;br /&gt;
	local n = tonumber(frame.args.n) or 1&lt;br /&gt;
	if #items == 0 then&lt;br /&gt;
		return &amp;quot;&amp;#039;&amp;#039;Aún no hay elementos. Añádelos en [[&amp;quot; .. (frame.args.pagina or &amp;#039;&amp;#039;) .. &amp;quot;]].&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	n = math.min(n, #items)&lt;br /&gt;
	local inicio = (dia() * n) % #items&lt;br /&gt;
	local out = {}&lt;br /&gt;
	for i = 0, n - 1 do&lt;br /&gt;
		table.insert(out, &amp;#039;* &amp;#039; .. items[((inicio + i) % #items) + 1])&lt;br /&gt;
	end&lt;br /&gt;
	return frame:preprocess(table.concat(out, &amp;#039;\n&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.personaje(frame)&lt;br /&gt;
	local pagina = frame.args.pagina or &amp;#039;Plantilla:Portada/Personajes&amp;#039;&lt;br /&gt;
	local items = lineas(pagina)&lt;br /&gt;
	if #items == 0 then&lt;br /&gt;
		return &amp;quot;&amp;#039;&amp;#039;Añade personajes en [[&amp;quot; .. pagina .. &amp;quot;]].&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local partes = mw.text.split(items[(dia() % #items) + 1], &amp;#039;|&amp;#039;, true)&lt;br /&gt;
	local nombre = mw.text.trim(partes[1] or &amp;#039;&amp;#039;)&lt;br /&gt;
	local archivo = mw.text.trim(partes[2] or &amp;#039;&amp;#039;)&lt;br /&gt;
	local desc = mw.text.trim(partes[3] or &amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local caja = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-pdd&amp;#039;)&lt;br /&gt;
	local img = caja:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-pdd__img&amp;#039;)&lt;br /&gt;
	if archivo ~= &amp;#039;&amp;#039; and mw.title.new(&amp;#039;Archivo:&amp;#039; .. archivo).file.exists then&lt;br /&gt;
		img:wikitext(&amp;#039;[[Archivo:&amp;#039; .. archivo .. &amp;#039;|160x160px|link=&amp;#039; .. nombre .. &amp;#039;|alt=&amp;#039; .. nombre .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		img:tag(&amp;#039;span&amp;#039;):addClass(&amp;#039;mc-pdd__sin&amp;#039;):wikitext(&amp;#039;🕵️&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	local txt = caja:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-pdd__txt&amp;#039;)&lt;br /&gt;
	txt:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-pdd__nombre&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. nombre .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
	if desc ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		txt:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-pdd__desc&amp;#039;):wikitext(desc)&lt;br /&gt;
	end&lt;br /&gt;
	txt:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-pdd__mas&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. nombre .. &amp;#039;|Leer artículo →]]&amp;#039;)&lt;br /&gt;
	return frame:preprocess(tostring(caja))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Primer párrafo legible de un artículo (sin plantillas, tablas, imágenes ni referencias)&lt;br /&gt;
local function intro(texto)&lt;br /&gt;
	texto = texto:gsub(&amp;#039;&amp;lt;!%-%-.-%-%-&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	texto = texto:gsub(&amp;#039;%b{}&amp;#039;, function(s)&lt;br /&gt;
		local ini = s:sub(1, 2)&lt;br /&gt;
		if ini == &amp;#039;{{&amp;#039; or ini == &amp;#039;{|&amp;#039; then&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		return s&lt;br /&gt;
	end)&lt;br /&gt;
	texto = texto:gsub(&amp;#039;&amp;lt;ref[^&amp;gt;]-/&amp;gt;&amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;&amp;lt;ref.-&amp;lt;/ref&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	texto = texto:gsub(&amp;#039;%b[]&amp;#039;, function(s)&lt;br /&gt;
		local ns = s:match(&amp;#039;^%[%[%s*([^:|%]]+):&amp;#039;)&lt;br /&gt;
		if ns then&lt;br /&gt;
			ns = mw.ustring.lower(ns)&lt;br /&gt;
			if ns == &amp;#039;archivo&amp;#039; or ns == &amp;#039;file&amp;#039; or ns == &amp;#039;imagen&amp;#039; or ns == &amp;#039;image&amp;#039; or ns == &amp;#039;categoría&amp;#039; or ns == &amp;#039;category&amp;#039; then&lt;br /&gt;
				return &amp;#039;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return s&lt;br /&gt;
	end)&lt;br /&gt;
	texto = texto:gsub(&amp;#039;__[A-ZÁÉÍÓÚ]+__&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	for parrafo in mw.text.gsplit(texto, &amp;#039;\n%s*\n&amp;#039;) do&lt;br /&gt;
		parrafo = mw.text.trim(parrafo)&lt;br /&gt;
		local c = parrafo:sub(1, 1)&lt;br /&gt;
		if parrafo ~= &amp;#039;&amp;#039; and c ~= &amp;#039;=&amp;#039; and c ~= &amp;#039;&amp;lt;&amp;#039; and c ~= &amp;#039;*&amp;#039; and c ~= &amp;#039;#&amp;#039; and c ~= &amp;#039;:&amp;#039; and c ~= &amp;#039;;&amp;#039; then&lt;br /&gt;
			if mw.ustring.len(parrafo) &amp;gt; 480 then&lt;br /&gt;
				local corto = mw.ustring.sub(parrafo, 1, 480)&lt;br /&gt;
				local corte = corto:match(&amp;#039;^(.*[%.!%?])%s&amp;#039;)&lt;br /&gt;
				parrafo = (corte or corto) .. &amp;#039; …&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			return parrafo&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.destacado(frame)&lt;br /&gt;
	local fuente = mw.title.new(&amp;#039;MediaWiki:Portada-destacado&amp;#039;)&lt;br /&gt;
	local nombre = fuente and fuente:getContent()&lt;br /&gt;
	nombre = nombre and mw.text.trim(nombre) or &amp;#039;&amp;#039;&lt;br /&gt;
	if nombre == &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;quot;&amp;#039;&amp;#039;Aún no hay artículo destacado. Los administradores lo eligen escribiendo su título en [[MediaWiki:Portada-destacado]].&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local t = mw.title.new(nombre)&lt;br /&gt;
	if not t or not t.exists then&lt;br /&gt;
		return &amp;quot;&amp;#039;&amp;#039;El artículo destacado, [[&amp;quot; .. nombre .. &amp;quot;]], todavía no existe. ¡Puedes crearlo!&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if t.isRedirect and t.redirectTarget then&lt;br /&gt;
		t = t.redirectTarget&lt;br /&gt;
	end&lt;br /&gt;
	local contenido = t:getContent() or &amp;#039;&amp;#039;&lt;br /&gt;
	local imagen = contenido:match(&amp;#039;|%s*imagen%s*=%s*([^|\n}]+)&amp;#039;)&lt;br /&gt;
	imagen = imagen and mw.text.trim(imagen):gsub(&amp;#039;^[Aa]rchivo:&amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;^[Ff]ile:&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local caja = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-dest&amp;#039;)&lt;br /&gt;
	if imagen and imagen ~= &amp;#039;&amp;#039; and mw.title.new(&amp;#039;Archivo:&amp;#039; .. imagen).file.exists then&lt;br /&gt;
		caja:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-dest__img&amp;#039;)&lt;br /&gt;
			:wikitext(&amp;#039;[[Archivo:&amp;#039; .. imagen .. &amp;#039;|220px|link=&amp;#039; .. t.prefixedText .. &amp;#039;|alt=]]&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	local txt = caja:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-dest__txt&amp;#039;)&lt;br /&gt;
	txt:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-dest__titulo&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. t.prefixedText .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
	txt:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-dest__intro&amp;#039;):newline():wikitext(intro(contenido) or &amp;#039;&amp;#039;)&lt;br /&gt;
	txt:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mc-pdd__mas&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. t.prefixedText .. &amp;#039;|Seguir leyendo →]]&amp;#039;)&lt;br /&gt;
	return frame:preprocess(tostring(caja))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
</feed>