Module:Unicode data/documentation functions: Difference between revisions
Appearance
Content deleted Content added
function for displaying name and image data modules |
no image modules |
||
Line 57: | Line 57: | ||
if mw.title.new(name_module).exists then |
if mw.title.new(name_module).exists then |
||
row:insert_format("[[%s|names]]", name_module) |
row:insert_format("[[%s|names]]", name_module) |
||
found_module = true |
|||
end |
|||
local image_module = ('Module:Unicode data/names/%03X'):format(i) |
|||
if mw.title.new(image_module).exists then |
|||
row:insert_format("<br>[[%s|images]]", image_module) |
|||
found_module = true |
found_module = true |
||
end |
end |
Revision as of 03:07, 23 June 2018
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;"'
|+ Unicode name and image 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 mw.title.new(name_module).exists then
row:insert_format("[[%s|names]]", name_module)
found_module = true
end
end
output:insert "\n|}"
return output:join()
end
return p