睡觉头晕是什么原因引起的| 交感神经型颈椎病吃什么药| 碳酸氢铵是什么| 开髓引流是什么| 两会什么时候开| 珍珠是用什么做的| 什么是平行世界| 家里停电了打什么电话| 小孩检查微量元素挂什么科| 满载而归的载是什么意思| 取环挂什么科室| 记性不好吃什么药| 什么是职业病| 头皮痒用什么药最有效| 肺积水是什么病| 家里狗死了预示着什么| 梦见染头发是什么意思| 梦到和别人吵架是什么意思| 孩子晚上睡觉磨牙是什么原因| bu什么颜色| 儿童过敏性皮炎用什么药膏| 农历今天属什么| 心凉是什么意思| 但愿人长久的下一句是什么| 瑶浴是什么意思| 儿童吃什么钙片补钙效果好| 7.14什么情人节| 梦见打官司预示着什么| 皮肤癣用什么药| 世界大同是什么意思| 农历正月初一是什么节| 仕途是什么意思| 晚上难入睡是什么原因| 尼龙属于什么材料| 调虎离山是什么意思| 刘璋和刘备什么关系| 小孩血压低是什么原因| 去非洲要打什么疫苗| 荷尔蒙爆棚是什么意思| kelme是什么牌子| 高血压突然变成低血压是什么原因| 为什么不能下午看病人| 风流倜傥是什么意思| nyc是什么牌子| fci是什么意思| 哈气是什么意思| 男人蛋蛋疼是什么原因| 脾虚要吃什么东西调理| 脖子后面长痘痘是什么原因| 鸡和什么属相最配对| 房颤用什么药| 囊肿挂什么科| 宫颈囊肿是什么症状| 坐飞机需要什么证件| 金命适合什么颜色| 脸上发麻是什么原因| 小鸭子吃什么食物| 隔离和防晒有什么区别| 洋人是什么意思| 犀利哥什么意思| 骨穿是检查什么病| 肌红蛋白是什么意思| pci是什么意思| 梦见老宅是什么意思| 做放疗的人吃什么好| 吃黄瓜对身体有什么好处| 桥本甲状腺炎吃什么药| 皮肤发白一块一块的是什么病| 点灯是什么意思| 一见倾心什么意思| 结扎是什么意思| 带银饰有什么好处| 尿里有泡沫是什么病| 猫为什么吃老鼠| 什么是包皮过长图片| 农历9月21日是什么星座| 亵渎什么意思| 锅包肉是什么肉| 什么耳机比较好| 腰酸痛是什么原因| 军国主义是什么意思| 流感挂什么科| 逆商是什么| 下午六点半是什么时辰| 益生菌治什么病| 郎中是什么意思| 肾囊肿是什么原因引起的| 女人喜欢什么姿势| 便秘吃什么可以调理| 什么菜好消化又养胃| 心电图异常q波什么意思| 什么的天安门| 减张缝合是什么意思| 什么叫资本运作| 荨麻疹吃什么药好得快| 中气下陷是什么意思| 固摄是什么意思| 尿亚硝酸盐阳性是什么意思| 外阴皮肤痒是什么原因| 雷峰塔为什么叫雷峰塔| 共济失调是什么意思| 月经期间吃西瓜有什么影响| 班别是什么意思| 德字五行属什么| 苦瓜汤为什么要放黄豆| 孕期什么时候补钙| 但愿人长久的下一句是什么| 不亚于是什么意思| 素女是什么意思| 阿斯巴甜是什么东西| 蛇的五行属什么| bae什么意思| 7月一日是什么节日| 嘴甜是什么原因| 什么又什么又什么| 包粽子的叶子叫什么| 经常放屁是什么问题| 张少华什么时候去世的| 9月10日是什么节| 部首和偏旁有什么区别| 什么叫撤退性出血| 9月10日是什么节日| 直肠炎吃什么药最好| 中心句是什么意思| 打胎用什么药| 身体逐渐消瘦是什么原因| 什么样的人容易抑郁| 白什么什么| 咽炎吃什么药最管用| 咽喉炎是什么症状| 鱼刺卡喉咙去医院挂什么科| 上梁不正下梁歪是什么意思| 腿不自觉的抖是什么原因| 子宁不嗣音什么意思| 为什么睡觉会流口水| 吃什么能缓解孕吐| 为什么天上会下雨| 胆结石挂什么科室| 吃什么对血管好| 醉是什么生肖| 梦见自己生了个女儿是什么预兆| 什么样的伤口算开放性| 男朋友发烧该说些什么| 国安局是什么单位| 什么不迫| 肠炎发烧吃什么药| f4什么意思| 钵仔糕粉是什么粉| 什么是嗳气| 九月十七日是什么星座| 不遗余力的遗是什么意思| 检查贫血挂什么科| 金刚芭比什么意思| 王景读什么| 女同叫什么| 为什么清真不吃猪肉| 煞笔是什么意思| 肾阳虚是什么原因引起的| 为什么低血糖| 手串断了是什么预兆| 俄狄浦斯情结是什么意思| 透析病人磷高了吃什么降磷| 诸事皆宜是什么意思| 尿潜血1十是什么原因| 下眼睑浮肿是什么原因| 没有力气是什么原因| 6月11日是什么星座| 抽烟为什么会头晕| uu解脲脲原体阳性是什么意思| 三教九流指的是什么| 失眠多梦吃什么药效果最好| 不变应万变是什么意思| 小孩子坐飞机需要什么证件| 鲲是什么意思| 梨涡是什么意思| 好久不见是什么意思| 五路财神都叫什么名字| 纹眉失败擦什么淡化| 什么叫做亚健康| 肤浅是什么意思| 骨结核是什么病| 高铁为什么会晚点| 女性长胡子是什么原因| 主动脉夹层是什么原因引起的| 一丝不苟是什么生肖| 25度穿什么衣服| 金鱼吃什么| 色织布是什么面料| 为什么会长疱疹| 茯苓有什么功效和作用| 抓周是什么意思| 带刺的玫瑰是什么意思| 网络拒绝接入什么意思| 肝火旺吃什么药好| 小周天是什么意思| 九月生日是什么星座| 补锌吃什么药| 孩子睡觉流口水是什么原因| 左眼皮一直跳是什么原因| 大肠头是什么部位| 蒙蒙的什么| 脾肾阳虚是什么意思| 肝阳虚吃什么中成药| 狮子座是什么星座| 小腹疼痛什么原因| 吃榴莲有什么好处和坏处| 头左边痛是什么原因| 什么是软饮料| 抑扬顿挫什么意思| 为什么会有阴道炎| 布洛芬不能和什么一起吃| 怀孕抽烟对孩子有什么影响| 鱼翅是什么鱼身上的| 什么人不能吃石斛| 亲嘴有什么好处| 重水是什么水| 27属什么| 卵巢囊肿术后吃什么食物好| 627是什么星座| 72年属鼠是什么命| 肌底液是干什么用的| 叫什么| 检查肝肾功能挂什么科| 蟑螂卵什么样| 肺部玻璃结节是什么病| 含羞草为什么会害羞| 早上睡不醒是什么原因| 什么潭什么穴| 在是什么意思| 晟这个字念什么| 女性一般什么年龄绝经| my什么牌子| 头疼吃什么药最有效| 早上八点到九点属于什么时辰| 颇负盛名的颇是什么意思| 一厢情愿指什么生肖| 手心脱皮是什么原因| 相顾无言是什么意思| 风湿性心脏病吃什么药| 爬山有什么好处| fpa是什么意思| 喉咙有异物感挂什么科| kai是什么意思| 孙悟空原名叫什么| 均码是什么意思| 九月初三是什么星座| 肺部条索灶是什么意思| 建议是什么意思| 吃维生素b2有什么好处| 体细胞是什么意思| 男生什么时候会有生理反应| 无利不起早是什么意思| 现在什么时辰| 背靠背协议是什么意思| 头皮痛是什么原因| 心脏缺血吃什么药| 自残是什么心理| 外露什么意思| 手指发麻是什么原因| 零申报是什么意思| 梦见涨大水是什么意思| 以示是什么意思| 21岁属什么生肖| 肌肉酸痛是什么原因| 百度Ir al contenido

