<?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%3AFicha</id>
	<title>Módulo:Ficha - 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%3AFicha"/>
	<link rel="alternate" type="text/html" href="https://guanches.org/index.php?title=M%C3%B3dulo:Ficha&amp;action=history"/>
	<updated>2026-04-17T12:55:35Z</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:Ficha&amp;diff=218601&amp;oldid=prev</id>
		<title>Admin: Importing missing module</title>
		<link rel="alternate" type="text/html" href="https://guanches.org/index.php?title=M%C3%B3dulo:Ficha&amp;diff=218601&amp;oldid=prev"/>
		<updated>2026-02-15T10:10:01Z</updated>

		<summary type="html">&lt;p&gt;Importing missing module&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--&lt;br /&gt;
-- Este módulo es para implementar en {{Ficha}}&lt;br /&gt;
--&lt;br /&gt;
 &lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
local HtmlBuilder = require(&amp;#039;Module:HtmlBuilder&amp;#039;)&lt;br /&gt;
local CategorizacionAByAD = require(&amp;#039;Módulo:Categorización de buenos y destacados&amp;#039;)&lt;br /&gt;
local marco = {} &lt;br /&gt;
local args&lt;br /&gt;
local root&lt;br /&gt;
local anchoImagen = &amp;#039;320px&amp;#039; &lt;br /&gt;
function union(t1, t2)&lt;br /&gt;
    -- devuelve la unión de los valores de dos tablas, como una secuencia&lt;br /&gt;
    local vals = {}&lt;br /&gt;
    for k, v in pairs(t1) do&lt;br /&gt;
        vals[v] = true&lt;br /&gt;
    end&lt;br /&gt;
    for k, v in pairs(t2) do&lt;br /&gt;
        vals[v] = true&lt;br /&gt;
    end&lt;br /&gt;
    local ret = {}&lt;br /&gt;
    for k, v in pairs(vals) do&lt;br /&gt;
        table.insert(ret, k)&lt;br /&gt;
    end&lt;br /&gt;
    return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function depurarVacias(contenido)&lt;br /&gt;
    if contenido and contenido ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        return contenido&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(prefix)&lt;br /&gt;
    local nums = {}&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        local num = tostring(k):match(&amp;#039;^&amp;#039; .. prefix .. &amp;#039;([1-9]%d*)$&amp;#039;)&lt;br /&gt;
        if num then table.insert(nums, tonumber(num)) end&lt;br /&gt;
    end&lt;br /&gt;
    table.sort(nums)&lt;br /&gt;
    return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function anadirfila(rowArgs)&lt;br /&gt;
    if rowArgs.seccion then&lt;br /&gt;
        root&lt;br /&gt;
            .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                .tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                    .attr(&amp;#039;colspan&amp;#039;, 3)&lt;br /&gt;
	                .addClass(&amp;#039;section&amp;#039;)&lt;br /&gt;
                    .addClass(rowArgs.clasefila)&lt;br /&gt;
                    .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                    .cssText(rowArgs.estiloseccion or args.estiloseccion)&lt;br /&gt;
                    .wikitext(rowArgs.seccion)&lt;br /&gt;
    elseif rowArgs.datos then&lt;br /&gt;
        local fila = root.tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
        fila.addClass(rowArgs.clasefila)&lt;br /&gt;
        if rowArgs.etiqueta then&lt;br /&gt;
            fila&lt;br /&gt;
                .tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                    .attr(&amp;#039;scope&amp;#039;, &amp;#039;row&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;text-align&amp;#039;, &amp;#039;left&amp;#039;)&lt;br /&gt;
					.addClass(&amp;#039;label&amp;#039;)&lt;br /&gt;
                    .addClass(rowArgs.clasefila)&lt;br /&gt;
                    .cssText (rowArgs.estiloetiqueta or args.estiloetiqueta)&lt;br /&gt;
                    .wikitext(rowArgs.etiqueta)&lt;br /&gt;
                    .done()&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local datosCelula = fila.tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
        if rowArgs.etiqueta then &lt;br /&gt;
            datosCelula&lt;br /&gt;
                .attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
        else&lt;br /&gt;
            datosCelula&lt;br /&gt;
                .attr(&amp;#039;colspan&amp;#039;, 3)&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;) &lt;br /&gt;
        end&lt;br /&gt;
        datosCelula&lt;br /&gt;
            .addClass(rowArgs.clase)&lt;br /&gt;
            .cssText (rowArgs.estilodatos or args.estilodatos)&lt;br /&gt;
&lt;br /&gt;
        -- Se añade un salto de línea porque si no se hace así y por ejemplo en los&lt;br /&gt;
        -- datos hay una lista con asteriscos en el primer elemento se muestra&lt;br /&gt;
        -- un asterisco. &lt;br /&gt;
        -- Se trata de un error que ya ocurre con tablas normales sin LUA. Por ejemplo&lt;br /&gt;
        -- {|&lt;br /&gt;
        -- | * elemento1&lt;br /&gt;
        -- * elemento2&lt;br /&gt;
        -- |}&lt;br /&gt;
        -- El salto de línea ya se producía en la plantilla Ficha/fila&lt;br /&gt;
            .wikitext(&amp;#039;\n&amp;#039; .. rowArgs.datos)&lt;br /&gt;
            --.newline()	&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hacerTitulo() -- Cabecera de la ficha&lt;br /&gt;
    if not args.titulo then return end&lt;br /&gt;
local cabecera = {}    &lt;br /&gt;
    if args.media == &amp;#039;si&amp;#039; and args.clasetitulo then&lt;br /&gt;
      cabecera = &amp;#039;media &amp;#039; .. args[&amp;#039;clasetitulo&amp;#039;]&lt;br /&gt;
    elseif args.media == &amp;#039;si&amp;#039; then&lt;br /&gt;
      cabecera = &amp;#039;media &amp;#039; &lt;br /&gt;
    elseif args.tipocabecera then&lt;br /&gt;
      cabecera = &amp;#039;cabecera &amp;#039; .. args.tipocabecera&lt;br /&gt;
    elseif args.clasetitulo then&lt;br /&gt;
      cabecera = &amp;#039;cabecera &amp;#039; .. args.clasetitulo&lt;br /&gt;
    else &lt;br /&gt;
      cabecera = &amp;#039;cabecera &amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    root&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
           .tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
              .attr(&amp;#039;colspan&amp;#039;, 3)&lt;br /&gt;
              .addClass(cabecera)&lt;br /&gt;
              .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
              .cssText( (args.colorfondo or args.colorfondotitulo) and (&amp;#039;background-color:&amp;#039; .. (args.colorfondo or args.colorfondotitulo)) )&lt;br /&gt;
              .cssText( (args.colortexto or args.colorfondo or args.colorfondotitulo) and (&amp;#039;color:&amp;#039; .. (args.colortexto or &amp;#039;inherit&amp;#039;)) )&lt;br /&gt;
              .cssText(args.estilotitulo)&lt;br /&gt;
              .wikitext(args.titulo)&lt;br /&gt;
end&lt;br /&gt;
local function hacerFilaArriba()&lt;br /&gt;
    if not args.arriba and not args.titulo2 then return end&lt;br /&gt;
 &lt;br /&gt;
    root&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            .tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                .attr(&amp;#039;colspan&amp;#039;, 3)&lt;br /&gt;
                .addClass(args.clasearribaor or args.clasetitulo2)&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                .css(&amp;#039;font-size&amp;#039;, &amp;#039;125%&amp;#039;)&lt;br /&gt;
                .css(&amp;#039;font-weight&amp;#039;, &amp;#039;bold&amp;#039;)&lt;br /&gt;
                .cssText(args.estiloarriba or args.estilotitulo2)&lt;br /&gt;
                .wikitext(args.arriba or args.titulo2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hacerPieDeTabla()-- Pie de tabla, aparecerá abajo de la ficha&lt;br /&gt;
    if not args.piedetabla then return end&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                .attr(&amp;#039;colspan&amp;#039;, &amp;#039;3&amp;#039;)&lt;br /&gt;
                .addClass(args.clasepiedetabla)&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                .cssText(args.estilopiedetabla)&lt;br /&gt;
                .wikitext(args.piedetabla)&lt;br /&gt;
end&lt;br /&gt;
local function hacerImagenInferior()-- Imagen que aparecerá en la parte inferior de la tabla&lt;br /&gt;
    if not args.imageninferior then return end&lt;br /&gt;
            imageninferior  = {}&lt;br /&gt;
            if args[&amp;#039;tamañoimageninferior&amp;#039;]  == nil or args[&amp;#039;tamañoimageninferior&amp;#039;] == &amp;#039;&amp;#039; then&lt;br /&gt;
                 args[&amp;#039;tamañoimageninferior&amp;#039;] = anchoImagen&lt;br /&gt;
            end&lt;br /&gt;
            if string.find(args.imageninferior, &amp;#039;[{[]&amp;#039;) == nil then&lt;br /&gt;
            imageninferior = (&amp;#039;[[Archivo:&amp;#039; .. args.imageninferior .. &amp;#039;|&amp;#039;.. args[&amp;#039;tamañoimageninferior&amp;#039;] .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
            else &lt;br /&gt;
            imageninferior = args.imageninferior&lt;br /&gt;
            end&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                .attr(&amp;#039;colspan&amp;#039;, &amp;#039;3&amp;#039;)&lt;br /&gt;
                .addClass(&amp;#039;imagen &amp;#039; .. (args.claseimageninferior or &amp;#039;&amp;#039;) )&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                .cssText(args.estiloimageninferior)&lt;br /&gt;
                .newline()&lt;br /&gt;
                .wikitext(imageninferior)&lt;br /&gt;
                .tag(&amp;#039;br&amp;#039;, {selfClosing = true})&lt;br /&gt;
                    .done()&lt;br /&gt;
                .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
                    .cssText(args.estilopieinferior)&lt;br /&gt;
                    .wikitext(args.pieinferior)&lt;br /&gt;
                    .done()&lt;br /&gt;
                    .newline()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hacerImagenSuperior()-- Imagen que aparecerá en la parte superior de la tabla&lt;br /&gt;
    if not args.imagensuperior then return end&lt;br /&gt;
    if args[&amp;#039;tamañoimagensuperior&amp;#039;]  == nil or args[&amp;#039;tamañoimagensuperior&amp;#039;]  == &amp;#039;&amp;#039; then&lt;br /&gt;
            args[&amp;#039;tamañoimagensuperior&amp;#039;] = anchoImagen&lt;br /&gt;
    end&lt;br /&gt;
    imagensuperior  = {}&lt;br /&gt;
            if string.find(args.imagensuperior, &amp;#039;[{[]&amp;#039;) == nil then&lt;br /&gt;
            imagensuperior = (&amp;#039;[[Archivo:&amp;#039; .. args.imagensuperior .. &amp;#039;|&amp;#039;.. args[&amp;#039;tamañoimagensuperior&amp;#039;] .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
            else &lt;br /&gt;
            imagensuperior = args.imagensuperior&lt;br /&gt;
            end&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                .attr(&amp;#039;colspan&amp;#039;, &amp;#039;3&amp;#039;)&lt;br /&gt;
                .addClass(&amp;#039;imagen &amp;#039; .. (args.claseimagensuperior or &amp;#039;&amp;#039;) )&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                .cssText(args.estiloimagensuperior)&lt;br /&gt;
                .newline()&lt;br /&gt;
                .wikitext(imagensuperior)&lt;br /&gt;
                .tag(&amp;#039;br&amp;#039;, {selfClosing = true})&lt;br /&gt;
                    .done()&lt;br /&gt;
                .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
                    .cssText(args.estilopiesuperior)&lt;br /&gt;
                    .wikitext(args.piesuperior)&lt;br /&gt;
                    .done()&lt;br /&gt;
                    .newline()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hacerSubtitulos()-- Subtítulos de la ficha&lt;br /&gt;
    if args.subtitulo then&lt;br /&gt;
        args.subtitulo1 = args.subtitulo&lt;br /&gt;
    end&lt;br /&gt;
    if args.clasesubtitulo then&lt;br /&gt;
        args.clasesubtitulo1 = args.clasesubtitulo&lt;br /&gt;
    end&lt;br /&gt;
    local subtitulonumero = getArgNums(&amp;#039;subtitulo&amp;#039;)&lt;br /&gt;
    for k, num in ipairs(subtitulonumero) do&lt;br /&gt;
        anadirfila({&lt;br /&gt;
            datos       = args[&amp;#039;subtitulo&amp;#039; .. num],&lt;br /&gt;
            estilodatos = args[&amp;#039;estilosubtitulo&amp;#039; .. num] or args.estilosubtitulo,&lt;br /&gt;
            clase       = args.clasesubtitulo,&lt;br /&gt;
            clasefila   = args[&amp;#039;clasesubtitulo&amp;#039; .. num]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
local function hacerfilassuperiores()-- filas encima de imagenes laterales &lt;br /&gt;
    if args.datosup then&lt;br /&gt;
        args.datosup1 = args.datosup&lt;br /&gt;
    end&lt;br /&gt;
    if args.clasedatosup then&lt;br /&gt;
        args.clasedatosup1 = args.clasedatosup&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if args.estilodatosup then&lt;br /&gt;
        args.estilodatosup1 = args.estilodatosup&lt;br /&gt;
    end&lt;br /&gt;
    local datosupnumero = getArgNums(&amp;#039;datosup&amp;#039;)&lt;br /&gt;
    for k, num in ipairs(datosupnumero) do&lt;br /&gt;
        anadirfila({&lt;br /&gt;
            datos = args[&amp;#039;datosup&amp;#039; .. num],&lt;br /&gt;
            estilodatos = args[&amp;#039;estilodatosup&amp;#039; .. num],&lt;br /&gt;
            clase = args.clasedatosup,&lt;br /&gt;
            clasefila = args[&amp;#039;clasedatosup&amp;#039; .. num]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
local function hacerImageneslaterales()&lt;br /&gt;
-- Imagenes que apareceran arriba de forma geminada por ejemplo escudos y banderas&lt;br /&gt;
   &lt;br /&gt;
if args[&amp;#039;tamañoimagenizquierda&amp;#039;] == &amp;quot;&amp;quot; or args[&amp;#039;tamañoimagenizquierda&amp;#039;] == nil then&lt;br /&gt;
         args[&amp;#039;tamañoimagenizquierda&amp;#039;] = &amp;#039;100px&amp;#039;&lt;br /&gt;
      end &lt;br /&gt;
      if args[&amp;#039;tamañoimagenderecha&amp;#039;] == &amp;quot;&amp;quot; or args[&amp;#039;tamañoimagenderecha&amp;#039;] == nil then&lt;br /&gt;
         args[&amp;#039;tamañoimagenderecha&amp;#039;] = &amp;#039;100px&amp;#039;&lt;br /&gt;
      end&lt;br /&gt;
   if args.imagenderecha and args.imagenizquierda then&lt;br /&gt;
      if args.pieizquierdo then brcondicionalizquierdo = &amp;#039;br&amp;#039; end&lt;br /&gt;
      if args.piederecho then brcondicionalderecho = &amp;#039;br&amp;#039; end&lt;br /&gt;
      	&lt;br /&gt;
      root&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
        .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
        --.attr(&amp;#039;cellspacing&amp;#039;, &amp;#039;0em&amp;#039;)&lt;br /&gt;
        --.attr(&amp;#039;padding&amp;#039;,&amp;#039;0em&amp;#039;)&lt;br /&gt;
        .attr(&amp;#039;colspan&amp;#039;, &amp;#039;3&amp;#039;)&lt;br /&gt;
        .css(&amp;#039;align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
        .tag(&amp;#039;table&amp;#039;) -- tiene que ir dentro de una tabla para que las filas no lo deformen&lt;br /&gt;
        .css(&amp;#039;width&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
        .addClass(&amp;#039;mergedrow&amp;#039;)&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
            .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                .addClass(args.claseimagenizquierda)&lt;br /&gt;
                .css(&amp;#039;align&amp;#039;, &amp;#039;center&amp;#039;)-- Se alinea en el centro horizontal&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;) -- Se alinea en el centro horizontal&lt;br /&gt;
                .css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)-- Se alinea en el centro vertical &lt;br /&gt;
                .cssText(args.estiloimagenizquierda)&lt;br /&gt;
                .wikitext(&amp;#039;[[Archivo:&amp;#039; .. args.imagenizquierda .. &amp;#039;|&amp;#039; .. args[&amp;#039;tamañoimagenizquierda&amp;#039;] .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
                .tag(brcondicionalizquierdo)&lt;br /&gt;
                .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
                    .cssText(args.estilopieizquierdo)&lt;br /&gt;
                    .wikitext(args.pieizquierdo)&lt;br /&gt;
                    .done()&lt;br /&gt;
            .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)-- Se alinea en el centro horizontal&lt;br /&gt;
                .css(&amp;#039;align&amp;#039;, &amp;#039;center&amp;#039;)-- Se alinea en el centro horizontal&lt;br /&gt;
                .css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)-- Se alinea en el centro vertical&lt;br /&gt;
                .addClass(args.claseimagenderecha)&lt;br /&gt;
                .cssText(args.estiloimagenderecha)       &lt;br /&gt;
                .wikitext(&amp;#039;[[Archivo:&amp;#039; .. args.imagenderecha .. &amp;#039;|&amp;#039; .. args[&amp;#039;tamañoimagenderecha&amp;#039;] .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
                .tag(brcondicionalderecho)&lt;br /&gt;
                .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
                    .cssText(args.estilopiederecho)&lt;br /&gt;
                    .wikitext(args.piederecho)&lt;br /&gt;
                    .done()&lt;br /&gt;
                .newline()&lt;br /&gt;
     elseif args.imagenderecha or args.imagenizquierda then &lt;br /&gt;
-- Si solo una de las dos, la imagen que aparezca estará en el centro&lt;br /&gt;
         imagenL = {}    &lt;br /&gt;
           if args.imagenderecha ~= &amp;#039;&amp;#039; and  args.imagenderecha ~= nil then&lt;br /&gt;
               imagenL = &amp;#039;imagenderecha&amp;#039;  &lt;br /&gt;
           elseif args.imagenizquierda ~= &amp;#039;&amp;#039; and  args.imagenizquierda ~= nil then&lt;br /&gt;
               imagenL = &amp;#039;imagenizquierda&amp;#039;&lt;br /&gt;
           end&lt;br /&gt;
        pieL = {}&lt;br /&gt;
          if args.imagenderecha then&lt;br /&gt;
               pieL = &amp;#039;piederecho&amp;#039; &lt;br /&gt;
          elseif args.imagenizquierda then&lt;br /&gt;
               pieL = &amp;#039;pieizquierdo&amp;#039; &lt;br /&gt;
          end&lt;br /&gt;
      root&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                .attr(&amp;#039;colspan&amp;#039;, &amp;#039;3&amp;#039;)&lt;br /&gt;
                .addClass(args[&amp;#039;clase&amp;#039; .. imagenL])&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                .cssText(args[&amp;#039;estilo&amp;#039; .. imagenL])&lt;br /&gt;
                .newline()&lt;br /&gt;
                .wikitext(&amp;#039;[[Archivo:&amp;#039; ..  args[imagenL] .. &amp;#039;|&amp;#039;.. args[&amp;#039;tamaño&amp;#039;..imagenL] .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
                .tag(&amp;#039;br&amp;#039;)&lt;br /&gt;
                .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                   .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
                   .cssText(args[&amp;#039;estilo&amp;#039; .. pieL])&lt;br /&gt;
                   .wikitext(args[pieL])&lt;br /&gt;
                   .done()&lt;br /&gt;
                &lt;br /&gt;
    end&lt;br /&gt;
    end&lt;br /&gt;
            &lt;br /&gt;
local function hacerImagenes() -- Puede crear un número infinito de imágenes &lt;br /&gt;
    if args.imagen then&lt;br /&gt;
        args.imagen1 = args.imagen&lt;br /&gt;
    end&lt;br /&gt;
     if args[&amp;#039;tamañoimagen&amp;#039;] then&lt;br /&gt;
        args[&amp;#039;tamañoimagen1&amp;#039;] = args[&amp;#039;tamañoimagen&amp;#039;]&lt;br /&gt;
     end&lt;br /&gt;
     if args[&amp;#039;imagenmodooscuro&amp;#039;] then&lt;br /&gt;
        args[&amp;#039;imagenmodooscuro1&amp;#039;] = args[&amp;#039;imagenmodooscuro&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if args.pie then&lt;br /&gt;
        args.pie1 = args.pie&lt;br /&gt;
    end&lt;br /&gt;
    local imagenums = getArgNums(&amp;#039;imagen&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    for k, num in ipairs(imagenums) do&lt;br /&gt;
        local pie = args[&amp;#039;pie&amp;#039; .. num]&lt;br /&gt;
        local flotante = args[&amp;#039;imagenflotante&amp;#039; .. num] or false&lt;br /&gt;
            if args[&amp;#039;tamañoimagen&amp;#039;..num]  == nil then&lt;br /&gt;
                args[&amp;#039;tamañoimagen&amp;#039;..num]  = anchoImagen&lt;br /&gt;
            end&lt;br /&gt;
        &lt;br /&gt;
        -- Comprobamos si se ha activado el argumento imagenmodooscuro para esta imagen&lt;br /&gt;
        local claseInversion = args[&amp;#039;imagenmodooscuro&amp;#039; .. num] and &amp;#039;class=skin-invert-image&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
            &lt;br /&gt;
        imagen  = {}&lt;br /&gt;
            local cadenaBusqueda = mw.ustring.gsub(args[&amp;#039;imagen&amp;#039;..num],&amp;#039;UNIQ&amp;#039;,&amp;#039;[&amp;#039;) -- Para que no de problemas con ciertas plantillas&lt;br /&gt;
            if mw.ustring.find(cadenaBusqueda, &amp;#039;[{[|]&amp;#039;) == nil then -- Comprueba si hay [ o { para no añadir prefijo&lt;br /&gt;
            imagen = (&amp;#039;[[Archivo:&amp;#039; .. args[&amp;#039;imagen&amp;#039; .. num] .. &amp;#039;|&amp;#039;.. args[&amp;#039;tamañoimagen&amp;#039; ..num] .. &amp;#039;|&amp;#039; .. claseInversion .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
            else &lt;br /&gt;
            imagen = args[&amp;#039;imagen&amp;#039;..num]&lt;br /&gt;
            end&lt;br /&gt;
        local datos = HtmlBuilder.create().wikitext(imagen)&lt;br /&gt;
        if pie and not flotante then&lt;br /&gt;
        	datos&lt;br /&gt;
                .tag(&amp;#039;br&amp;#039;, {selfClosing = true})&lt;br /&gt;
                    .done()&lt;br /&gt;
        end&lt;br /&gt;
        if pie then&lt;br /&gt;
            datos&lt;br /&gt;
                .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
                    .cssText(args.estilopie)&lt;br /&gt;
                    .wikitext(pie)&lt;br /&gt;
                    .done()&lt;br /&gt;
        end&lt;br /&gt;
        anadirfila({&lt;br /&gt;
            datos = tostring(datos),&lt;br /&gt;
            estilodatos = args.estiloimagen,&lt;br /&gt;
            clase = &amp;#039;imagen &amp;#039; .. (args.claseimagen or &amp;#039;&amp;#039;),&lt;br /&gt;
            clasefila = args[&amp;#039;claseimagen&amp;#039; .. num]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hacerFilas()&lt;br /&gt;
    local filanum = union(getArgNums(&amp;#039;seccion&amp;#039;), getArgNums(&amp;#039;datos&amp;#039;))&lt;br /&gt;
    table.sort(filanum)&lt;br /&gt;
    for k, num in ipairs(filanum) do&lt;br /&gt;
        anadirfila({&lt;br /&gt;
            estilosubtitulo = depurarVacias(args[&amp;#039;estilosubtitulo&amp;#039; .. num]),&lt;br /&gt;
            seccion         = depurarVacias(args[&amp;#039;seccion&amp;#039; .. num]),&lt;br /&gt;
            estiloseccion   = depurarVacias(args[&amp;#039;estilosección&amp;#039; .. num]),&lt;br /&gt;
            etiqueta        = depurarVacias(args[&amp;#039;etiqueta&amp;#039; .. num]),&lt;br /&gt;
            datos           = depurarVacias(args[&amp;#039;datos&amp;#039; .. num]),&lt;br /&gt;
            estiloetiqueta  = depurarVacias(args[&amp;#039;estiloetiqueta&amp;#039; .. num]),&lt;br /&gt;
            estilodatos     = depurarVacias(args[&amp;#039;estilodatos&amp;#039; .. num]),&lt;br /&gt;
            clase           = depurarVacias(args[&amp;#039;clase&amp;#039; .. num]),&lt;br /&gt;
            clasefila       = depurarVacias(args[&amp;#039;clasefila&amp;#039; .. num])&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tieneDatosFila(fila)&lt;br /&gt;
    -- Función que devuelve true si la fila o grupo de filas (en el caso de&lt;br /&gt;
    -- secciones) tiene datos.&lt;br /&gt;
    &lt;br /&gt;
    if fila.tipo == &amp;#039;sección&amp;#039; or fila.tipo == &amp;#039;seccion&amp;#039; then&lt;br /&gt;
        for k, filaSeccion in ipairs(fila) do&lt;br /&gt;
            if tieneDatosFila(filaSeccion) then &lt;br /&gt;
                return true&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    elseif fila.tipo == &amp;#039;sucesión&amp;#039; or fila.tipo == &amp;#039;sucesion&amp;#039; then&lt;br /&gt;
        if depurarVacias(fila[1]) or depurarVacias(fila[&amp;#039;anterior&amp;#039;]) or&lt;br /&gt;
           depurarVacias(fila[3]) or depurarVacias(fila[&amp;#039;siguiente&amp;#039;]) then &lt;br /&gt;
            return true &lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        if depurarVacias(fila[2]) or depurarVacias(fila[&amp;#039;datos&amp;#039;]) then&lt;br /&gt;
            return true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function anadirSucesion(argumentosSucesion)&lt;br /&gt;
    local filaGen = root.tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
    filaGen.css(&amp;#039;font-size&amp;#039;, &amp;#039;88%&amp;#039;)&lt;br /&gt;
    filaGen.css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    local celda&lt;br /&gt;
    local width&lt;br /&gt;
    &lt;br /&gt;
    width = &amp;#039;33%&amp;#039;&lt;br /&gt;
    &lt;br /&gt;
    local celdaGen = filaGen.tag(&amp;#039;td&amp;#039;).attr(&amp;#039;colspan&amp;#039;, 3).css(&amp;#039;padding&amp;#039;, 0)&lt;br /&gt;
    local tablaSuc = celdaGen.tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
    tablaSuc.css(&amp;#039;width&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
    local fila = tablaSuc.tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    celda = fila.tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
    celda&lt;br /&gt;
            .css(&amp;#039;width&amp;#039;, width)&lt;br /&gt;
            .css(&amp;#039;padding&amp;#039;, &amp;#039;0.2em 0.1em 0.2em 0&amp;#039;)&lt;br /&gt;
            .css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    if argumentosSucesion[&amp;#039;estilo fuente&amp;#039;] then&lt;br /&gt;
           celda&lt;br /&gt;
                .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;font-style&amp;#039;, argumentosSucesion[&amp;#039;estilo fuente&amp;#039;])&lt;br /&gt;
                    .wikitext(argumentosSucesion.anterior)&lt;br /&gt;
                    .done()&lt;br /&gt;
    else &lt;br /&gt;
        celda.wikitext(argumentosSucesion.anterior)&lt;br /&gt;
    end&lt;br /&gt;
        &lt;br /&gt;
    if argumentosSucesion[&amp;#039;año anterior&amp;#039;] then&lt;br /&gt;
        celda&lt;br /&gt;
            .tag(&amp;#039;br&amp;#039;)&lt;br /&gt;
            .wikitext(&amp;#039;(&amp;#039; .. argumentosSucesion[&amp;#039;año anterior&amp;#039;] .. &amp;#039;)&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    celda = fila.tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
    celda&lt;br /&gt;
         .css(&amp;#039;width&amp;#039;, width)    &lt;br /&gt;
            .css(&amp;#039;padding&amp;#039;, &amp;#039;0.2em 0.1em&amp;#039;)&lt;br /&gt;
            .css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
            .css(&amp;#039;background-color&amp;#039;, argumentosSucesion.color or &amp;#039;#E6E8FA&amp;#039;)&lt;br /&gt;
            &lt;br /&gt;
    celda&lt;br /&gt;
         .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
              .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
              .css(&amp;#039;font-weight&amp;#039;, &amp;#039;bold&amp;#039;)&lt;br /&gt;
              .css(&amp;#039;font-style&amp;#039;, argumentosSucesion[&amp;#039;estilo fuente&amp;#039;] or &amp;#039;&amp;#039;)&lt;br /&gt;
              .wikitext(argumentosSucesion.actual or args.titulo)&lt;br /&gt;
              .done()&lt;br /&gt;
              &lt;br /&gt;
    if argumentosSucesion[&amp;#039;año&amp;#039;] then&lt;br /&gt;
        celda&lt;br /&gt;
            .tag(&amp;#039;br&amp;#039;)&lt;br /&gt;
            .wikitext(&amp;#039;(&amp;#039; .. argumentosSucesion[&amp;#039;año&amp;#039;] .. &amp;#039;)&amp;#039;)&lt;br /&gt;
    end              &lt;br /&gt;
    &lt;br /&gt;
    celda = fila.tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
    celda&lt;br /&gt;
            .css(&amp;#039;width&amp;#039;, width)&lt;br /&gt;
            .css(&amp;#039;padding&amp;#039;, &amp;#039;0.2em 0 0.2em 0.1em&amp;#039;)&lt;br /&gt;
            .css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
        &lt;br /&gt;
    if argumentosSucesion[&amp;#039;estilo fuente&amp;#039;] then&lt;br /&gt;
           celda&lt;br /&gt;
                .tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;display&amp;#039;,&amp;#039;inline&amp;#039;)&lt;br /&gt;
                    .css(&amp;#039;font-style&amp;#039;, argumentosSucesion[&amp;#039;estilo fuente&amp;#039;])&lt;br /&gt;
                    .wikitext(argumentosSucesion.siguiente)&lt;br /&gt;
                    .done()&lt;br /&gt;
    else &lt;br /&gt;
        celda.wikitext(argumentosSucesion.siguiente)&lt;br /&gt;
    end&lt;br /&gt;
        &lt;br /&gt;
    if argumentosSucesion[&amp;#039;año siguiente&amp;#039;] then&lt;br /&gt;
        celda&lt;br /&gt;
            .tag(&amp;#039;br&amp;#039;)&lt;br /&gt;
            .wikitext(&amp;#039;(&amp;#039; .. argumentosSucesion[&amp;#039;año siguiente&amp;#039;] .. &amp;#039;)&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
function hacerFilasTabla(tabla)&lt;br /&gt;
    -- Función que compone las filas de una tabla bien la ficha o bien una sección de la misma.&lt;br /&gt;
    &lt;br /&gt;
    local anadidoTituloSeccion = false&lt;br /&gt;
    &lt;br /&gt;
    for k, fila in ipairs(tabla) do&lt;br /&gt;
        if tieneDatosFila(fila) then&lt;br /&gt;
            if fila.tipo == &amp;#039;sección&amp;#039; or fila.tipo == &amp;#039;seccion&amp;#039; then&lt;br /&gt;
                -- Añadir el título de la sección (si está informado)&lt;br /&gt;
                local tituloSeccion = depurarVacias(fila.titulo) or depurarVacias(fila[&amp;#039;título&amp;#039;])&lt;br /&gt;
                if tituloSeccion then&lt;br /&gt;
                    anadirfila({&lt;br /&gt;
                        estiloseccion = fila[&amp;#039;estilotitulo&amp;#039;] or fila[&amp;#039;estilotítulo&amp;#039;],&lt;br /&gt;
                        seccion       = tituloSeccion&lt;br /&gt;
                   })&lt;br /&gt;
                end&lt;br /&gt;
                hacerFilasTabla(fila)&lt;br /&gt;
            elseif fila.tipo == &amp;#039;sección desplegable&amp;#039; or fila.tipo == &amp;#039;seccion desplegable&amp;#039; then -- FALTA&lt;br /&gt;
            elseif fila.tipo == &amp;#039;sucesión&amp;#039;or fila.tipo == &amp;#039;sucesion&amp;#039; then&lt;br /&gt;
                anadirSucesion({&lt;br /&gt;
                    [&amp;#039;anterior&amp;#039;]      = depurarVacias(fila[1]) or depurarVacias(fila[&amp;#039;anterior&amp;#039;]),&lt;br /&gt;
                    [&amp;#039;actual&amp;#039;]        = depurarVacias(fila[&amp;#039;actual&amp;#039;]),&lt;br /&gt;
                    [&amp;#039;siguiente&amp;#039;]     = depurarVacias(fila[3]) or depurarVacias(fila[&amp;#039;siguiente&amp;#039;]),&lt;br /&gt;
                    [&amp;#039;año anterior&amp;#039;]  = depurarVacias(fila[&amp;#039;año anterior&amp;#039;]),&lt;br /&gt;
                    [&amp;#039;año&amp;#039;]           = depurarVacias(fila[&amp;#039;año&amp;#039;]),&lt;br /&gt;
                    [&amp;#039;año siguiente&amp;#039;] = depurarVacias(fila[&amp;#039;año siguiente&amp;#039;]),&lt;br /&gt;
                    [&amp;#039;estilo fuente&amp;#039;] = depurarVacias(fila[&amp;#039;estilo fuente&amp;#039;]),&lt;br /&gt;
                    [&amp;#039;color&amp;#039;]         = depurarVacias(fila[&amp;#039;color&amp;#039;])&lt;br /&gt;
                })&lt;br /&gt;
            elseif fila.tipo == &amp;#039;dos columnas&amp;#039;  then -- FALTA&lt;br /&gt;
            elseif fila.tipo == &amp;#039;tres columnas&amp;#039; then -- FALTA            &lt;br /&gt;
            else                      -- Etiqueta + Datos o solo Datos&lt;br /&gt;
                anadirfila({&lt;br /&gt;
                    etiqueta       = depurarVacias(fila[1]) or depurarVacias(fila[&amp;#039;etiqueta&amp;#039;]),&lt;br /&gt;
                    datos          = depurarVacias(fila[2]) or depurarVacias(fila[&amp;#039;datos&amp;#039;]),&lt;br /&gt;
                    estiloetiqueta = fila[&amp;#039;estiloetiqueta&amp;#039;] or tabla[&amp;#039;estiloetiqueta&amp;#039;],&lt;br /&gt;
                    estilodatos    = fila[&amp;#039;estilodatos&amp;#039;]    or tabla[&amp;#039;estilodatos&amp;#039;],&lt;br /&gt;
                    clase          = fila[&amp;#039;clase&amp;#039;]          or tabla[&amp;#039;clase&amp;#039;],&lt;br /&gt;
                    clasefila      = fila[&amp;#039;clasefila&amp;#039;]      or tabla[&amp;#039;clasefila&amp;#039;]&lt;br /&gt;
                })&lt;br /&gt;
            end        &lt;br /&gt;
        end&lt;br /&gt;
    end   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hacerBarraDeNavegacion()-- Crea en la parte inferior un enlace a la plantilla que se de con nombre&lt;br /&gt;
    if not args.nombre then return end&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        .tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                .attr(&amp;#039;colspan&amp;#039;, &amp;#039;3&amp;#039;)&lt;br /&gt;
                .css(&amp;#039;text-align&amp;#039;, &amp;#039;right&amp;#039;)&lt;br /&gt;
                .wikitext(mw.getCurrentFrame():expandTemplate({ &lt;br /&gt;
                    title = &amp;#039;navbar&amp;#039;, &lt;br /&gt;
                    args = { args.nombre, mini = 1 }&lt;br /&gt;
                }))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hacerBarraWikidata()-- Crea en la parte inferior un enlace al ítem de Wikidata&lt;br /&gt;
   &lt;br /&gt;
    local enlacePagina = mw.title.getCurrentTitle().prefixedText &lt;br /&gt;
    local etiquetaPagina = mw.ustring.gsub(enlacePagina,&amp;#039;%s%(.*%)&amp;#039;,&amp;#039;&amp;#039;) &lt;br /&gt;
    local entidad = args.entidad or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
    local textoPie = &amp;quot;&amp;quot;&lt;br /&gt;
    if  (args.child == &amp;#039;si&amp;#039; or args.integrada == &amp;#039;sí&amp;#039; or args.wikidata == &amp;#039;no&amp;#039;) or (mw.title.getCurrentTitle().namespace ~= 0 and mw.title.getCurrentTitle().namespace ~= 104 and not args.entidad) then&lt;br /&gt;
        textoPie = &amp;#039;&amp;#039;&lt;br /&gt;
    elseif  entidad ~= &amp;quot;&amp;quot; and entidad ~= nil  then&lt;br /&gt;
        textoPie = &amp;#039;&amp;lt;div class=&amp;quot;plainlinks wikidata-link&amp;quot; style=&amp;quot;font-size: 0.85em&amp;quot;&amp;gt;&amp;amp;#x5B;[[d:&amp;#039; .. tostring(entidad) .. &amp;#039;|editar datos en Wikidata]]&amp;amp;#x5D;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
        if (entidad ~= mw.wikibase.getEntityIdForCurrentPage()) and (mw.title.getCurrentTitle().namespace == 0 or mw.title.getCurrentTitle().namespace == 104)  then&lt;br /&gt;
        	textoPie = textoPie .. &amp;#039;[[Categoría:Wikipedia:Artículos con fichas que utilizan acceso arbitrario]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        textoPie = &amp;quot;&amp;lt;small&amp;gt;&amp;#039;&amp;#039;&amp;#039;Página no enlazada a [[Wikidata]]&amp;#039;&amp;#039;&amp;#039;\n&amp;quot;..&lt;br /&gt;
&amp;quot;* Si no existe en otras Wikipedias: [&amp;lt;span class=plainlinks&amp;gt;[//www.wikidata.org/w/index.php?title=Special:NewItem&amp;amp;site=eswiki&amp;amp;page=&amp;quot;..mw.uri.encode(enlacePagina,WIKI) ..&amp;quot;&amp;amp;label=&amp;quot;..mw.uri.encode(etiquetaPagina,WIKI) ..&amp;quot; crea&amp;amp;nbsp;nuevo&amp;amp;nbsp;ítem]]&amp;lt;/span&amp;gt;\n&amp;quot;..&lt;br /&gt;
&amp;quot;* Si existe en otras Wikipedias: [&amp;lt;span class=plainlinks&amp;gt;[[:d:Special:ItemByTitle|busca&amp;amp;nbsp;ítem&amp;amp;nbsp;para&amp;amp;nbsp;enlazar]]&amp;lt;/span&amp;gt;]\n&amp;quot;..&lt;br /&gt;
&amp;quot;y añade el enlace en español: &amp;quot;.. enlacePagina ..&amp;quot;.&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    if textoPie ~= &amp;#039;&amp;#039; then&lt;br /&gt;
    	root&lt;br /&gt;
        	.tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	            .tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
	                .addClass(&amp;#039;noprint&amp;#039;)&lt;br /&gt;
                	.attr(&amp;#039;colspan&amp;#039;, &amp;#039;3&amp;#039;)&lt;br /&gt;
                	.css(&amp;#039;text-align&amp;#039;, &amp;#039;left&amp;#039;)&lt;br /&gt;
                	.wikitext(textoPie)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
local function hacerCategoriasSeguimiento()&lt;br /&gt;
    if args.decat ~= &amp;#039;si&amp;#039; and #(getArgNums(&amp;#039;datos&amp;#039;)) == 0 and not args[1] and mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
        root.wikitext(&amp;#039;[[Categoría:Wikipedia:Artículos que usan ficha sin datos en filas]]&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if CategorizacionAByAD.hasAnyBadge() == &amp;#039;1&amp;#039; then&lt;br /&gt;
	    root.wikitext(CategorizacionAByAD.badgesCategories())&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function _infobox()&lt;br /&gt;
    if args.child ~= &amp;#039;si&amp;#039; and args.integrada ~= &amp;#039;sí&amp;#039; then&lt;br /&gt;
        root = HtmlBuilder.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
        &lt;br /&gt;
        root   -- Estilo de toda la ficha         &lt;br /&gt;
            .addClass(&amp;#039;infobox&amp;#039;)&lt;br /&gt;
            .addClass(args.clase)&lt;br /&gt;
            .cssText(&amp;#039;width:22.7em; line-height: 1.4em; text-align:left; padding:.23em&amp;#039;) -- Lo mismo que la plantilla:Ficha&lt;br /&gt;
            .cssText(args.estilo)&lt;br /&gt;
        if args.estilo and (mw.title.getCurrentTitle().namespace == 10) then -- Para que sólo lo añada en el espacio de nombres plantilla&lt;br /&gt;
        	root.wikitext(&amp;#039;[[Categoría:Wikipedia:Fichas con el parámetro estilo]]&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
        hacerTitulo()&lt;br /&gt;
        hacerFilaArriba()&lt;br /&gt;
    else&lt;br /&gt;
        root = HtmlBuilder.create()&lt;br /&gt;
        &lt;br /&gt;
        if args.titulo then&lt;br /&gt;
            root.wikitext(&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; .. args.titulo .. &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    hacerSubtitulos()&lt;br /&gt;
    hacerImagenSuperior()&lt;br /&gt;
    hacerImageneslaterales()&lt;br /&gt;
    hacerfilassuperiores()&lt;br /&gt;
    hacerImagenes() &lt;br /&gt;
    if not args[1] then&lt;br /&gt;
        hacerFilas()&lt;br /&gt;
    else&lt;br /&gt;
        hacerFilasTabla(args)&lt;br /&gt;
    end&lt;br /&gt;
    hacerImagenInferior()&lt;br /&gt;
    hacerPieDeTabla()  &lt;br /&gt;
    hacerBarraDeNavegacion()&lt;br /&gt;
    hacerBarraWikidata()&lt;br /&gt;
    hacerCategoriasSeguimiento()&lt;br /&gt;
    &lt;br /&gt;
    return mw.getCurrentFrame():extensionTag{ name = &amp;#039;templatestyles&amp;#039;, args = { src = &amp;#039;Plantilla:Ficha/imagelimit.css&amp;#039; } } .. tostring(root)&lt;br /&gt;
end&lt;br /&gt;
local function touchParameters(prefixTable, origArgs, step)&lt;br /&gt;
    -- Analiza los parámetros con los prefijos dados, en orden por lotes lotes y con el tamaño  especificado a step. &lt;br /&gt;
    -- Esto es para evitar referencias etc aparezca en el orden equivocado.&lt;br /&gt;
    if type(prefixTable) ~= &amp;#039;table&amp;#039; or type(origArgs) ~= &amp;#039;table&amp;#039; then&lt;br /&gt;
        error(&amp;quot;Entrada no válida detectada para la función touchParameters. Ambos parámetros deben ser tablas.&amp;quot;, 2)&lt;br /&gt;
    end&lt;br /&gt;
    if step and type(step) ~= &amp;#039;number&amp;#039; then&lt;br /&gt;
        error(&amp;quot;Detectado valor no numérico en step.&amp;quot;, 2)&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    step = step or 20 -- Si no se le da el tamaño a step, el valor predeterminado es 20.&lt;br /&gt;
    local temp&lt;br /&gt;
    local a = 1 -- variable de contador.&lt;br /&gt;
    local moreArgumentsExist = true&lt;br /&gt;
    for j,v in ipairs(prefixTable) do&lt;br /&gt;
        if not type(v) == &amp;quot;string&amp;quot; then&lt;br /&gt;
            error(&amp;quot;Detectado un valor que no es string en el prefijo de la tabla por la función touchParameters.&amp;quot;, 2)&lt;br /&gt;
        end&lt;br /&gt;
        temp = origArgs[v]&lt;br /&gt;
    end&lt;br /&gt;
    while moreArgumentsExist == true do&lt;br /&gt;
        moreArgumentsExist = false&lt;br /&gt;
        for i = a, a + step - 1 do&lt;br /&gt;
            for j,v in ipairs(prefixTable) do&lt;br /&gt;
                temp = origArgs[v .. tostring(i)]&lt;br /&gt;
                if temp then&lt;br /&gt;
                    moreArgumentsExist = true&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        a = a + step&lt;br /&gt;
    end&lt;br /&gt;
end &lt;br /&gt;
function p.infobox(frame)&lt;br /&gt;
    local origArgs&lt;br /&gt;
    marco = frame&lt;br /&gt;
    -- Si se llama a través de #invoke, utilice los argumentos pasados ​​a la plantilla de invocación.&lt;br /&gt;
    -- De lo contrario, para fines de prueba, asume args que se pasan directamente como parámetros.&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        origArgs = frame:getParent().args&lt;br /&gt;
    else&lt;br /&gt;
        origArgs = frame&lt;br /&gt;
    end&lt;br /&gt;
 -- Analizar los parámetros de datos en el mismo orden que la plantilla {{ficha}} lo hace, por lo que&lt;br /&gt;
 -- referencias etc. se mostrarán en los lugares previstos.&lt;br /&gt;
    local temp&lt;br /&gt;
    temp = origArgs.titulo&lt;br /&gt;
    temp = origArgs.arriba&lt;br /&gt;
    touchParameters({&amp;#039;subtitulo&amp;#039;}, origArgs, 5)&lt;br /&gt;
    touchParameters({&amp;#039;imagen&amp;#039;, &amp;#039;pie&amp;#039;}, origArgs, 5)&lt;br /&gt;
    touchParameters({&amp;#039;seccion&amp;#039;, &amp;#039;etiqueta&amp;#039;, &amp;#039;datos&amp;#039;}, origArgs, 20)&lt;br /&gt;
    temp = origArgs.piedetabla&lt;br /&gt;
&lt;br /&gt;
    -- El analizador de funciones  considera que una cadena vacía es falsa, por lo que para preservar el anterior&lt;br /&gt;
    -- comportamiento de {{Ficha}}, debe cambiar los argumentos vacíos a cero, por lo que Lua los considerará&lt;br /&gt;
    -- que son falsos también (excepto parámetros &amp;#039;title cursiva&amp;#039;, que especifica un comportamiento diferente&lt;br /&gt;
    -- dependiendo de si está ausente o vacío)&lt;br /&gt;
    args = {}&lt;br /&gt;
    for k, v in pairs(origArgs) do&lt;br /&gt;
        if v ~= &amp;#039;&amp;#039;  then&lt;br /&gt;
            args[k] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return _infobox()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>