Модуль:Tabs
Материал из YastreWiki
Дополнительные действия
Для документации этого модуля может быть создана страница Модуль:Tabs/doc
local p = {}
function p.render(frame)
local args = frame:getParent().args
local root = mw.html.create('div')
root:addClass('tab-container')
local tabs = {}
local contentBlocks = {}
local activeTabId = nil
local i = 1
while args['tab' .. i .. '_title'] do
local title = clean(args['tab' .. i .. '_title'])
local content = clean(args['tab' .. i .. '_content'])
local id = 'tab-' .. i
if title and content then
table.insert(tabs, { id = id, title = title })
table.insert(contentBlocks, { id = id, content = content })
if i == 1 then
activeTabId = id
end
end
i = i + 1
end
local nav = root:tag('div'):addClass('tabs-nav')
for _, tab in ipairs(tabs) do
nav:tag('a')
:addClass('tab-link')
:attr('href', '#' .. tab.id)
:addClass(tab.id == activeTabId and 'active' or '')
:wikitext(tab.title)
end
local content = root:tag('div'):addClass('tab-content')
for _, block in ipairs(contentBlocks) do
content:tag('div')
:addClass('tab-pane')
:attr('id', block.id)
:addClass(block.id == activeTabId and 'active' or '')
:wikitext(block.content)
end
return tostring(root)
end
return p