Перейти до вмісту

Модуль:Unicode data/combining

Матеріал з Вікіпедії — вільної енциклопедії.
{{i}} Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]

Модуль містить дані, які використовуються Модуль:Unicode data, для визначення чи поєднується символ чи ні. Також можна використати, щоб повернути клас поєднання[en] символа. Дані взято з DerivedCombiningClass.txt у Unicode Character Database та розміщені в таблицях commons:Data:Unicode/data/combining/singles.tab та commons:Data:Unicode/data/combining/ranges.tab.

Залежить від двох символів

[ред. код]

Зверніть увагу: combing class = 230 (some), 233, 234 вимагає другого пунктирного кола (суфікса), щоб бути ефективним: ◌͜◌ (див. § U+035C, § U+035D, § U+20DB).

-- [[:commons:Data:Unicode/data/combining/singles.tab]]
-- [[:commons:Data:Unicode/data/combining/ranges.tab]]

local function get_result()
	local write_index
	local result={}
	
	-- singles
	result.singles={}
	local data=mw.ext.data.get("Unicode/data/combining/singles.tab")
	for index, cols in ipairs(data.data) do
		if cols[1] and cols[2]  then
				result.singles[tonumber(cols[1], 16)]=cols[2]
		end
	end
	
	-- ranges
	data=mw.ext.data.get("Unicode/data/combining/ranges.tab")
	write_index=1
	result.ranges={}
	for index, cols in ipairs(data.data) do
		if cols[1] and cols[2] and cols[3] then
				result.ranges[write_index]={tonumber(cols[1], 16), tonumber(cols[2], 16), cols[3]}
				write_index=write_index+1
		end
	end
	result.ranges.length = #result.ranges
	
	return result
end

return get_result()