Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

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