Diferencia entre revisiones de «Módulo:Centrar/pruebas»

Contenido eliminado Contenido añadido
Sin resumen de edición
función versión open
Línea 32:
['fantasy']='fantasy'
}
local fontWeight = { --negrita
['negrita'] = 'bold',
['bold'] = 'bold',
}
local fontStyle = { --cursivas
['cursiva'] = 'italic',
['itálica'] = 'italic',
['italic'] = 'italic',
}
local textDecoration = { --subrayado
['subrayado'] = 'underline',
['underline'] = 'underline',
}
local altparams= {['font-size']='fs', ['tamaño']='fs',
Línea 134 ⟶ 136:
end
-- div:css('clear','both') — No utilidad aparente?
 
if argus['estilo'] then --estilo personalizado
div:cssText(argus['estilo'])
end
--texto
div:wikitext(argus[1])
Línea 170 ⟶ 169:
div:css('max-width',argus['max-width'])
end
elseif argus['bloque'] == 'derecha' then --asimilar comportamiento de {{bloque derecha}}
end
if argus['bloque'] == 'derecha' then --asimilar comportamiento de {{bloque derecha}}
div:css('width', argus['ancho'] or 'auto')
div:css('margin-right', argus['margen'] or '0em')
Línea 179 ⟶ 177:
end
html:tag('div'):css('clear','right')
elseif argus['bloque'] == 'izquierda' then --asimilar comportamiento de {{bloque izquierda}}
div:css('margin-left', argus['margen'] or argus[2] or '0')
div:css('width', argus['ancho'] or 'auto')
if argus['max-width'] then
div:css('max-width',argus['max-width'])
end
end
if argus['estilo'] then --estilo personalizado, al final para poder sobreescribir todo
div:cssText(argus['estilo'])
end
-- anclaje
Línea 188 ⟶ 196:
end
 
function p.open( frame ) -- función principal para llamar desde {{centrar}}
local argus = {}
for k,v in pairs(frame.args) do
argus[k] = v
end
for k,v in pairs(frame:getParent().args) do -- crea una tabla con los parámetros incluídos en la plantilla, y elimina parámetros vacíos
argus[k] = v
end
 
for k,v in pairs(altparams) do --parámetros con nobmres alternativos.
if argus[k] and not argus[v] then
argus[v] = argus[k]
end
end
 
local html = mw.html.create() -- cuerpo principal de la plantilla
local div = '<'..(argus['tag'] or 'div').. 'style="'
div=div..'text-align:'..argus['alinear']..';'
if argus['float'] then
div=div..'float:'..argus['float']..';'
end
-- sección de parámetros
if argus['fs'] and tamFuente[argus['fs']]~=nil then
div=div..'font-size:'..tamFuente[argus['fs']]..';' --tamaños usando el nombre de las plantillas de tamaño de fuente
elseif argus['fs'] then
div=div..'font-size:'..argus['fs']..';' -- tamaño personalizado
end
if argus['lh'] then
div=div..'line-height:'..argus['lh']..';'
end
if argus['sp'] then
div=div..'letter-spacing:'..argus['sp']..';'
end
if argus['color'] then
if mw.ustring.sub( argus['color'], 0, 1 ) == '#' then
color = argus['color']
else
color = frame:expandTemplate{ title = 'RGB', args = { argus['color'] } }
end
color = mw.ustring.gsub(color, '&#35;', '#')
div=div..'color:'..color..';'
end
if argus['fondo'] then
if mw.ustring.sub( argus['fondo'], 0, 1 ) == '#' then
fondo = argus['fondo']
else
fondo = frame:expandTemplate{ title = 'RGB', args = { argus['fondo'] } }
end
fondo = mw.ustring.gsub(fondo, '&#35;', '#')
div=div..'background:'..fondo..';'
end
-- sección de opciones
for k,v in pairs(argus) do -- opciones
if type(k) == 'number' and k~= 1 then
if textTransform[argus[k]] ~= nil then
div=div..'text-transform:'..textTransform[argus[k]]..';' --opciones transformación de texto
elseif fontVariant[argus[k]] ~= nil then -- opcion variante de fuente (small caps)
div=div..'font-variant:'..fontVariant[argus[k]]..';'
elseif fontFamily[argus[k]] ~= nil then -- opcion familia de fuentes
div=div..'font-family:'..fontFamily[argus[k]]..';'
elseif tamFuente[argus[k]] ~= nil then -- opciones de tamaño de fuente sin usar el parámetro fs
div=div..'font-size:'..tamFuente[argus[k]]..';'
elseif fontWeight[argus[k]] ~= nil then -- opcion de peso de fuente (negrita)
div=div..'font-weight:'..fontWeight[argus[k]]..';'
elseif fontStyle[argus[k]] ~= nil then -- opcion de estilo de fuente (cursiva)
div=div..'font-style:'..fontStyle[argus[k]]..';'
elseif textDecoration[argus[k]] ~= nil then -- opcion de decoracion de texto (subrayado)
div=div..'text-decoration:'..textDecoration[argus[k]]..';'
end
end
end
-- div:css('clear','both') — No utilidad aparente?
 
--otros parámetros
if argus['plantilla'] == 'derecha' then --para reutilizar código en {{derecha}}
div=div..'margin-right:'..(argus['margen'] or argus[2] or '')..';'
end
if argus['float'] == 'right' then --asimilar comportamieto de {{float right}} y {{flotador derecha}}
div=div..'margin-right:'..( argus['margen'] or argus[2] or '0')..';'
div=div..'margin-top:'..( argus[3] or '0')..';'
div=div..'margin-bottom:'..( argus[3] or '0')..';'
div=div..'margin-left:'..( argus[4] or '0')..';'
end
if argus['float'] == 'left' then --asimilar comportamieto de {{float left}} y {{flotador izquierda}}
div=div..'margin-top:'..(argus[2] or '0')..';'
div=div..'margin-bottom:'..(argus[2] or '0')..';'
div=div..'margin-right:'..(argus[3] or '0')..';'
end
if argus['colgante'] == 's' then --asimilar comportamieto de {{sangría colgante}}
div=div..'margin-left:'..'2em'..';'
div=div..'text-indent:'..'-2em'..';'
local margen = argus['margen'] or argus[2] or 'NaN'
if tonumber(margen:sub(1,1)) then
div=div..'margin-left:'..margen..';'
div=div..'text-indent:'..'-'..margen..';'
end
end
if argus['bloque'] == 'centro' then --asimilar comportamiento de {{bloque centro}}
div=div..'display: table; margin-right:auto; margin-left:auto;'
div=div..'width:'..(argus['ancho'] or 'auto')..';'
if argus['max-width'] then
div=div..'max-width:'..argus['max-width']..';'
end
elseif argus['bloque'] == 'derecha' then --asimilar comportamiento de {{bloque derecha}}
div=div..'width'..(argus['ancho'] or 'auto')..';'
div=div..'margin-right:'..(argus['margen'] or '0em')..';'
div=div..'text-align:'..(argus['alinear'] or 'inherit')..';'
if argus['max-width'] then
div=div..'max-width:'..(argus['max-width'])..';'
end
--html:tag('div'):css('clear','right') -- ATENCION!!!
elseif argus['bloque'] == 'izquierda' then --asimilar comportamiento de {{bloque izquierda}}
div=div..'margin-left:'..(argus['margen'] or argus[2] or '0')..';'
div=div..'width:'..(argus['ancho'] or 'auto')..';'
if argus['max-width'] then
div=div..'max-width:'..(argus['max-width'])..';'
end
end
if argus['estilo'] then --estilo personalizado, al final para poder sobreescribir todo
div=div..argus['estilo']..';'
end
div=div..'" '
-- anclaje
if argus['anclaje'] then
div=div..'id="'..argus['anclaje']..""
div=div..'class="anclaje" '
end
div=div..'>'
return tostring(html)
end
 
return p