Módulo:Unicode data/documentation functions

De Enciclopedia de conocimiento de la Iglesia de Dios
< Módulo:Unicode data
Revisión del 01:54 26 abr 2023 de Pyc1948 (discusión | contribs.) (Página creada con «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;"' |+ Módulos de datos para no…»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

La documentación para este módulo puede ser creada en Módulo:Unicode data/documentation functions/doc

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;"'
|+ Módulos de datos para nombres de caracteres,<br>organizados por los primeros tres dígitos del punto de código en base hexadecimal]]
	
	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 = ('Módulo: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