-- This module implements {{Page tabs}}.
local getArgs = require('Module:Arguments').getArgs
local htmlBuilder = require('Module:HtmlBuilder')
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
if not args[1] then
return '<strong class="error">Error: no arguments provided</strong>'
end
local root = htmlBuilder.create()
root.wikitext(yesno(args.NOTOC) and '__NOTOC__')
local troot = root.tag('table')
troot
.css('background', args.Background or '#f8fcff')
.css('text-align', 'center')
.css('width', '100%')
.css('border', '0')
.css('border-spacing', '0')
.css('border-collapse', 'collapse')
.css('valign', 'top')
local trow = troot.tag('tr')
for i, link in ipairs(args) do
if tonumber(args.This) == i then
trow.wikitext(makeTab(link, true))
else
trow.wikitext(makeTab(link))
end
end
trow.tag('td')
.css('border-bottom', '2px solid #a3b1bf')
.css('width', '3000px')
.wikitext(' ')
return tostring(root)
end
function p.makeTab(link, this)
local root = htmlBuilder.create()
root.tag('td')
.css('padding', '0.5em')
.css('background-color', this and 'white' or '#cee0f2')
.cssText(not this and 'font-size:90%')
.css('line-height', '0.95em')
.css('border', 'solid 2px #a3b1bf')
.cssText(this and 'border-bottom:0')
.cssText(this and 'font-weight:bold')
.css('white-space', 'nowrap')
.css('width', '20px')
.wikitext(link)
.done()
.tag('td')
.css('border-bottom', '2px solid #a3b1bf')
.css('width', '3px')
.wikitext(' ')
return tostring(root)
end
return p