char-ran.lua /size: 2687 b    last modification: 2025-02-21 11:03
1if not modules then modules = { } end modules ['char-ran'] = {
2    version   = 1.001,
3    comment   = "companion to char-ini.mkiv",
4    author    = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
5    copyright = "PRAGMA ADE / ConTeXt Development Team",
6    license   = "see context related readme files"
7}
8
9local setmetatable = setmetatable
10local formatters = string.formatters
11
12characters   = characters or { }
13local ranges = characters.ranges or { }
14
15-- Nushu
16
17do
18
19 -- local variants = {
20 -- }
21
22    local common = {
23        category    = "lo",
24        cjkwd       = "w",
25        description = "<NUSHU CHARACTER>",
26        direction   = "l",
27        linebreak   = "id",
28    }
29
30    local metatable = {
31        __index = common
32    }
33
34    local function extender(k)
35        local t = {
36         -- shcode      = shcode,
37            unicodeslot = k,
38         -- variants    = variants[k],
39         -- description = formatters["NUSHU CHARACTER-%05X"](k)
40        }
41        setmetatable(t,metatable)
42        return t
43    end
44
45    ranges[#ranges+1] = {
46        name     = "nushu character",
47        first    = 0x1B170,
48        last     = 0x1B2FF,
49        common   = common,
50        extender = extender,
51    }
52
53end
54
55-- Egyptian
56
57do
58
59 -- local variants = {
60 -- }
61
62    local common = {
63        category    = "lo",
64        description = "<EGYPTIAN HIEROGLYPHS EXTENDED A>",
65        direction   = "l",
66        linebreak   = "al",
67    }
68
69    local metatable = {
70        __index = common
71    }
72
73    local function extender(k)
74        local t = {
75            unicodeslot = k,
76         -- variants    = variants[k],
77         -- description = formatters["EGYPTIAN HIEROGLYPH-%05X"](k)
78        }
79        setmetatable(t,metatable)
80        return t
81    end
82
83    ranges[#ranges+1] = {
84        name     = "egyptian hieroglyphs extended a",
85        first    = 0x13460,
86        last     = 0x143FF,
87        common   = common,
88        extender = extender,
89    }
90
91end
92
93-- Khitan
94
95do
96
97 -- local variants = {
98 -- }
99
100    local common = {
101      category    = "lo",
102      cjkwd       = "w",
103      description = "<KHITAN SMALL SCRIPT CHARACTER>",
104      direction   = "l",
105      linebreak   = "al",
106    }
107
108    local metatable = {
109        __index = common
110    }
111
112    local function extender(k)
113        local t = {
114            unicodeslot = k,
115         -- variants    = variants[k],
116         -- description = formatters["KHITAN SMALL SCRIPT CHARACTER-%05X"](k)
117        }
118        setmetatable(t,metatable)
119        return t
120    end
121
122    ranges[#ranges+1] = {
123        name     = "khytan small script character",
124        first    = 0x18B00,
125        last     = 0x18CFF,
126        common   = common,
127        extender = extender,
128    }
129
130end
131