Модуль:CategoryFormatter: различия между версиями

Материал из Space Station 14 Вики
мНет описания правки
мНет описания правки
 
(не показано 5 промежуточных версий этого же участника)
Строка 5: Строка 5:
     local results = {}
     local results = {}


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


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


return p
return p

Текущая версия от 21:06, 13 апреля 2025

Для документации этого модуля может быть создана страница Модуль: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