Модуль:cat-utils
Внешний вид
Модуль предназначен для формирования категорий. Этот модуль используется в шаблоне {{Категория}}.
Описание функций и параметров
categorize
— функция формирования категорий.- Принимает неограниченное количество неименованных параметров вызывающего шаблона, которые могут иметь значения:
- неименованный — строка названия категорий
lang
илиязык
— буквенный код языка (ru
,en
,fr
и т.п.);sort
илиключ_сортировки
— ключ сортировки категории.
- Функция проверяет пространство имен страницы. На данный момент разрешено вызов в статьях и категориях.
- Вызов
{{#invoke:cat-utils|categorize}}
- Принимает неограниченное количество неименованных параметров вызывающего шаблона, которые могут иметь значения:
local p = {}
function p.format_categories(categories, langcode, sort_key)
local out_categories = {}
for key, cat in ipairs(categories) do
out_categories[key] = "[[Категория:" .. cat ..
(langcode and "/" .. langcode or "") ..
(sort_key and "|" .. sort_key or "") .. "]]"
end
return table.concat(out_categories, "")
end
-- Used by {{Категория}}
function p.categorize(frame)
local NAMESPACE = mw.title.getCurrentTitle().nsText
if (NAMESPACE ~= '') and (NAMESPACE ~= 'Категория') then
return ''
end
local args = frame:getParent().args
local langcode = args['язык'] or args['lang']
if langcode == "" then
langcode = nil
end
local sort_key = args["ключ_сортировки"] or args["sort"];
if sort_key == "" then
sort_key = nil
end
local i = 1
local cat = args[1]
local categories = {}
while cat do
if cat ~= "" then
table.insert(categories, cat)
end
i = i + 1
cat = args[i]
end
if table.getn(categories) == 0 then
table.insert(categories, 'Требуется категоризация')
sort_key = nil
end
return p.format_categories(categories, langcode, sort_key)
end
return p