【大家谈】“五个一百”吹开正能量的“满屏花海”

īhuīcpa Huiquipedia, in yōllōxoxouhqui cēntlamatilizāmoxtli
百度 由此,我认为鼓励民间公益是解决贫富差别的根本解决之道。

La documentación para este módulo puede ser creada en Módulo:Amatl/doc

--
-- Este módulo es para implementar en {{Amatl}}
--
 
local p = {}
 
local HtmlBuilder = require('Module:HtmlBuilder')
local CategorizacionAByAD = require('Módulo:Categorización_de_buenos_y_destacados')
local marco = {} 
local args
local root
local anchoImagen = '245px' 
function union(t1, t2)
    -- devuelve la unión de los valores de dos tablas, como una secuencia
    local vals = {}
    for k, v in pairs(t1) do
        vals[v] = true
    end
    for k, v in pairs(t2) do
        vals[v] = true
    end
    local ret = {}
    for k, v in pairs(vals) do
        table.insert(ret, k)
    end
    return ret
end

local function depurarVacias(contenido)
    if contenido and contenido ~= '' then
        return contenido
    end
end

local function getArgNums(prefix)
    local nums = {}
    for k, v in pairs(args) do
        local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
        if num then table.insert(nums, tonumber(num)) end
    end
    table.sort(nums)
    return nums
