Модуль:CategoryMenu

Материал из Space Station 14 Вики

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

local p = {}

function p.generate(frame)
    local args = frame:getParent().args
    local html = mw.html.create()

    -- Контейнер для категорий
    local categoriesDiv = html:tag('div'):addClass('categories')
    
    -- Контейнер для меню и контента
    local mainContainer = html:tag('div'):addClass('main-container')
    local menuContainer = mainContainer:tag('div'):addClass('menu-container')
    local contentContainer = mainContainer:tag('div'):addClass('content')

    -- Проходим по всем параметрам и генерируем HTML
    for i = 1, 10 do
        local category = args['category' .. i]
        if category then
            -- Добавляем категорию в categories
            categoriesDiv:tag('div'):addClass('category' .. i):wikitext(category)

            -- Создаём меню для этой категории
            local menu = menuContainer:tag('div'):addClass('menu'):addClass('category' .. i .. '-menu')
            for j = 1, 10 do
                local paragraph = args['category' .. i .. '-paragraph' .. j]
                local paragraphContent = args['category' .. i .. '-paragraph' .. j .. '-content']
                if paragraph and paragraphContent then
                    -- Добавляем пункт в меню
                    menu:tag('div'):addClass('category' .. i .. '-paragraph' .. j):wikitext(paragraph)

                    -- Добавляем контент для пункта
                    contentContainer:tag('div'):addClass('category' .. i .. '-paragraph' .. j .. '-content'):wikitext(paragraphContent)
                end
            end
        end
    end

    -- Возвращаем сгенерированный HTML-код
    return tostring(html)
end

return p