Модуль:Unicode data/documentation functions
Зовнішній вигляд
| Цей модуль позначений як К:реліз, готовий до загального вжитку (269). Він досягнув стадії готовності й вважається, що вільний від помилок і може використовуватись всюди, де знадобиться. Його можна згадувати на довідкових сторінках та інших сторінках Вікіпедії як можливість для навчання новачків. Аби зменшити навантаження на сервери та некоректний показ сторінок, його потрібно вдосконалювати через тестування у пісочниці[en], а не через застосування спроб і помилок. |
Цей модуль використовується для створення документації про функції Модуль:Unicode data.
Документація вище включена з Модуль:Unicode data/documentation functions/документація. (ред. | історія)
Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього модуля.
Будь ласка, додавайте категорії до підсторінки /documentation functions/документація. Підсторінки цієї сторінки.
Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього модуля.
Будь ласка, додавайте категорії до підсторінки /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;"'
|+ Модулі даних імен символів,<br>організовані за першими трьома цифрами кодової точки в шістнадцятковій системі числення]]
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 = ('Модуль: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–<br>U+%04X]]",
name_module, first_cp, first_cp + 0xFFF)
found_module = true
end
end
output:insert "\n|}"
return output:join()
end
return p