|
|
| Строка 1: |
Строка 1: |
| local p = {} | | local p = {} |
|
| |
|
| -- Функция для рендеринга категории
| |
| function p.renderCategory(paragraphs, contents, categoryName, categoryIndex)
| |
| local html = mw.html.create()
| |
|
| |
| -- Генерация названия категории
| |
| html:tag('div')
| |
| :addClass('category' .. categoryIndex)
| |
| :wikitext(categoryName)
| |
|
| |
| -- Меню
| |
| local menu = html:tag('div'):addClass('menu-container')
| |
|
| |
| local categoryMenu = menu:tag('div'):addClass('menu category' .. categoryIndex .. '-menu')
| |
|
| |
| for i, paragraph in ipairs(paragraphs) do
| |
| if paragraph then
| |
| categoryMenu:tag('div')
| |
| :addClass('category' .. categoryIndex .. '-paragraph' .. i)
| |
| :wikitext(paragraph)
| |
| end
| |
| end
| |
|
| |
| -- Контент
| |
| local content = html:tag('div'):addClass('content')
| |
|
| |
| for i, contentText in ipairs(contents) do
| |
| if contentText then
| |
| content:tag('div')
| |
| :addClass('category' .. categoryIndex .. '-paragraph' .. i .. '-content')
| |
| :wikitext(contentText)
| |
| end
| |
| end
| |
|
| |
| return tostring(html)
| |
| end
| |
|
| |
| -- Главная функция, которая вызывается в шаблоне
| |
| function p.main(frame) | | function p.main(frame) |
| local args = frame:getParent().args | | local args = frame:getParent().args |
| local html = mw.html.create() | | local result = "" |
|
| |
| -- Генерация списка категорий
| |
| local categories = html:tag('div'):addClass('categories')
| |
|
| |
| for i = 1, 2 do
| |
| local categoryName = args['category' .. i]
| |
| if categoryName then
| |
| categories:tag('div')
| |
| :addClass('category' .. i)
| |
| :wikitext(categoryName)
| |
| end
| |
| end
| |
| | |
| -- Основной контейнер
| |
| local mainContainer = html:tag('div'):addClass('main-container')
| |
| | |
| -- Генерация контента для каждой категории
| |
| for i = 1, 2 do
| |
| local categoryName = args['category' .. i]
| |
| if categoryName then
| |
| local paragraphs = {}
| |
| local contents = {}
| |
| | |
| for j = 1, 3 do
| |
| table.insert(paragraphs, args['category' .. i .. '-paragraph' .. j] or '')
| |
| table.insert(contents, args['category' .. i .. '-paragraph' .. j .. '-content'] or '')
| |
| end
| |
|
| |
|
| mainContainer:wikitext(p.renderCategory(paragraphs, contents, categoryName, i))
| | -- Пройдемся по всем аргументам и выведем их |
| end
| | for key, value in pairs(args) do |
| | result = result .. key .. ": " .. tostring(value) .. "<br>" |
| end | | end |
|
| |
|
| return tostring(html) | | -- Вернем результат на страницу |
| | return result |
| end | | end |
|
| |
|
| return p | | return p |