此模块的文档可以在模块:RichTab/doc创建
-- Source: https://dontstarve.huijiwiki.com/index.php?title=%E6%A8%A1%E5%9D%97:RichTab
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.render(frame)
local args = getArgs(frame)
local tabParams = p.parseTabParams(args)
if #tabParams == 0 then
return ''
end
local class = args.class or 'tablist-default'
local onClass = 'active'
local html = mw.html.create('div'):addClass('tabber richtab')
local header = html:tag('ul'):addClass('nav tabber-filter ' .. class):attr('role', 'tablist')
local headerType = args.prefix or 'richtab'
local current = tonumber(args.active) or 1
for tabIndex, tabItem in ipairs(tabParams) do
local li = header:tag('li'):addClass('tabber-filter-item' .. (tabIndex == current and ' ' .. onClass or ''))
:attr('data-type', headerType):attr('data-' .. headerType, tabIndex):wikitext(tabItem.header)
end
local content = html:tag('div'):addClass('tab-content tabber-content')
if args.is_getstrings then
content = content:addClass('tabcontent-default')
end
for tabIndex, tabItem in ipairs(tabParams) do
local div = content:tag('div'):addClass('tab-pane tabber-item'):attr('data-' .. headerType, tabIndex)
div:wikitext(tabItem.content)
end
return html
end
function p.parseTabParams(args)
local index = 1
local parsedParams = {}
while args[index] ~= nil and args[index + 1] ~= nil do
table.insert(parsedParams, {
header = args[index],
content = args[index + 1],
})
index = index + 2
end
return parsedParams
end
return p