end

local function anadirfila(rowArgs)
    if rowArgs.seccion then
        root
            .tag('tr')
                .tag('th')
                    .attr('colspan', 3)
                    .addClass(rowArgs.clasefila)
                    .css('text-align', 'center')
                    .cssText(rowArgs.estiloseccion or args.estiloseccion)
                    .wikitext(rowArgs.seccion)
    elseif rowArgs.datos then
        local fila = root.tag('tr')
        fila.addClass(rowArgs.clasefila)
        if rowArgs.etiqueta then
            fila
                .tag('th')
                    .attr('scope', 'row')
                    .css('text-align', 'left')
                    .addClass(rowArgs.clasefila)
                    .cssText (rowArgs.estiloetiqueta or args.estiloetiqueta)
                    .wikitext(rowArgs.etiqueta)
                    .done()
        end
        
        local datosCelula = fila.tag('td')

        if rowArgs.etiqueta then 
            datosCelula
                .attr('colspan', 2)
        else
            datosCelula
                .attr('colspan', 3)
                .css('text-align', 'center') 
        end
        datosCelula
            .addClass(rowArgs.clase)
            .cssText (rowArgs.estilodatos or args.estilodatos)

        -- Se a?ade un salto de línea porque si no se hace así y por ejemplo en los
        -- datos hay una lista con asteriscos en el primer elemento se muestra
        -- un asterisco. 
        -- Se trata de un error que ya ocurre con tablas normales sin LUA. Por ejemplo
        -- {|
        -- | * elemento1
        -- * elemento2
        -- |}
        -- El salto de línea ya se producía en la plantilla Ficha/fila
            .wikitext('\n' .. rowArgs.datos)
            --.newline()	
    end
end

local function hacerTitulo() -- Cabecera de la ficha
    if not args.titulo then return end
local cabecera = {}    
    if args.media == 'si' and args.clasetitulo then
      cabecera = 'media ' .. args['clasetitulo']
    elseif args.media == 'si' then
      cabecera = 'media ' 
    elseif args.tipocabecera then
      cabecera = 'cabecera ' .. args.tipocabecera
    elseif args.clasetitulo then
      cabecera = 'cabecera ' .. args.clasetitulo
    else 
      cabecera = 'cabecera '
    end
    root
        .tag('tr')
           .tag('th')
              .attr('colspan', 3)
              .addClass(cabecera)
              .css('text-align', 'center')
              .css('background-color', args.colorfondo or args.colorfondotitulo or 'transparent')
              .css('color', args.colortexto or 'black')
              .cssText(args.estilotitulo)
              .wikitext(args.titulo)
end
local function hacerFilaArriba()
    if not args.arriba and not args.titulo2 then return end
 
    root
        .tag('tr')
            .tag('th')
                .attr('colspan', 3)
                .addClass(args.clasearribaor or args.clasetitulo2)
                .css('text-align', 'center')
                .css('font-size', '125%')
                .css('font-weight', 'bold')
                .cssText(args.estiloarriba or args.estilotitulo2)
                .wikitext(args.arriba or args.titulo2)
end

local function hacerPieDeTabla()-- Pie de tabla, aparecerá abajo de la ficha
    if not args.piedetabla then return end
    
    root
        .tag('tr')
            .tag('td')
                .attr('colspan', '3')
                .addClass(args.clasepiedetabla)
                .css('text-align', 'center')
                .cssText(args.estilopiedetabla)
                .wikitext(args.piedetabla)
end
local function hacerImagenInferior()-- Imagen que aparecerá en la parte inferior de la tabla
    if not args.imageninferior then return end
            imageninferior  = {}
            if args['tama?oimageninferior']  == nil or args['tama?oimageninferior'] == '' then
                 args['tama?oimageninferior'] = anchoImagen
            end
            if string.find(args.imageninferior, '[{[]') == nil then
            imageninferior = ('[[Archivo:' .. args.imageninferior .. '|'.. args['tama?oimageninferior'] .. ']]' )
            else 
            imageninferior = args.imageninferior
            end
    
    root
        .tag('tr')
            .tag('td')
                .attr('colspan', '3')
                .addClass(args.claseimageninferior)
                .css('text-align', 'center')
                .cssText(args.estiloimageninferior)
                .newline()
                .wikitext(imageninferior)
                .tag('br', {selfClosing = true})
                    .done()
                .tag('div')
                    .css('display','inline')
                    .cssText(args.estilopieinferior)
                    .wikitext(args.pieinferior)
                    .done()
                    .newline()
