Перейти к содержимому страницы
Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

Модуль:Unicode/data

Материал из вики «Вече»

Для документации этого модуля может быть создана страница Модуль:Unicode/data/doc

local p = {}

local data = {}

local function getModuleIndex(number)
	if number <= tonumber('0x0EDF') then
		return 1
	elseif number <= tonumber('0x1D61') then
		return 2
	elseif number <= tonumber('0x2BFF') then
		return 3
	elseif number <= tonumber('0xA4C6') then
		return 4
	elseif number <= tonumber('0xFEFC') then
		return 5
	elseif number <= tonumber('0x11241') then
		return 6
	elseif number <= tonumber('0x13455') then
		return 7
	elseif number <= tonumber('0x18CD5') then
		return 8
	elseif number <= tonumber('0x1DAAF') then
		return 9
	else
		return 10
	end
end

function p.getData(character)
	local moduleIndex = 0
	local charKey
	
	if type(character) == 'string' then
		charKey = character:upper()
		character = '0x' .. charKey
		
		moduleIndex = getModuleIndex(tonumber(character))
	else
		charKey = string.format("%03x", character):upper()
		moduleIndex = getModuleIndex(character)
	end
	
	if not data[moduleIndex] then
		data[moduleIndex] = mw.loadData('Module:Unicode/data/' .. moduleIndex)
	end
	
	return data[moduleIndex][charKey]
end

return p