Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Latin/sandbox

From Wikipedia, the free encyclopedia
local p = {}

function p.removeaccents(frame)
   local rv= mw.ustring.toNFC (frame.args[1])

--   if (true) then return mw.ustring.isutf8 (rv) end

   if frame.args.German and (frame.args.German ~= "") then
      rv = mw.ustring.gsub(rv,"[Ä]","Ae")
      rv = mw.ustring.gsub(rv,"[ä]","ae")
      rv = mw.ustring.gsub(rv,"[Ö]","Oe")
      rv = mw.ustring.gsub(rv,"[ö]","oe")
      rv = mw.ustring.gsub(rv,"[Ü]","Ue")
      rv = mw.ustring.gsub(rv,"[ü]","ue")
   end

   rv = mw.ustring.gsub(rv,"[ÁÀÂÄǍĂĀÃÅĄ]","A")
   rv = mw.ustring.gsub(rv,"[ÆǢǼ]","Ae")
   rv = mw.ustring.gsub(rv,"[ĆĊĈČÇ]","C")
   rv = mw.ustring.gsub(rv,"[ĎĐḌÐḐ]","D")
   rv = mw.ustring.gsub(rv,"[ÉÈĖÊËĚĔĒẼĘẸƐƎƏỀỂỄẾỆ]","E")
   rv = mw.ustring.gsub(rv,"[ĠĜĞĢ]","G")
   rv = mw.ustring.gsub(rv,"[ĤĦḤ]","H")
   rv = mw.ustring.gsub(rv,"[İÍÌÎÏǏĬĪĨĮỊ]","I")
   rv = mw.ustring.gsub(rv,"[Ĵ]","J")
   rv = mw.ustring.gsub(rv,"[Ķ]","K")
   rv = mw.ustring.gsub(rv,"[ĹĿĽĻŁḶḸ]","L")
   rv = mw.ustring.gsub(rv,"[Ṃ]","M")
   rv = mw.ustring.gsub(rv,"[ŃŇÑŅṆŊ]","N")
   rv = mw.ustring.gsub(rv,"[ÓÒÔÖǑŎŌÕǪỌŐØƆ]","O")
   rv = mw.ustring.gsub(rv,"[Œ]","Oe")
   rv = mw.ustring.gsub(rv,"[ŔŘŖṚṜ]","R")
   rv = mw.ustring.gsub(rv,"[ŚŜŠŞȘṢ]","S")
   rv = mw.ustring.gsub(rv,"[ŤŢȚṬ]","T")
   rv = mw.ustring.gsub(rv,"[Þ]","Th")
   rv = mw.ustring.gsub(rv,"[ÚÙÛÜǓŬŪŨŮŲỤŰǗǛǙǕ]","U")
   rv = mw.ustring.gsub(rv,"[Ŵ]","W")
   rv = mw.ustring.gsub(rv,"[ÝŶŸỸȲ]","Y")
   rv = mw.ustring.gsub(rv,"[ŹŻŽ]","Z")
   rv = mw.ustring.gsub(rv,"[áàâäǎăāãåąắăằắẳẵặâầẩẫấậ]","a")
   rv = mw.ustring.gsub(rv,"[æǣǽ]","ae")
   rv = mw.ustring.gsub(rv,"[ćċĉčç]","c")
   rv = mw.ustring.gsub(rv,"[ďđḍðḑ]","d")
   rv = mw.ustring.gsub(rv,"[éèėêëěĕēẽęẹɛǝəềểễếệ]","e")
   rv = mw.ustring.gsub(rv,"[ġĝğģ]","g")
   rv = mw.ustring.gsub(rv,"[ĥħḥḩ]","h")
   rv = mw.ustring.gsub(rv,"[ıíìîïǐĭīĩįị]","i")
   rv = mw.ustring.gsub(rv,"[ĵ]","j")
   rv = mw.ustring.gsub(rv,"[ķ]","k")
   rv = mw.ustring.gsub(rv,"[ĺŀľļłḷḹ]","l")
   rv = mw.ustring.gsub(rv,"[ṃ]","m")
   rv = mw.ustring.gsub(rv,"[ńňñņṇŋ]","n")
   rv = mw.ustring.gsub(rv,"[óòôöǒŏōõǫọőøɔơồ]","o")
   rv = mw.ustring.gsub(rv,"[œ]","oe")
   rv = mw.ustring.gsub(rv,"[ŕřŗṛṝ]","r")
   rv = mw.ustring.gsub(rv,"[śŝšşșṣ]","s")
   rv = mw.ustring.gsub(rv,"[ß]","ss")
   rv = mw.ustring.gsub(rv,"[ťţțṭ]","t")
   rv = mw.ustring.gsub(rv,"[þ]","th")
   rv = mw.ustring.gsub(rv,"[úùûüǔŭūũůųụűǘǜǚǖ]","u")
   rv = mw.ustring.gsub(rv,"[ŵ]","w")
   rv = mw.ustring.gsub(rv,"[ýŷÿỹȳ]","y")
   rv = mw.ustring.gsub(rv,"[źżž]","z")

   return rv
