Module:Unicode data/documentation functions
Appearance
From Wikipedia, the free encyclopedia
You might want to create a documentation page for this Scribunto module.
Editors can experiment in this module's sandbox (create | mirror) and testcases (create) pages.
Add categories to the /doc subpage. Subpages of this module.
Editors can experiment in this module's sandbox (create | mirror) and testcases (create) pages.
Add categories to the /doc subpage. Subpages of this module.
localp={} localoutput_mt={} functionoutput_mt:insert(str) self.n=self.n+1 self[self.n]=str end functionoutput_mt:insert_format(...) self:insert(string.format(...)) end output_mt.join=table.concat output_mt.__index=output_mt localfunctionOutput() returnsetmetatable({n=0},output_mt) end functionp.show_modules() localoutput=Output() output:insert[[ {| class="wikitable" style="text-align: center;"' |+ Character name data modules,<br>organized by first three digits of codepoint in hexadecimal base]] fori=-1,0xFdo ifi>=0then output:insert_format('\n! %X',i) else output:insert'\n!' end end output:insert'\n|-' localprev=-1 localrow localfound_module=false fori=0,0x10Fdo localfirst_two_digits=math.floor(i/0x10) iffirst_two_digits~=prevthen iffound_modulethen 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| ' localname_module=('Module:Unicode data/names/%03X'):format(i) ifmw.title.new(name_module).existsthen localfirst_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|}" returnoutput:join() end returnp