-- Codificació de caràcters amb normes diferents a UTF-8

local p = {}

--[[
Codificació de caràcters en latin1 o ISO-8859-1, usat per exemple per {{diec}} i {{gdlc}}.
    Sintaxi: {{#invoke:encode|latin1|<text>}}
]]

function p.latin1(frame)
    local taulaLatin1 = { -- no és exhaustiva, inclou els caràcters usats en català
        ["à"] = "%E0",
        ["è"] = "%E8", ["é"] = "%E9",
        ["í"] = "%ED", ["ï"] = "%EF",
        ["ò"] = "%F2", ["ó"] = "%F3",
        ["ú"] = "%FA", ["ü"] = "%FC",
        ["ç"] = "%E7",
        ["·"] = "%B7",
        [" "] = "%20",
        ["'"] = "%27"}
    local text = mw.ustring.gsub(frame.args[1] or "", ".", taulaLatin1)
    return text
end

function p.pagename(frame)
    local taulaHtml = { -- caràcters codificats amb PAGENAME
        ["'"] = "&#39;",
        ["&"] = "&#38;",
        ['"'] = "&#34;",
        ["‎"] = "", -- caràcter de control al final de la cadena que apareix en copiar i engaxar
        ["_"] = " "}
    local text = mw.ustring.gsub(frame.args[1] or "", ".", taulaHtml)
    text = mw.text.trim(text)
    return mw.ustring.upper(mw.ustring.sub(text,1,1)) .. mw.ustring.sub(text,2)
end

return p