Jump to content

Module:Unicode data/documentation functions

From Wikibooks, open books for an open world

This is an old revision of this page, as edited by Erutuon (discuss | contribs) at 03:06, 23 June 2018 (function for displaying name and image data modules). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 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 end end output:insert "\n|}"  return output:join() end  return p