local export = {}
local u = mw.ustring.char
local a = u(0xF000)
local minorMarkSet = "([" .. u(0xEC8) .. "-" .. u(0xECE) .. "])"
local minorMarks = {
[u(0xEC8)] = "1", [u(0xEC9)] = "2", [u(0xECA)] = "3", [u(0xECB)] = "4", [u(0xECC)] = "5", [u(0xECD)] = "6", [u(0xECE)] = "7"
}
local monographs = {
["[%pໆ]"] = "", ["ຼ"] = "ລ" .. a, ["ຽ"] = "ຍ" .. a, ["ໜ"] = "ຫນ" .. a, ["ໝ"] = "ຫມ" .. a
}
function export.makeSortKey(text, lang, sc)
local minorKey = ""
for mark in mw.ustring.gmatch(text, minorMarkSet) do
minorKey = minorKey .. minorMarks[mark]
end
text = mw.ustring.gsub(text, minorMarkSet, "")
for from, to in pairs(monographs) do
text = mw.ustring.gsub(text, from, to)
end
text = mw.ustring.gsub(text, "([ເແໂໃໄ])([ກ-ຮໞໟ])", "%2%1")
return text .. minorKey
end
return export