Module:Tabs
Jump to navigation
Jump to search
This module implements Template:Tabs
The above documentation is transcluded from Module:Tabs/doc. (edit | history)
local getArgs = require("Module:Arguments").getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
local tabs = {}
tabs[#tabs + 1] = '{|class = "tabs '
if args['containerClass'] then
tabs[#tabs + 1] = args['containerClass']
end
tabs[#tabs + 1] = '"\n'
tabs[#tabs + 1] = '|class = tab-spacer| \n'
local fullPageName = mw.title.getCurrentTitle().prefixedText
for i = 1, 20 do
local name = args['name' .. i]
local link = args['link' .. i]
if name ~= nil then
tabs[#tabs + 1] = '|class = "tab '
if args['tabClass'] then
tabs[#tabs + 1] = args['tabClass'] .. ' '
end
if link then
link = link:gsub('_', ' ')
tabs[#tabs + 1] = fullPageName == link and 'tab-selected' or ''
else
tabs[#tabs + 1] = fullPageName == name and 'tab-selected' or ''
end
tabs[#tabs + 1] = '"'
if args['style' .. i] then
tabs[#tabs + 1] = ('style="%s"'):format(args['style' .. i])
end
if link then
tabs[#tabs + 1] = ('|[[%s|%s]]\n'):format(link, name)
else
tabs[#tabs + 1] = ('|[[/%s|%s]]\n'):format(name, name)
end
tabs[#tabs + 1] = '|class=tab-spacer| \n'
end
end
tabs[#tabs + 1] = '|class=tab-spacer-end| \n'
tabs[#tabs + 1] = '|}'
return table.concat(tabs)
end
return p