Módulo:Formatos
Apariencia
Uso
-- Módulo para dar formato a cadenas de texto
local p = {}
function p.desvincular(frame)
local cadena = frame.args[1]
local etiqueta = '%[.-|'
local cambio = mw.ustring.gsub(cadena,etiqueta,'')
cambio = mw.ustring.gsub(cambio,'[%[%]]','')
return cambio
end
function p.mayuscula(frame) -- Convierte en mayúsculas la primera letra que aparece en la edición de una cadena
local cadena
local cambio = {}
local modo = {}
if type(frame) == 'table' then
cadena = frame.args[1]
else
cadena = frame or 'null'
end
if string.find(cadena, '|') ~= nil then -- Enlaces con etiqueta
modo = string.upper(string.match(cadena,'(|%a)'))
cambio = string.gsub(cadena,'|%a', modo,1)
elseif string.find(cadena, '[[]') ~= nil then -- Enlaces sin etiqueta
modo = string.upper(string.match(cadena,'^(..%a)'))
cambio = string.gsub(cadena,'^..%a', modo,1)
elseif string.match(cadena,'^(%a)') then-- Sin enlace
modo = mw.ustring.upper(string.match(cadena,'^(%a)'))
cambio = mw.ustring.gsub(cadena,'^%a', modo,1)
else
cambio = cadena
end
return cambio
end
function p.url(frame)
local s = frame.args[1]
local cambio = {}
if string.find(s, '%[') then
local cambio1 = string.gsub(s,'[%[ | %]]','')
cambio = string.gsub(cambio1,'http:%/%/','')
elseif string.find(s, 'http:%/%/') then
cambio = string.gsub(s,'http:%/%/','')
else
cambio = s
end
return cambio
end
function p.sinD(frame) -- Convierte en mayúsculas la primera letra que aparece en la edición de una cadena
local cadena = frame.args[1]
local cambio = {}
if string.find(cadena, '|') ~= nil then -- Enlaces con etiqueta
cambio = string.gsub(cadena,'|%a+%sde%d(%D+)', '%1')
elseif string.find(cadena, '[[]') ~= nil then -- Enlaces sin etiqueta
cambio = string.gsub(cadena,'(^..%a+%sde%s)(%D+)', '%1%2|%2')
else -- Sin enlace
cambio = string.gsub(cadena,'^%a+%sde%s%(%D+)','%1')
end
return cambio
end
function p.imagen(frame)
local s = frame.args[1]
local imagen = {}
if s ~= nil then
if string.find(s, '[Aa]rchivo') then
imagen = string.gsub(s,'..[Aa]rchivo:(.*\.%a%a%a)|.*','%1')
elseif string.find(s, '[Ff]ile') then
imagen = string.gsub(s,'..[Ff]ile:(.*\.%a%a%a)|.*','%1')
elseif string.find(s, '[Ii]magen') then
imagen = string.gsub(s,'..[Ii]magen:(.*\.%a%a%a)|.*','%1')
elseif string.find(s, '[Ii]mage') then
imagen = string.gsub(s,'..[Ii]mage:(.*\.%a%a%a)|.*','%1')
else
imagen = s
end
else
imagen = ''
end
return imagen
end
function p.formatnum(frame)
local s = frame.args[1]
local idioma = {}
if s ~= '' or s ~= nil then
if frame.args[2] then
idioma = frame.args[2]
else
idioma = 'es'
end
local num = string.gsub(string.gsub(s,',',''),' ','') -- cambiamo coma por punto y quitamos espacio bruto
local formatnum = {}
if type(tonumber(num)) == 'number' then
if string.len(num) == 4 or mw.ustring.find(num,'%.') == 5 then
if idioma == 'es' then
formatnum = string.gsub(num,'%.',',')
else
formatnum = mw.language.new(idioma):formatNum(tonumber(num))
end
else
formatnum = mw.language.new(idioma):formatNum(tonumber(num))
end
return formatnum
else
return s --'<strong class="error">Número no válido</strong> [[Categoría:Wikipedia:Errores de formatnum]]'
end
else
return ''
end
end
return p