end

local function hacerImagenSuperior()-- Imagen que aparecerá en la parte superior de la tabla
    if not args.imagensuperior then return end
    if args['tama?oimagensuperior']  == nil or args['tama?oimagensuperior']  == '' then
            args['tama?oimagensuperior'] = anchoImagen
    end
    imagensuperior  = {}
            if string.find(args.imagensuperior, '[{[]') == nil then
            imagensuperior = ('[[Archivo:' .. args.imagensuperior .. '|'.. args['tama?oimagensuperior'] .. ']]' )
            else 
            imagensuperior = args.imagensuperior
            end
    
    root
        .tag('tr')
            .tag('td')
                .attr('colspan', '3')
                .addClass(args.claseimagensuperior)
                .css('text-align', 'center')
                .cssText(args.estiloimagensuperior)
                .newline()
                .wikitext(imagensuperior)
                .tag('br', {selfClosing = true})
                    .done()
                .tag('div')
                    .css('display','inline')
                    .cssText(args.estilopiesuperior)
                    .wikitext(args.piesuperior)
                    .done()
                    .newline()
end

local function hacerSubtitulos()-- Subtítulos de la ficha
    if args.subtitulo then
        args.subtitulo1 = args.subtitulo
    end
    if args.clasesubtitulo then
        args.clasesubtitulo1 = args.clasesubtitulo
    end
    local subtitulonumero = getArgNums('subtitulo')
    for k, num in ipairs(subtitulonumero) do
        anadirfila({
            datos       = args['subtitulo' .. num],
            estilodatos = args['estilosubtitulo' .. num] or args.estilosubtitulo,
            clase       = args.clasesubtitulo,
            clasefila   = args['clasesubtitulo' .. num]
        })
    end
end
local function hacerfilassuperiores()-- filas encima de imagenes laterales 
    if args.datosup then
        args.datosup1 = args.datosup
    end
    if args.clasedatosup then
        args.clasedatosup1 = args.clasedatosup
    end

    if args.estilodatosup then
        args.estilodatosup1 = args.estilodatosup
    end
    local datosupnumero = getArgNums('datosup')
    for k, num in ipairs(datosupnumero) do
        anadirfila({
            datos = args['datosup' .. num],
            estilodatos = args['estilodatosup' .. num],
            clase = args.clasedatosup,
            clasefila = args['clasedatosup' .. num]
        })
    end
end
local function hacerImageneslaterales()
-- Imagenes que apareceran arriba de forma geminada por ejemplo escudos y banderas
   
if args['tama?oimagenizquierda'] == "" or args['tama?oimagenizquierda'] == nil then
         args['tama?oimagenizquierda'] = '100px'
      end 
      if args['tama?oimagenderecha'] == "" or args['tama?oimagenderecha'] == nil then
         args['tama?oimagenderecha'] = '100px'
      end
   if args.imagenderecha and args.imagenizquierda then
      if args.pieizquierdo then brcondicionalizquierdo = 'br' end
      if args.piederecho then brcondicionalderecho = 'br' end
      	
      root
        .tag('tr')
        .tag('td')
        --.attr('cellspacing', '0em')
        --.attr('padding','0em')
        .attr('colspan', '3')
        .css('align', 'center')
        .tag('table') -- tiene que ir dentro de una tabla para que las filas no lo deformen
        .css('width', '100%')
        .addClass('mergedrow')
        .tag('tr')
            .tag('td')
            .css('text-align', 'center')
                .css('background-color', 'transparent')
                .addClass(args.claseimagenizquierda)
                .css('align', 'center')-- Se alinea en el centro horizontal
                .css('text-align', 'center') -- Se alinea en el centro horizontal
                .css('vertical-align', 'middle')-- Se alinea en el centro vertical 
                .cssText(args.estiloimagenizquierda)
                .wikitext('[[Archivo:' .. args.imagenizquierda .. '|' .. args['tama?oimagenizquierda'] .. ']]' )
                .tag(brcondicionalizquierdo)
                .tag('div')
                    .css('display','inline')
                    .cssText(args.estilopieizquierdo)
                    .wikitext(args.pieizquierdo)
                    .done()
            .tag('td')
                .css('text-align', 'center')-- Se alinea en el centro horizontal
                .css('align', 'center')-- Se alinea en el centro horizontal
                .css('vertical-align', 'middle')-- Se alinea en el centro vertical
                .css('background-color', 'transparent')
                .addClass(args.claseimagenderecha)
                .cssText(args.estiloimagenderecha)       
                .wikitext('[[Archivo:' .. args.imagenderecha .. '|' .. args['tama?oimagenderecha'] .. ']]' )
                .tag(brcondicionalderecho)
                .tag('div')
                    .css('display','inline')
                    .cssText(args.estilopiederecho)
                    .wikitext(args.piederecho)
                    .done()
                .newline()
     elseif args.imagenderecha or args.imagenizquierda then 
