Модуль:CategoryMenu: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) Нет описания правки |
Pok (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
local p = {} | local p = {} | ||
function p. | function p.renderCategory(paragraphs, contents, categoryName, categoryIndex) | ||
local | local html = mw.html.create() | ||
-- Генерация названия категории | |||
html:tag('div') | |||
:addClass('category' .. categoryIndex) | |||
:wikitext(categoryName) | |||
-- | -- Меню | ||
for | local menu = html:tag('div'):addClass('menu-container') | ||
local | |||
local categoryMenu = menu:tag('div'):addClass('menu category' .. categoryIndex .. '-menu') | |||
for i, paragraph in ipairs(paragraphs) do | |||
categoryMenu:tag('div') | |||
:addClass('category' .. categoryIndex .. '-paragraph' .. i) | |||
:wikitext(paragraph) | |||
end | |||
-- Контент | |||
local content = html:tag('div'):addClass('content') | |||
for i, contentText in ipairs(contents) do | |||
content:tag('div') | |||
:addClass('category' .. categoryIndex .. '-paragraph' .. i .. '-content') | |||
:wikitext(contentText) | |||
end | end | ||
return tostring(html) | |||
end | |||
function p.main(frame) | |||
local args = frame:getParent().args | |||
local html = mw.html.create() | |||
-- Генерация списка категорий | |||
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 | ||
end | end | ||
-- | -- Основной контейнер | ||
local | 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]) | |||
table.insert(contents, args['category' .. i .. '-paragraph' .. j .. '-content']) | |||
end | |||
mainContainer:wikitext(p.renderCategory(paragraphs, contents, categoryName, i)) | |||
end | end | ||
end | end | ||
return tostring( | return tostring(html) | ||
end | end | ||
return p | return p |
Версия от 19:25, 19 сентября 2024
Для документации этого модуля может быть создана страница Модуль:CategoryMenu/doc
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 categoryMenu:tag('div') :addClass('category' .. categoryIndex .. '-paragraph' .. i) :wikitext(paragraph) end -- Контент local content = html:tag('div'):addClass('content') for i, contentText in ipairs(contents) do content:tag('div') :addClass('category' .. categoryIndex .. '-paragraph' .. i .. '-content') :wikitext(contentText) end return tostring(html) end function p.main(frame) local args = frame:getParent().args local html = mw.html.create() -- Генерация списка категорий 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]) table.insert(contents, args['category' .. i .. '-paragraph' .. j .. '-content']) end mainContainer:wikitext(p.renderCategory(paragraphs, contents, categoryName, i)) end end return tostring(html) end return p