Модуль:Категория дневника

Материал из Europa Universalis V — Русская Вики
Перейти к навигации Перейти к поиску

Внутренний модуль карточки дневника разработчиков. В статьях напрямую не вызывается.

При вызове через карточку читает её параметры «серия» и «без категории». Для основного пространства определяет серию по параметру или началу названия статьи и возвращает только одну из существующих категорий: Tinto Talks, Tinto Flavour, Tinto Maps, Дневники разработчиков. В других пространствах и при «без категории=1» категорий не добавляет.


local p = {}
local allowed = {
    ['Tinto Talks'] = true,
    ['Tinto Flavour'] = true,
    ['Tinto Maps'] = true,
}

function p.main(frame)
    local title = mw.title.getCurrentTitle()
    if title.namespace ~= 0 then return '' end
    local parent = frame:getParent()
    local args = parent and parent.args or frame.args
    if mw.text.trim(args['без категории'] or '') ~= '' then return '' end
    local series = mw.text.trim(args['серия'] or '')
    if not allowed[series] then
        series = nil
        for name in pairs(allowed) do
            if title.text:sub(1, #name + 1) == name .. ' ' then
                series = name
                break
            end
        end
    end
    return '[[Категория:' .. (series or 'Дневники разработчиков') .. ']]'
end

return p