-- Si solo una de las dos, la imagen que aparezca estará en el centro
         imagenL = {}    
           if args.imagenderecha ~= '' and  args.imagenderecha ~= nil then
               imagenL = 'imagenderecha'  
           elseif args.imagenizquierda ~= '' and  args.imagenizquierda ~= nil then
               imagenL = 'imagenizquierda'
           end
        pieL = {}
          if args.imagenderecha then
               pieL = 'piederecho' 
          elseif args.imagenizquierda then
               pieL = 'pieizquierdo' 
          end
      root
        .tag('tr')
            .tag('td')
                .attr('colspan', '3')
                .addClass(args['clase' .. imagenL])
                .css('text-align', 'center')
                .cssText(args['estilo' .. imagenL])
                .newline()
                .wikitext('[[Archivo:' ..  args[imagenL] .. '|'.. args['tama?o'..imagenL] .. ']]' )
                .tag('br')
                .tag('div')
                   .css('display','inline')
                   .cssText(args['estilo' .. pieL])
                   .wikitext(args[pieL])
                   .done()
                
    end
    end
            
local function hacerImagenes() -- Puede crear un número infinito de imágenes 
    if args.imagen then
        args.imagen1 = args.imagen
    end
     if args['tama?oimagen'] then
        args['tama?oimagen1'] = args['tama?oimagen']
    end

    if args.pie then
        args.pie1 = args.pie
    end
    local imagenums = getArgNums('imagen')

    for k, num in ipairs(imagenums) do
        local pie = args['pie' .. num]
        local flotante = args['imagenflotante' .. num] or false
            if args['tama?oimagen'..num]  == nil then
                args['tama?oimagen'..num]  =    anchoImagen
            end
        imagen  = {}
            local cadenaBusqueda = mw.ustring.gsub(args['imagen'..num],'UNIQ','[') -- Para que no de problemas con ciertas plantillas
            if mw.ustring.find(cadenaBusqueda, '[{[|]') == nil then -- Comprueba si hay [ o { para no a?adir prefijo
            imagen = ('[[Archivo:' .. args['imagen' .. num] .. '|'.. args['tama?oimagen' ..num] .. ']]' )
            else 
            imagen = args['imagen'..num]
            end
        local datos = HtmlBuilder.create().wikitext(imagen)
        if pie and not flotante then
        	datos
                .tag('br', {selfClosing = true})
                    .done()
        end
        if pie then
            datos
                .tag('div')
                    .css('display','inline')
                    .cssText(args.estilopie)
                    .wikitext(pie)
                    .done()
        end
        anadirfila({
            datos = tostring(datos),
            estilodatos = args.estiloimagen,
            clase = args.claseimagen,
            clasefila = args['claseimagen' .. num]
        })
    end
end

local function hacerFilas()
    local filanum = union(getArgNums('seccion'), getArgNums('datos'))
    table.sort(filanum)
    for k, num in ipairs(filanum) do
        anadirfila({
            estilosubtitulo = depurarVacias(args['estilosubtitulo' .. num]),
            seccion         = depurarVacias(args['seccion' .. num]),
            estiloseccion   = depurarVacias(args['estilosección' .. num]),
            etiqueta        = depurarVacias(args['etiqueta' .. num]),
            datos           = depurarVacias(args['datos' .. num]),
            estiloetiqueta  = depurarVacias(args['estiloetiqueta' .. num]),
            estilodatos     = depurarVacias(args['estilodatos' .. num]),
            clase           = depurarVacias(args['clase' .. num]),
            clasefila       = depurarVacias(args['clasefila' .. num])
        })
    end
end

function tieneDatosFila(fila)
    -- Función que devuelve true si la fila o grupo de filas (en el caso de
    -- secciones) tiene datos.
    
    if fila.tipo == 'sección' or fila.tipo == 'seccion' then
        for k, filaSeccion in ipairs(fila) do
            if tieneDatosFila(filaSeccion) then 
                return true
            end
        end
    elseif fila.tipo == 'sucesión' or fila.tipo == 'sucesion' then
        if depurarVacias(fila[1]) or depurarVacias(fila['anterior']) or
           depurarVacias(fila[3]) or depurarVacias(fila['siguiente']) then 
            return true 
        end
    else
        if depurarVacias(fila[2]) or depurarVacias(fila['datos']) then
            return true
        end
    end
    
    return false
end

function anadirSucesion(argumentosSucesion)
    local fila = root.tag('tr')
    fila.css('font-size', '88%')
    fila.css('text-align', 'center')
    
    local celda
    local width
    
    width = '33%'
    
    celda = fila.tag('td')
    celda
            .css('width', width)
            .css('padding', '0.2em 0.1em 0.2em 0')
            .css('vertical-align', 'middle')

    if argumentosSucesion['estilo fuente'] then
           celda
                .tag('div')
                    .css('display','inline')
                    .css('font-style', argumentosSucesion['estilo fuente'])
                    .wikitext(argumentosSucesion.anterior)
                    .done()
    else 
        celda.wikitext(argumentosSucesion.anterior)
    end
        
    if argumentosSucesion['a?o anterior'] then
        celda
            .tag('br')
            .wikitext('(' .. argumentosSucesion['a?o anterior'] .. ')')
    end
    
    celda = fila.tag('td')
    celda
         .css('width', width)    
            .css('padding', '0.2em 0.1em')
            .css('vertical-align', 'middle')
            .css('background-color', argumentosSucesion.color or '#E6E8FA')
            
    celda
         .tag('div')
              .css('display','inline')
              .css('font-weight', 'bold')
              .css('font-style', argumentosSucesion['estilo fuente'] or '')
              .wikitext(argumentosSucesion.actual or args.titulo)
              .done()
              
    if argumentosSucesion['a?o'] then
        celda
            .tag('br')
            .wikitext('(' .. argumentosSucesion['a?o'] .. ')')
    end              
    
    celda = fila.tag('td')
    celda
            .css('width', width)
            .css('padding', '0.2em 0 0.2em 0.1em')
            .css('vertical-align', 'middle')
        
    if argumentosSucesion['estilo fuente'] then
           celda
                .tag('div')
                    .css('display','inline')
                    .css('font-style', argumentosSucesion['estilo fuente'])
                    .wikitext(argumentosSucesion.siguiente)
                    .done()
    else 
        celda.wikitext(argumentosSucesion.siguiente)
    end
        
    if argumentosSucesion['a?o siguiente'] then
        celda
            .tag('br')
            .wikitext('(' .. argumentosSucesion['a?o siguiente'] .. ')')
    end
end
function hacerFilasTabla(tabla)
    -- Función que compone las filas de una tabla bien la ficha o bien una sección de la misma.
    
    local anadidoTituloSeccion = false
    
    for k, fila in ipairs(tabla) do
        if tieneDatosFila(fila) then
            if fila.tipo == 'sección' or fila.tipo == 'seccion' then
                -- A?adir el título de la sección (si está informado)
                local tituloSeccion = depurarVacias(fila.titulo) or depurarVacias(fila['título'])
                if tituloSeccion then
                    anadirfila({
                        estiloseccion = fila['estilotitulo'] or fila['estilotítulo'],
                        seccion       = tituloSeccion
                   })
                end
                hacerFilasTabla(fila)
            elseif fila.tipo == 'sección desplegable' or fila.tipo == 'seccion desplegable' then -- FALTA
            elseif fila.tipo == 'sucesión'or fila.tipo == 'sucesion' then
                anadirSucesion({
                    ['anterior']      = depurarVacias(fila[1]) or depurarVacias(fila['anterior']),
                    ['actual']        = depurarVacias(fila['actual']),
                    ['siguiente']     = depurarVacias(fila[3]) or depurarVacias(fila['siguiente']),
                    ['a?o anterior']  = depurarVacias(fila['a?o anterior']),
                    ['a?o']           = depurarVacias(fila['a?o']),
                    ['a?o siguiente'] = depurarVacias(fila['a?o siguiente']),
                    ['estilo fuente'] = depurarVacias(fila['estilo fuente']),
                    ['color']         = depurarVacias(fila['color'])
                })
            elseif fila.tipo == 'dos columnas'  then -- FALTA
            elseif fila.tipo == 'tres columnas' then -- FALTA            
            else                      -- Etiqueta + Datos o solo Datos
                anadirfila({
                    etiqueta       = depurarVacias(fila[1]) or depurarVacias(fila['etiqueta']),
                    datos          = depurarVacias(fila[2]) or depurarVacias(fila['datos']),
                    estiloetiqueta = fila['estiloetiqueta'] or tabla['estiloetiqueta'],
                    estilodatos    = fila['estilodatos']    or tabla['estilodatos'],
                    clase          = fila['clase']          or tabla['clase'],
                    clasefila      = fila['clasefila']      or tabla['clasefila']
                })
            end        
        end
    end   
end

local function hacerBarraDeNavegacion()-- Crea en la parte inferior un enlace a la plantilla que se de con nombre
    if not args.nombre then return end
    
    root
        .tag('tr')
            .tag('td')
                .attr('colspan', '3')
                .css('text-align', 'right')
                .wikitext(mw.getCurrentFrame():expandTemplate({ 
                    title = 'navbar', 
                    args = { args.nombre, mini = 1 }
                }))
end

local function hacerBarraWikidata()-- Crea en la parte inferior un enlace al ítem de Wikidata
--    local wikibase = require('Módulo:Wikibase')
--    local enlacePagina = mw.title.getCurrentTitle().text 
--    local etiquetaPagina = mw.ustring.gsub(enlacePagina,'%s%(.*%)','') 
--    local entidad = args.entidad or wikibase.id()
--    local textoPie = ""
--    if  (args.child == 'si' or args.integrada == 'sí' or args.wikidata == 'no') or (mw.title.getCurrentTitle().namespace ~= 0 and mw.title.getCurrentTitle().namespace ~= 104 and not args.entidad) then
--        textoPie = ''
--    elseif  entidad ~= "" and entidad ~= nil  then
--       textoPie = '<div class="plainlinks wikidata-link" style="font-size: 0.85em">&#x5B;[[d:' .. tostring(entidad) .. '|editar datos en Wikidata]]&#x5D;</div>'
--        if args.entidad and (mw.title.getCurrentTitle().namespace == 0 or mw.title.getCurrentTitle().namespace == 104) then
--        	textoPie = textoPie .. '[[Categoría:Wikipedia:Artículos con fichas que utilizan acceso arbitrario]]'
--        end
--    else
--        textoPie = "<small>'''Página no enlazada a [[Wikidata]]'''\n"..
--"* Si no existe en otras Wikipedias: [<span class=plainlinks>[//www.wikidata.org/w/index.php?title=Special:NewItem&site=eswiki&page="..mw.uri.encode(enlacePagina,WIKI) .."&label="..mw.uri.encode(etiquetaPagina,WIKI) .." crea&nbsp;nuevo&nbsp;ítem]]</span>\n"..
--"* Si existe en otras Wikipedias: [<span class=plainlinks>[[:d:Special:ItemByTitle|busca&nbsp;ítem&nbsp;para&nbsp;enlazar]]</span>]\n"..
--"y a?ade el enlace en espa?ol: ".. enlacePagina ..".</small>"
--    end
--    if textoPie ~= '' then
--    	root
--       	.tag('tr')
--	            .tag('td')
--	                .addClass('noprint')
--                	.attr('colspan', '3')
--                	.css('text-align', 'left')
--                	.wikitext(textoPie)
--    end
end

local function hacerCategoriasSeguimiento()
    if args.decat ~= 'si' and #(getArgNums('datos')) == 0 and not args[1] and mw.title.getCurrentTitle().namespace == 0 then
        root.wikitext('[[Categoría:Wikipedia:Artículos que usan ficha sin datos en filas]]')
    end
    
    if CategorizacionAByAD.hasAnyBadge() == '1' then
	    root.wikitext(CategorizacionAByAD.badgesCategories())
	end
end

function _infobox()
    if args.child ~= 'si' and args.integrada ~= 'sí' then
        root = HtmlBuilder.create('table')
        
        root   -- Estilo de toda la ficha         
            .addClass('infobox')
            .addClass(args.clase)
            .cssText('width:22.7em; line-height: 1.4em; text-align:left; padding:.23em') -- Lo mismo que la plantilla:Ficha
            .cssText(args.estilo)
        if args.estilo and (mw.title.getCurrentTitle().namespace == 10) then -- Para que sólo lo a?ada en el espacio de nombres plantilla
        	root.wikitext('[[Categoría:Wikipedia:Fichas con el parámetro estilo]]')
        end
    
        hacerTitulo()
        hacerFilaArriba()
    else
        root = HtmlBuilder.create()
        
        if args.titulo then
            root.wikitext("'''" .. args.titulo .. "'''")
        end
    end

    hacerSubtitulos()
    hacerImagenSuperior()
    hacerImageneslaterales()
    hacerfilassuperiores()
    hacerImagenes() 
    if not args[1] then
        hacerFilas()
    else
        hacerFilasTabla(args)
    end
    hacerImagenInferior()
    hacerPieDeTabla()  
    hacerBarraDeNavegacion()
    hacerBarraWikidata()
    hacerCategoriasSeguimiento()
    
    return tostring(root)
end
local function touchParameters(prefixTable, origArgs, step)
    -- Analiza los parámetros con los prefijos dados, en orden por lotes lotes y con el tama?o  especificado a step. 
    -- Esto es para evitar referencias etc aparezca en el orden equivocado.
    if type(prefixTable) ~= 'table' or type(origArgs) ~= 'table' then
        error("Entrada no válida detectada para la función touchParameters. Ambos parámetros deben ser tablas.", 2)
    end
    if step and type(step) ~= 'number' then
        error("Detectado valor no numérico en step.", 2)
    end
 
    step = step or 20 -- Si no se le da el tama?o a step, el valor predeterminado es 20.
    local temp
    local a = 1 -- variable de contador.
    local moreArgumentsExist = true
    for j,v in ipairs(prefixTable) do
        if not type(v) == "string" then
            error("Detectado un valor que no es string en el prefijo de la tabla por la función touchParameters.", 2)
        end
        temp = origArgs[v]
    end
    while moreArgumentsExist == true do
        moreArgumentsExist = false
        for i = a, a + step - 1 do
            for j,v in ipairs(prefixTable) do
                temp = origArgs[v .. tostring(i)]
                if temp then
                    moreArgumentsExist = true
                end
            end
        end
        a = a + step
    end
end 
function p.infobox(frame)
    local origArgs
    marco = frame
    -- Si se llama a través de #invoke, utilice los argumentos pasados ??a la plantilla de invocación.
    -- De lo contrario, para fines de prueba, asume args que se pasan directamente como parámetros.
    if frame == mw.getCurrentFrame() then
        origArgs = frame:getParent().args
    else
        origArgs = frame
    end
 -- Analizar los parámetros de datos en el mismo orden que la plantilla {{ficha}} lo hace, por lo que
 -- referencias etc. se mostrarán en los lugares previstos.
    local temp
    temp = origArgs.titulo
    temp = origArgs.arriba
    touchParameters({'subtitulo'}, origArgs, 5)
    touchParameters({'imagen', 'pie'}, origArgs, 5)
    touchParameters({'seccion', 'etiqueta', 'datos'}, origArgs, 20)
    temp = origArgs.piedetabla

    -- El analizador de funciones  considera que una cadena vacía es falsa, por lo que para preservar el anterior
    -- comportamiento de {{Ficha}}, debe cambiar los argumentos vacíos a cero, por lo que Lua los considerará
    -- que son falsos también (excepto parámetros 'title cursiva', que especifica un comportamiento diferente
    -- dependiendo de si está ausente o vacío)
    args = {}
    for k, v in pairs(origArgs) do
        if v ~= ''  then
            args[k] = v
        end
    end
 
    return _infobox()
end

return p
午夜凶铃讲的是什么故事 龙胆泻肝丸治什么病 胰腺炎用什么药 李字五行属什么 甘油三酯高是什么病
耳朵后面是什么穴位 银行卡为什么会被冻结 儿童肺炎吃什么药 一到晚上就饿什么原因 铁观音适合什么季节喝
妇科千金片主要治什么 每天放屁多是什么原因 上海的特产是什么 一九七七年属什么生肖 米粉用什么做的
画是什么生肖 猪冲蛇开什么生肖 血脂稠喝什么茶效果好 12月5号是什么星座 什么羊不能吃
玄乎是什么意思hcv7jop6ns0r.cn 心悸吃什么药hcv9jop2ns4r.cn 头皮痒用什么洗头好hcv9jop7ns2r.cn 乳腺病是什么意思bysq.com 狗吃什么药会立马就死hcv8jop9ns0r.cn
甲状腺检查挂什么科hcv8jop1ns2r.cn 出人头地是什么意思hcv8jop7ns4r.cn 1965属什么生肖hcv7jop9ns4r.cn cc是什么单位inbungee.com 尿蛋白定量是什么意思hcv8jop5ns8r.cn
执子之手与子偕老是什么意思hcv9jop7ns4r.cn 戒烟后为什么会发胖hcv9jop4ns3r.cn 什么是提肛运动hcv8jop7ns6r.cn ad是什么病的简称hcv7jop5ns1r.cn 五更泻吃什么药hcv7jop6ns7r.cn
彩色的什么baiqunet.com 百香果和什么不能一起吃hcv9jop6ns8r.cn 心衰竭是什么病严重吗sanhestory.com 浑身麻是什么原因hcv9jop1ns4r.cn 五心烦热是什么症状hcv8jop0ns6r.cn
百度