Module:Hani-sortkey/data/serializer
Itsura
- This module lacks a documentation subpage. Please create it.
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
local insert = table.insert
local export = {}
local byte_lookup = {
[0x07] = "\\a",
[0x08] = "\\b",
[0x09] = "\\t",
[0x0A] = "\\n",
[0x0B] = "\\v",
[0x0C] = "\\f",
[0x0D] = "\\r",
[0x22] = "\\\"",
[0x5C] = "\\\\",
}
local _char = string.char
local function char(ch)
return byte_lookup[ch] or
(ch < 0x20 or ch >= 0x7F) and "\\" .. ("%03d"):format(ch) or
_char(ch)
end
function export.main(checker)
local keys = require("Module:Hani-sortkey/data")
local radicals = require("Module:Hani-sortkey/data/core").radicals
local ret, val = {}
for i = 1, 0x323AF do
if keys[i] then
for r, as in keys[i]:gmatch("(%d+)%.(.*)") do
insert(ret, char(tonumber(r)))
-- Negative additional stroke counts are subtractive (i.e. -1 becomes -9, -2 becomes -8 etc.), so that lower values sort before higher ones (i.e. -3, -2, -1 ...).
as = tonumber(as)
insert(ret, char(as < 0 and 0 - as or as + 10))
end
end
end
-- Compress the result.
for i = 1, #ret do
local ch = ret[i]
if ch:match("^\\%d%d%d$") then
local nxt = ret[i + 1]
if not (nxt and nxt:sub(1, 1):match("%d")) then
ret[i] = ("\\%d"):format(ch:sub(2))
end
end
end
return table.concat(ret)
end
return export
Kategorya:
- Sortkey-generating modules by script
- Katitikang Han na modyul
- Sortkey-generating na modyul
- Chinese Pidgin English na modyul
- Yonaguni na modyul
- Daur na modyul
- Katimugang Pinghua na modyul
- Shaojiang Min na modyul
- Jie na modyul
- Datian Min na modyul
- Central Bai na modyul
- Maramihang wika na modyul
- Tuoba na modyul
- Ai-Cham na modyul
- Shaozhou Tuhua na modyul
- Zhuang na modyul
- Gaya na modyul
- Sitsuwanes na modyul
- Northern Pinghua na modyul
- Goguryeo na modyul
- Kikai na modyul
- Mandarin na modyul
- Yoron na modyul
- Toisanes na modyul
- Zauzou na modyul
- Kyakala na modyul
- Sanxiang Min na modyul
- Nùng na modyul
- Hokkien na modyul
- Zakhring na modyul
- Gan na modyul
- Baekje na modyul
- Old Chinese na modyul
- Wuhuan na modyul
- Lama Bai na modyul
- Hakka na modyul
- Zhenan Min na modyul
- Puxian Min na modyul
- Okinoerabu na modyul
- Yemaek na modyul
- Jin na modyul
- Macau Pidgin Portuguese na modyul
- Central Min na modyul
- Tsino na modyul
- Hachijō na modyul
- Northern Min na modyul
- Hapones na modyul
- Kunigami na modyul
- Leizhou Min na modyul
- Min Nan na modyul
- Yaeyama na modyul
- Southern Bai na modyul
- Miyako na modyul
- Okinawan na modyul
- Bailang na modyul
- Wu na modyul
- Teochew na modyul
- Hainanese na modyul
- Bala na modyul
- Tuyuhun na modyul
- Xianbei na modyul
- Pampanitikang Tsino na modyul
- Panyi Bai na modyul
- Huizhou na modyul
- Tokunoshima na modyul
- Middle Mongol na modyul
- Kantones na modyul
- Viyetnamita na modyul
- Longyan Min na modyul
- Eastern Min na modyul
- Gitnang Tsino na modyul
- Dungan na modyul
- Waxiang na modyul
- Southern Amami Ōshima na modyul
- Classical Tibetan na modyul
- Caolan na modyul
- Tày na modyul
- Middle Vietnamese na modyul
- Alchuka na modyul
- Xiang na modyul
- Old Japanese na modyul
- Biao-Jiao Mien na modyul
- Sui na modyul
- E na modyul
- Old Uyghur na modyul
- Khitan na modyul
- Hailufeng Min na modyul
- Biyo na modyul
- Buyeo na modyul
- Northern Amami Ōshima na modyul
- Bouyei na modyul
- Xiongnu na modyul
- Rouran na modyul
- Data modules by script
- Data na modyul
- Katitikang Han data na modyul
- Chinese Pidgin English data na modyul
- Yonaguni data na modyul
- Daur data na modyul
- Katimugang Pinghua data na modyul
- Shaojiang Min data na modyul
- Jie data na modyul
- Datian Min data na modyul
- Central Bai data na modyul
- Maramihang wika data na modyul
- Tuoba data na modyul
- Ai-Cham data na modyul
- Shaozhou Tuhua data na modyul
- Zhuang data na modyul
- Gaya data na modyul
- Sitsuwanes data na modyul
- Northern Pinghua data na modyul
- Goguryeo data na modyul
- Kikai data na modyul
- Mandarin data na modyul
- Yoron data na modyul
- Toisanes data na modyul
- Zauzou data na modyul
- Kyakala data na modyul
- Sanxiang Min data na modyul
- Nùng data na modyul
- Hokkien data na modyul
- Zakhring data na modyul
- Gan data na modyul
- Baekje data na modyul
- Old Chinese data na modyul
- Wuhuan data na modyul
- Lama Bai data na modyul
- Hakka data na modyul
- Zhenan Min data na modyul
- Puxian Min data na modyul
- Okinoerabu data na modyul
- Yemaek data na modyul
- Jin data na modyul
- Macau Pidgin Portuguese data na modyul
- Central Min data na modyul
- Tsino data na modyul
- Hachijō data na modyul
- Northern Min data na modyul
- Hapones data na modyul
- Kunigami data na modyul
- Leizhou Min data na modyul
- Min Nan data na modyul
- Yaeyama data na modyul
- Southern Bai data na modyul
- Miyako data na modyul
- Okinawan data na modyul
- Bailang data na modyul
- Wu data na modyul
- Teochew data na modyul
- Hainanese data na modyul
- Bala data na modyul
- Tuyuhun data na modyul
- Xianbei data na modyul
- Pampanitikang Tsino data na modyul
- Panyi Bai data na modyul
- Huizhou data na modyul
- Tokunoshima data na modyul
- Middle Mongol data na modyul
- Kantones data na modyul
- Viyetnamita data na modyul
- Longyan Min data na modyul
- Eastern Min data na modyul
- Gitnang Tsino data na modyul
- Dungan data na modyul
- Waxiang data na modyul
- Southern Amami Ōshima data na modyul
- Classical Tibetan data na modyul
- Caolan data na modyul
- Tày data na modyul
- Middle Vietnamese data na modyul
- Alchuka data na modyul
- Xiang data na modyul
- Old Japanese data na modyul
- Biao-Jiao Mien data na modyul
- Sui data na modyul
- E data na modyul
- Old Uyghur data na modyul
- Khitan data na modyul
- Hailufeng Min data na modyul
- Biyo data na modyul
- Buyeo data na modyul
- Northern Amami Ōshima data na modyul
- Bouyei data na modyul
- Xiongnu data na modyul
- Rouran data na modyul
- Templates and modules needing documentation