Modul:Page tabs
Pidangan
Modul ini dinilai sebagai modul alpha. Modul ini sudah siap untuk input dari pihak ketiga, dan bisa digunakan dalam beberapa halaman untuk melihat apakah ada masalah yang timbul, namun harus terus diawasi. Saran untuk fitur baru atau perubahan dalam mekanisme input dan output dipersilahkan.Page tabs |
This module implements {{page tabs}}. Please see the template page for documentation.
-- 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
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('vertical-align', 'top')
local trow = troot.tag('tr')
if not args[1] then
args[1] = '{{{1}}}'
end
for i, link in ipairs(args) do
local thisPage
if tonumber(args.This) == i then
thisPage = true
end
trow.wikitext(makeTab(link, thisPage))
end
trow.tag('td')
.css('border-bottom', '2px solid #a3b1bf')
.css('width', '3000px')
.wikitext(' ')
return tostring(root)
end
function p.makeTab(link, thisPage)
local tcell = htmlBuilder.create()
tcell.tag('td')
.css('padding', '0.5em')
.css('background-color', thisPage and 'white' or '#cee0f2')
.cssText(not thisPage and 'font-size:90%')
.css('line-height', '0.95em')
.css('border', 'solid 2px #a3b1bf')
.cssText(thisPage and 'border-bottom:0')
.cssText(thisPage 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')
.css('padding', '0')
.wikitext(' ')
return tostring(tcell)
end
return p