Module:Page tabs/sandbox

From Wikipedia, the free encyclopedia
-- This module implements {{Page tabs}}.

local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')

local p = {}

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	local makeTab = p.makeTab
	local root = mw.html.create()
	root:wikitext(yesno(args.NOTOC) and '__NOTOC__' or nil)

	local row = root:tag('div')
		:css('background', args.Background or nil)
		:addClass('template-page-tabs')
	if not args[1] then
		args[1] = '{{{1}}}'
	end

	for i, link in ipairs(args) do
		makeTab(row, link, tonumber(args.This) == i,
			(tonumber(args.This) == i and args['tab-bg']) or args['tab1-bg'])
	end
		
	return tostring(root)
end

function p.makeTab(root, link, selected, tabColor)
	root:tag('span')
		:addClass('template-page-tabs-tab')
		:addClass(selected and 'template-page-tabs-tab--selected' or nil)
		:css('background-color', tabColor)
		:wikitext(link)
end

return p