Module:FirstLetter: Difference between revisions
From TANGOWIKI-TITAF
Created page with "local p = {} function p.from(frame) local input = frame.args[1] or '' -- Remove leading/trailing spaces input = mw.text.trim(input) -- Remove accents for basic comparison (optional) 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') in..." |
No edit summary |
||
| Line 3: | Line 3: | ||
function p.from(frame) | function p.from(frame) | ||
local input = frame.args[1] or '' | local input = frame.args[1] or '' | ||
input = mw.text.trim(input) | input = mw.text.trim(input) | ||
-- | |||
-- Normalize accents | |||
input = mw.ustring.gsub(input, '[ÁÀÄÂ]', 'A') | input = mw.ustring.gsub(input, '[ÁÀÄÂ]', 'A') | ||
input = mw.ustring.gsub(input, '[ÉÈËÊ]', 'E') | input = mw.ustring.gsub(input, '[ÉÈËÊ]', 'E') | ||
| Line 12: | Line 12: | ||
input = mw.ustring.gsub(input, '[ÚÙÜÛ]', 'U') | input = mw.ustring.gsub(input, '[ÚÙÜÛ]', 'U') | ||
input = mw.ustring.gsub(input, '[Ñ]', 'N') | input = mw.ustring.gsub(input, '[Ñ]', 'N') | ||
local first = mw.ustring.upper(mw.ustring.sub(input, 1, 1)) | local first = mw.ustring.upper(mw.ustring.sub(input, 1, 1)) | ||
return first | |||
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 | end | ||
return p | return p | ||
Revision as of 07:48, 12 May 2025
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