Ir al contenido

Módulo:Formatos

De Wikipedia, la enciclopedia libre

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