Module:FirstLetter

From TANGOWIKI-TITAF
Revision as of 07:48, 12 May 2025 by Donxello (talk | contribs)

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