Module:FirstLetter
From TANGOWIKI-TITAF
Documentation for this module may be created at Module:FirstLetter/doc
local p = {}
function p.from(frame)
local input = frame.args[1] or ''
input = mw.text.trim(input)
-- Normalize accents
input = mw.ustring.gsub(input, '[ÁÀÄÂ]', 'A')
input = mw.ustring.gsub(input, '[ÉÈËÊ]', 'E')
input = mw.ustring.gsub(input, '[ÍÌÏÎ]', 'I')
input = mw.ustring.gsub(input, '[ÓÒÖÔ]', 'O')
input = mw.ustring.gsub(input, '[ÚÙÜÛ]', 'U')
input = mw.ustring.gsub(input, '[Ñ]', 'N')
local first = mw.ustring.upper(mw.ustring.sub(input, 1, 1))
if mw.ustring.find("ABCD", first) then return "A–D" end
if mw.ustring.find("EFGH", first) then return "E–H" end
if mw.ustring.find("IJKL", first) then return "I–L" end
if mw.ustring.find("MNOP", first) then return "M–P" end
if mw.ustring.find("QRST", first) then return "Q–T" end
if mw.ustring.find("UVWXYZ", first) then return "U–Z" end
return "Other"
end
return p