Модуль:Unicode data/control
Зовнішній вигляд
| Цей модуль позначений як К:реліз, готовий до загального вжитку (262). Він досягнув стадії готовності й вважається, що вільний від помилок і може використовуватись всюди, де знадобиться. Його можна згадувати на довідкових сторінках та інших сторінках Вікіпедії як можливість для навчання новачків. Аби зменшити навантаження на сервери та некоректний показ сторінок, його потрібно вдосконалювати через тестування у пісочниці[en], а не через застосування спроб і помилок. |
Модуль містить дані, які використовуються Модуль:Unicode data, для визначення символів, що належать до General Categories of Separator and Other. Їх взято з DerivedGeneralCategory.txt у Unicode Character Database, і вони розміщені у commons:Data:Unicode/data/category/singles.tab та commons:Data:Unicode/data/category/ranges.tab.
Документація вище включена з Модуль:Unicode data/control/документація. (ред. | історія)
Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього модуля.
Будь ласка, додавайте категорії до підсторінки /control/документація. Підсторінки цієї сторінки.
Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього модуля.
Будь ласка, додавайте категорії до підсторінки /control/документація. Підсторінки цієї сторінки.
-- [[:commons:Data:Unicode/data/category/ranges.tab]]
-- [[:commons:Data:Unicode/data/category/singles.tab]]
local function get_result()
local categories = {
["Cc"] = "control",
["Cf"] = "format",
["Cs"] = "surrogate",
["Co"] = "private-use",
["Cn"] = "unassigned",
["Zs"] = "space-separator",
["Zl"] = "line-separator",
["Zp"] = "paragraph-separator"
}
local result={}
local write_index
local category
local first_char
-- singles
result.singles={}
local data=mw.ext.data.get("Unicode/data/category/singles.tab")
for index, cols in ipairs(data.data) do
if cols[1] and cols[2] then
first_char=string.sub(cols[2], 1, 1)
if first_char == "C" or first_char == "Z" then
category=categories[cols[2]]
if category then
result.singles[tonumber(cols[1], 16)]=category
end
end
end
end
-- ranges
data=mw.ext.data.get("Unicode/data/category/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
first_char=string.sub(cols[3], 1, 1)
if first_char == "C" or first_char == "Z" then
category=categories[cols[3]]
if category then
result.ranges[write_index]={tonumber(cols[1], 16), tonumber(cols[2], 16), category}
write_index=write_index+1
end
end
end
end
result.ranges.length = #result.ranges
return result
end
return get_result()