Mô đun:Page tabs
Tài liệu mô đun[tạo]
-- This module implements {{Page tabs}}.
local getArgs = require('Mô đun:Arguments').getArgs
local yesno = require('Mô đun: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 troot = root:tag('table')
troot
:css('background', args.Background or '#f8f9fa')
: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 #c0c0c0')
:css('width', '3000px')
:wikitext(' ')
return tostring(root)
end
function p.makeTab(link, thisPage)
local tcell = mw.html.create()
tcell:tag('td')
:css('padding', '0.6rem 0.75rem')
:css('background-color', thisPage and '#36c' or '#eaf3ff')
:cssText(not thisPage and 'font-size:95%' or nil)
:css('line-height', '0.95em')
:css('border-bottom', 'solid 2px #36c')
:cssText(thisPage and 'color: #fff')
:cssText(thisPage and 'font-weight:bold')
:css('white-space', 'nowrap')
:css('width', '20px')
:wikitext(link)
:done()
:tag('td')
:css('border-bottom', '2px solid #c0c0c0')
:css('width', '10px')
:css('padding', '0')
:wikitext(' ')
return tostring(tcell)
end
return p