Модуль: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