La documentación pa esti módulu pue crease en Módulu:Formatos/usu

-- Módulu pa dar formatu a cadenes de testu

local p = {}

function p.desvincular(frame)
	local cadena = frame.args[1]
	local etiqueta = '%[.-|'
	local cambiu = mw.ustring.gsub(cadena,etiqueta,'')
	cambiu = mw.ustring.gsub(cambiu,'[%[%]]','')
	return cambiu
end	

function p.mayuscula(frame) -- Convierte en mayúscules la primera letra qu'apaez na edición d'una cadena
	local cadena
	local cambiu = {}
    local mou = {}
	if type(frame) == 'table' then
	    cadena = frame.args[1]
    else
    	cadena = frame or 'null'
    end 	
   
    if string.find(cadena, '|') ~= nil then -- Enlaces con etiqueta
        mou = string.upper(string.match(cadena,'(|%a)'))
        cambiu = string.gsub(cadena,'|%a', mou,1)
    elseif string.find(cadena, '[[]') ~= nil then -- Enlaces sin etiqueta
        mou = string.upper(string.match(cadena,'^(..%a)'))
        cambiu = string.gsub(cadena,'^..%a', mou,1)
    elseif  string.match(cadena,'^(%a)') then-- Sin enlace
       mou = mw.ustring.upper(string.match(cadena,'^(%a)'))
       cambiu = mw.ustring.gsub(cadena,'^%a', mou,1)
    else
    	cambiu = cadena
    end
    return cambiu
end

function p.url(frame)
local s = frame.args[1]
local cambiu = {}
    if string.find(s, '%[') then
        local cambiu1 = string.gsub(s,'[%[ | %]]','')
        cambiu = string.gsub(cambiu1,'http:%/%/','')
    elseif string.find(s, 'http:%/%/') then 
        cambiu = string.gsub(s,'http:%/%/','')
    else
        cambiu = s
    end
    return cambiu
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 cambiu = {}
    if string.find(cadena, '|') ~= nil then -- Enlaces con etiqueta
        cambiu = string.gsub(cadena,'|%a+%sde%d(%D+)', '%1')
    elseif string.find(cadena, '[[]') ~= nil then -- Enlaces sin etiqueta
        cambiu = string.gsub(cadena,'(^..%a+%sde%s)(%D+)', '%1%2|%2')
    else -- Sin enlace
 
       cambiu = string.gsub(cadena,'^%a+%sde%s%(%D+)','%1')
    end
    return cambiu
end

function p.imaxe(frame)
    local s = frame.args[1]
    local imaxe = {}
    if s ~= nil then
        if string.find(s, '[Ff]icheru') then
            imaxe = string.gsub(s,'..[Ff]icheru:(.*\.%a%a%a)|.*','%1')
        elseif string.find(s, '[Aa]rchivo') then
            imaxe = string.gsub(s,'..[Aa]rchivo:(.*\.%a%a%a)|.*','%1')
        elseif string.find(s, '[Ff]ile') then
            imaxe = string.gsub(s,'..[Ff]ile:(.*\.%a%a%a)|.*','%1')
        elseif string.find(s, '[Ii]maxe') then
            imaxe = string.gsub(s,'..[Ii]maxe:(.*\.%a%a%a)|.*','%1')
        elseif string.find(s, '[Ii]magen') then
            imaxe = string.gsub(s,'..[Ii]magen:(.*\.%a%a%a)|.*','%1')
        elseif string.find(s, '[Ii]mage') then
            imaxe = string.gsub(s,'..[Ii]mage:(.*\.%a%a%a)|.*','%1')
        else 
            imaxe = s
        end
    else
        imaxe = ''
    end
    return imaxe
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 = 'ast'
        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 == 'ast' 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