Modulu:Encode
Documentation for this module may be created at Modulu:Encode/dok
-- 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
["'"] = "'",
["&"] = "&",
['"'] = """,
["%20"] = " ",
[""] = "", -- 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
function p.subSupMarkup(frame)
local sub = {["₀"] = "0", ["₁"] = "1", ["₂"] = "2", ["₃"] = "3", ["₄"] = "4", ["₅"] = "5", ["₆"] = "6", ["₇"] = "7", ["₈"] = "8", ["₉"] = "9"}
local sup = {["⁰"] = "0", ["¹"] = "1", ["²"] = "2", ["³"] = "3", ["⁴"] = "4", ["⁵"] = "5", ["⁶"] = "6", ["⁷"] = "7", ["⁸"] = "8", ["⁹"] = "9"}
local function Unicode2markup(n)
if sub[n] then
return "<sub>" .. sub[n] .. "</sub>"
elseif sup[n] then
return "<sup>" .. sup[n] .. "</sup>"
end
return n
end
local ret = mw.ustring.gsub(frame.args[1] or "", ".", Unicode2markup)
return (string.gsub(ret, '</su[bp]><su[bp]>', ''))
end
return p