Module:Unicode data/documentation functions

.mw-parser-output .documentation,.mw-parser-output .documentation-metadata{border:1px solid var(--border-color-base,#a2a9b1);background-color:#ecfcf4;color:inhe

Module:Unicode data/documentation functions
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 mw.title.new(name_module).exists then
			local first_cp = i * 0x1000
			row:insert_format("[[%s|U+%04X&ndash;<br>U+%04X]]",
				name_module, first_cp, first_cp + 0xFFF)
			found_module = true
		end
	end
	output:insert "\n|}"
	
	return output:join()
end

return p

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.