Модуль:CategoryFormatter

Версия от 21:06, 13 апреля 2025; Pok (обсуждение | вклад)

(разн.) ← Предыдущая версия | Подтверждённая версия (разн.) | Текущая версия (разн.) | Следующая версия → (разн.)

Для документации этого модуля может быть создана страница Модуль:CategoryFormatter/doc

local p = {}

function p.main(frame)
    local input = frame.args[1] or ""
    local results = {}

    -- Разбивка выходной строки по символу ','
    for part in mw.text.gsplit(input, ",", true) do
        local name = mw.text.trim(part)
        if name ~= "" then
            local title = mw.title.new(name)
            local displayText = name
            -- Если страница с таким названием существует, выводит её в виде ссылки
            if title and title.exists then
                displayText = "[[{{мч|" .. name .. "}}|" .. name .. "]]"
            end
            -- Формирования строки: выводит обработанный текст и добавляет категорию с таким именем
            table.insert(results, "<code>" .. displayText .. "</code>" .. "\n[[Category:{{мч|" .. name .. "}}]]")
        end
    end

    return frame:preprocess(table.concat(results, " "))
end

return p