Module:Tabber
Documentation for this module may be created at Module:Tabber/doc
local p = {}
local function tointeger(s)
s = tonumber(s)
if s == nil or s ~= math.floor(s) then return nil end
return s
end
function p.makeTabber(args)
local shown = tointeger(args.shown)
local tabber = mw.html.create("div")
:addClass("rhwiki-tabberneue")
:attr("data-shown-index", tostring(shown))
local menu = tabber:tag("div")
:addClass("rhwiki-tabberneue-menu")
:addClass("oo-ui-tabSelectWidget-framed")
:css("text-align", args["tab-align"])
local content = tabber:tag("div")
:addClass("rhwiki-tabberneue-content")
:css("text-align", args["content-align"])
local i = 1
while true do
local labelText = args[2 * i - 1] or args["tab-" .. i]
local panelText = args[2 * i] or args["content-" .. i]
if labelText == nil or panelText == nil then break end
menu:tag("div")
:addClass("rhwiki-tabberneue-option")
:addClass("oo-ui-optionWidget")
:addClass("oo-ui-tabOptionWidget")
:addClass("oo-ui-labelElement")
:addClass(i == shown and "oo-ui-optionWidget-selected" or nil)
:tag("span")
:addClass("rhwiki-tabberneue-label")
:addClass("oo-ui-labelElement-label")
:wikitext(labelText)
content:tag("div")
:addClass("rhwiki-tabberneue-panel")
:addClass(i ~= shown and "oo-ui-element-hidden" or nil)
:wikitext(panelText)
i = i + 1
end
return tostring(tabber)
end
function p.main(frame)
return p.makeTabber(frame:getParent().args)
end
return p