(修改自此处;原许可:CC BY-SA 3.0[网站升级迁移]) |
小 (导入1个版本:[页面文字原许可:CC BY-SA 4.0]) 标签:mobile web edit mobile edit advanced mobile edit |
(没有差异)
|
2023年3月27日 (一) 11:28的最新版本
local p = {}
local output_mt = {}
function output_mt:insert(str)
self.n = self.n + 1
self[self.n] = str
end
function output_mt:insert_format(...)
self:insert(string.format(...))
end
output_mt.join = table.concat
output_mt.__index = output_mt
local function Output()
return setmetatable({ n = 0 }, output_mt)
end
function p.show_modules()
local output = Output()
output:insert [[
{| class="wikitable" style="text-align: center;"'
|+ Character name data modules,<br>organized by first three digits of codepoint in hexadecimal base]]
for i = -1, 0xF do
if i >= 0 then
output:insert_format('\n! %X', i)
else
output:insert '\n!'
end
end
output:insert '\n|-'
local prev = -1
local row
local found_module = false
for i = 0, 0x10F do
local first_two_digits = math.floor(i / 0x10)
if first_two_digits ~= prev then
if found_module then
output:insert(row:join())
end
found_module = false
row = Output{}
row:insert_format("\n|-\n! %02Xx", first_two_digits)
prev = first_two_digits
end
row:insert '\n| '
local name_module = ('Module:Unicode data/names/%03X'):format(i)
if true then
local first_cp = i * 0x1000
row:insert_format("[[%s|U+%04X–<br>U+%04X]]",
name_module, first_cp, first_cp + 0xFFF)
found_module = true
end
end
output:insert "\n|}"
return output:join()
end
return p