Modul:Hani-sortkey/data/serializer
< Modul:Hani-sortkey | data
Pendokumenan untuk modul ini boleh diciptakan di Modul:Hani-sortkey/data/serializer/doc
local export = {}
function export.main(checker)
local function table_insert(t, v)
if not checker then
v = v:gsub(".", function(m)
local byte = m:byte()
if byte > 0 and byte < 0x20 then
return "\\" .. ("%03d"):format(byte)
elseif byte == 0 or byte > 244 then
return "\\" .. byte
end
end)
end
-- Negative additional stroke counts are subtracted from 10 (i.e. -1 becomes -9, -2 becomes -8 etc.), so that lower values sort before higher ones (i.e. -3, -2, -1 ...).
v = v:gsub("(%-)(%d)", function(m1, m2)
m2 = 10 - m2
return m1 .. m2
end)
table.insert(t, v)
end
local ret = {}
table_insert(ret, "\2")
for k, v in pairs(require("Module:Hani-sortkey/data").preconvert) do
table_insert(ret, k .. "\1" .. v .. "\2")
end
table_insert(ret, "\255")
local keys = require("Module:Hani-sortkey/data").keys
for i = 1, 0x323AF do
if keys[i] then
table_insert(ret, keys[i])
end
end
return table.concat(ret)
end
return export