Aller au contenu

Module:Format

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 20 février 2013 à 09:26 et modifiée en dernier par Tejgad (discuter | contributions) (Fonction Unité : non-retour à la ligne, exponentiation correcte). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[créer] [purger]
-- Module dédié au formatage de texte

local fun = {}

-- Mise en forme des nombres avec unité
-- Basé sur Modèle:Unité, mais sans limitation de nombre d'arguments
function fun.unite(frame)
    local pframe = frame:getParent()
    local arguments = pframe.args
    return frame:preprocess(fun.do_unite(arguments))
end

-- Réalisation de la fonction précédente
function fun.do_unite(arguments)
    result = ""
    
    -- Formatage de la valeur principale
    if(arguments[1] ~= nil) then
        result = "{{formatnum:" .. arguments[1] .. "}}"
    end
    
    -- Formatage de la puissance de 10 éventuelle
    if(arguments["e"] ~= nil) then
        result = result .. fun.do_x10{arguments["e"]}
    end
    
    -- Parcours des unités et exposants
    index = 2
    while(arguments[index] ~= nil) do
        if (index == 2) then
            -- Première unité : espace insécable
            result = result .. " "
        else
            -- Unités suivantes : point médian
            result = result .. "⋅"
        end
        
        -- Affichage de l'unité
        result = result .. arguments[index]
        
        -- Exposant éventuel
        if(arguments[index+1] ~= nil) then
            result = result .. fun.do_expo{arguments[index+1]}
        end
        
        index = index + 2
    end
    
    -- Non-retour à la ligne
    result = "<span class=\"nowrap\">" .. result .. "</span>"
    
    return result
end

-- Mise en forme des exposants
-- Basé sur Modèle:Exp
function fun.expo(frame)
    local pframe = frame:getParent()
    local arguments = pframe.args
    return fun.do_expo(arguments)    
end

-- Réalisation de la fonction précédente
function fun.do_expo(arguments)
    result = ""
    if(arguments[1] ~= nil) then
        result = result .. arguments[1]
    end
    result = "<sup>" .. result .. "</sup>"
    
    return result
end

-- Mise en forme des puissances de 10
-- Basé sur Modèle:x10
function fun.x10(frame)
    local pframe = frame:getParent()
    local arguments = pframe.args
    return fun.do_x10(arguments)    
end

-- Réalisation de la fonction précédente
function fun.do_x10(arguments)
    result = "×10" .. fun.do_expo{arguments[1]}
    return result
end

return fun