Module:Hangul
Appearance
local p = {}
-- Put these two in data module?
local medials = {
'ᅡ',
'ᅢ',
'ᅣ',
'ᅤ',
'ᅥ',
'ᅦ',
'ᅧ',
'ᅨ',
'ᅩ',
'ᅪ',
'ᅫ',
'ᅬ',
'ᅭ',
'ᅮ',
'ᅯ',
'ᅰ',
'ᅱ',
'ᅲ',
'ᅳ',
'ᅴ',
'ᅵ',
}
local finals = {
'',
'ᆨ',
'ᆩ',
'ᆪ',
'ᆫ',
'ᆬ',
'ᆭ',
'ᆮ',
'ᆯ',
'ᆰ',
'ᆱ',
'ᆲ',
'ᆳ',
'ᆴ',
'ᆵ',
'ᆶ',
'ᆷ',
'ᆸ',
'ㅄ',
'ㅅ',
'ㅆ',
'ㅇ',
'ㅈ',
'ᆾ',
'ᆿ',
'ᇀ',
'ᇁ',
'ᇂ',
}
function p.show(frame)
local initial = frame.args[1] or 'ᄀ'
local codepoint = mw.ustring.codepoint(initial)
if not (0x1100 <= codepoint and codepoint <= 0x1112) then
error('Incorrect initial ' .. initial .. '. Should be between U+1100 and U+1112.')
end
local output = {}
local i = 0
function output.add(text)
i = i + 1
output[i] = text
end
function output.row()
output.add('|-\n')
end
output.add('{| class="wikitable"\n! Final→<br>Medial↓')
for _, final in ipairs(finals) do
output.add((' !! %s'):format(final))
end
for _, medial in ipairs(medials) do
output.row()
output.add(('! %s'):format(medial))
for _, final in ipairs(finals) do
output.add((' || %s%s%s'):format(initial, medial, final))
end
end
output.add('|}')
return table.concat(output, '\n')
end
return p