Mòdul:Encode
A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]
Mediawiki utilitza la codificació de caràcters UTF-8. Així la funció {{urlencode: }}
codifica en aquesta norma. Aquest mòdul proporciona altres codificacions necessàries.
Alguns llocs webs poden utilitzar altres codificacions. Això es pot trobar amb una funció del navegador per visualitzant el codi font de la pàgina, donant alguna cosa com:
<meta charset="UTF-8" />
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
latin1
Codificar en latin-1 o ISO-8859-1. Sintaxi:
{{#invoke:encode|latin1|<text>}}
Per exemple:
{{#invoke:encode|latin1|Viquipèdia}}
→ Viquip%E8dia
en canvi compareu
{{urlencode:Viquipèdia}}
→ Viquip%C3%A8dia
Això pot ser útil, per exemple, per enllaçar al DIEC en línia:
[http://dlc.iec.cat/results.asp?txtEntrada={{#invoke:encode|latin1|camió}} camió al DIEC]
→ camió al DIEC
pagename
Codifica com un títol de pàgina convertint a HTML certs caràcters, de la mateixa forma que ho fa la funció {{PAGENAME}}. A més, converteix a majúscula inicial i els guions baixos en espais en blanc. Sintaxi:
{{#invoke:encode|pagename|<text>}}
Per exemple, "Peter & John's" ho convertirà a "Peter & John's". Tot i que l'HTML ho mostra igual, donarà positiu en fer una comparació amb {{PAGENAME}}. Vegeu mw:Manual:PAGENAMEE encoding.
-- 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 {{DCVB}} i {{Optimot}}.
Original de witk:en:Module:encodings.
Sintaxi: {{#invoke:encode|latin1|<text>}}
]]
function p.latin1(frame)
local text = frame.args[1] or ""
local ret = {}
for cp in mw.ustring.gcodepoint(text) do
if cp >= 256 then
error("Caràcter ISO 8859-1 no vàlid: \"" .. mw.ustring.char(cp) .. "\".")
end
table.insert(ret, string.char(cp))
end
return mw.uri.encode(table.concat(ret))
end
function p.pagename(frame)
local taulaHtml = { -- caràcters codificats amb PAGENAME
["'"] = "'",
["&"] = "&",
['"'] = """,
[""] = "", -- 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
-- converts a title to text with hyphens, lowercase and no diacritics, as URL recommendation
function p.hyphens(frame)
local text = frame.args[1]
text = mw.ustring.gsub(mw.ustring.toNFD(text), "[\204\128-\205\175]", ""):gsub(" ", "-") -- no diacritics, hyphens
text = mw.ustring.lower(text)
text = mw.ustring.gsub(text, "['’]", "")
return mw.uri.encode(text)
end
return p