end

--[[

The next function returns a % encoding concomitant with ISO/IEC 8859-1. It encodes % and any non-reserved and non-unreserved
characters.

Space is currently encoded as an underscore.

Reserved characters are currently not encoded.

]]

function p.urlencodeISO88591(frame)
   local rv= mw.ustring.toNFC (frame.args[1])

-- % first to avoid double encoding
   rv = mw.ustring.gsub(rv,"%%","%%%%")

-- space to underscore, then punctuation which is not reserved
   rv = mw.ustring.gsub(rv," ","_")
   rv = mw.ustring.gsub(rv,"\034;","%%22") -- quote mark
   rv = mw.ustring.gsub(rv,"<","%%3C")
   rv = mw.ustring.gsub(rv,">","%%3E")
   rv = mw.ustring.gsub(rv,"\\","%%5C") -- backslash does not work with "\092", "%\" or "\"
   rv = mw.ustring.gsub(rv,"%^","%%5E")
   rv = mw.ustring.gsub(rv,"`","%%60")
   rv = mw.ustring.gsub(rv,"{","%%7B")
   rv = mw.ustring.gsub(rv,"|","%%7C")
   rv = mw.ustring.gsub(rv,"}","%%7D")

-- all the rest of the codepoints that are printable
   rv = mw.ustring.gsub(rv,"\194\160","%%A0")
   rv = mw.ustring.gsub(rv,"\194\161","%%A1")
   rv = mw.ustring.gsub(rv,"\194\162","%%A2")
   rv = mw.ustring.gsub(rv,"\194\163","%%A3")
   rv = mw.ustring.gsub(rv,"\194\164","%%A4")
   rv = mw.ustring.gsub(rv,"\194\165","%%A5")
   rv = mw.ustring.gsub(rv,"\194\166","%%A6")
   rv = mw.ustring.gsub(rv,"\194\167","%%A7")
   rv = mw.ustring.gsub(rv,"\194\168","%%A8")
   rv = mw.ustring.gsub(rv,"\194\169","%%A9")
   rv = mw.ustring.gsub(rv,"\194\170","%%AA")
   rv = mw.ustring.gsub(rv,"\194\171","%%AB")
   rv = mw.ustring.gsub(rv,"\194\172","%%AC")
   rv = mw.ustring.gsub(rv,"\194\173","%%AD")
   rv = mw.ustring.gsub(rv,"\194\174","%%AE")
   rv = mw.ustring.gsub(rv,"\194\175","%%AF")
   rv = mw.ustring.gsub(rv,"\194\176","%%B0")
   rv = mw.ustring.gsub(rv,"\194\177","%%B1")
   rv = mw.ustring.gsub(rv,"\194\178","%%B2")
   rv = mw.ustring.gsub(rv,"\194\179","%%B3")
   rv = mw.ustring.gsub(rv,"\194\180","%%B4")
   rv = mw.ustring.gsub(rv,"\194\181","%%B5")
   rv = mw.ustring.gsub(rv,"\194\182","%%B6")
   rv = mw.ustring.gsub(rv,"\194\183","%%B7")
   rv = mw.ustring.gsub(rv,"\194\184","%%B8")
   rv = mw.ustring.gsub(rv,"\194\185","%%B9")
   rv = mw.ustring.gsub(rv,"\194\186","%%BA")
   rv = mw.ustring.gsub(rv,"\194\187","%%BB")
   rv = mw.ustring.gsub(rv,"\194\188","%%BC")
   rv = mw.ustring.gsub(rv,"\194\189","%%BD")
   rv = mw.ustring.gsub(rv,"\194\190","%%BE")
   rv = mw.ustring.gsub(rv,"\194\191","%%BF")
   rv = mw.ustring.gsub(rv,"\195\128","%%C0")
   rv = mw.ustring.gsub(rv,"\195\129","%%C1")
   rv = mw.ustring.gsub(rv,"\195\130","%%C2")
   rv = mw.ustring.gsub(rv,"\195\131","%%C3")
   rv = mw.ustring.gsub(rv,"\195\132","%%C4")
   rv = mw.ustring.gsub(rv,"\195\133","%%C5")
   rv = mw.ustring.gsub(rv,"\195\134","%%C6")
   rv = mw.ustring.gsub(rv,"\195\135","%%C7")
   rv = mw.ustring.gsub(rv,"\195\136","%%C8")
   rv = mw.ustring.gsub(rv,"\195\137","%%C9")
   rv = mw.ustring.gsub(rv,"\195\138","%%CA")
   rv = mw.ustring.gsub(rv,"\195\139","%%CB")
   rv = mw.ustring.gsub(rv,"\195\140","%%CC")
   rv = mw.ustring.gsub(rv,"\195\141","%%CD")
   rv = mw.ustring.gsub(rv,"\195\142","%%CE")
   rv = mw.ustring.gsub(rv,"\195\143","%%CF")
   rv = mw.ustring.gsub(rv,"\195\144","%%D0")
   rv = mw.ustring.gsub(rv,"\195\145","%%D1")
   rv = mw.ustring.gsub(rv,"\195\146","%%D2")
   rv = mw.ustring.gsub(rv,"\195\147","%%D3")
   rv = mw.ustring.gsub(rv,"\195\148","%%D4")
   rv = mw.ustring.gsub(rv,"\195\149","%%D5")
   rv = mw.ustring.gsub(rv,"\195\150","%%D6")
   rv = mw.ustring.gsub(rv,"\195\151","%%D7")
   rv = mw.ustring.gsub(rv,"\195\152","%%D8")
   rv = mw.ustring.gsub(rv,"\195\153","%%D9")
   rv = mw.ustring.gsub(rv,"\195\154","%%DA")
   rv = mw.ustring.gsub(rv,"\195\155","%%DB")
   rv = mw.ustring.gsub(rv,"\195\156","%%DC")
   rv = mw.ustring.gsub(rv,"\195\157","%%DD")
   rv = mw.ustring.gsub(rv,"\195\158","%%DE")
   rv = mw.ustring.gsub(rv,"\195\159","%%DF")
   rv = mw.ustring.gsub(rv,"\195\160","%%E0")
   rv = mw.ustring.gsub(rv,"\195\161","%%E1")
   rv = mw.ustring.gsub(rv,"\195\162","%%E2")
   rv = mw.ustring.gsub(rv,"\195\163","%%E3")
   rv = mw.ustring.gsub(rv,"\195\164","%%E4")
   rv = mw.ustring.gsub(rv,"\195\165","%%E5")
   rv = mw.ustring.gsub(rv,"\195\166","%%E6")
   rv = mw.ustring.gsub(rv,"\195\167","%%E7")
   rv = mw.ustring.gsub(rv,"\195\168","%%E8")
   rv = mw.ustring.gsub(rv,"\195\169","%%E9")
   rv = mw.ustring.gsub(rv,"\195\170","%%EA")
   rv = mw.ustring.gsub(rv,"\195\171","%%EB")
   rv = mw.ustring.gsub(rv,"\195\172","%%EC")
   rv = mw.ustring.gsub(rv,"\195\173","%%ED")
   rv = mw.ustring.gsub(rv,"\195\174","%%EE")
   rv = mw.ustring.gsub(rv,"\195\175","%%EF")
   rv = mw.ustring.gsub(rv,"\195\176","%%F0")
   rv = mw.ustring.gsub(rv,"\195\177","%%F1")
   rv = mw.ustring.gsub(rv,"\195\178","%%F2")
   rv = mw.ustring.gsub(rv,"\195\179","%%F3")
   rv = mw.ustring.gsub(rv,"\195\180","%%F4")
   rv = mw.ustring.gsub(rv,"\195\181","%%F5")
   rv = mw.ustring.gsub(rv,"\195\182","%%F6")
   rv = mw.ustring.gsub(rv,"\195\183","%%F7")
   rv = mw.ustring.gsub(rv,"\195\184","%%F8")
   rv = mw.ustring.gsub(rv,"\195\185","%%F9")
   rv = mw.ustring.gsub(rv,"\195\186","%%FA")
   rv = mw.ustring.gsub(rv,"\195\187","%%FB")
   rv = mw.ustring.gsub(rv,"\195\188","%%FC")
   rv = mw.ustring.gsub(rv,"\195\189","%%FD")
   rv = mw.ustring.gsub(rv,"\195\190","%%FE")
   rv = mw.ustring.gsub(rv,"\195\191","%%FF")
   return rv
end

return p