模組:Page tabs
![文档图示](http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/50px-Test_Template_Info-Icon_-_Version_%282%29.svg.png)
您可能想要创建本Scribunto模块的文档。 编者可以在本模块的沙盒 (创建 | 镜像)和测试样例 (创建)页面进行实验。 请在/doc子页面中添加分类。本模块的子页面。 |
-- 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 '#f8fcff')
:addClass('template-page-tabs')
if not args[1] then
args[1] = '{{{1}}}'
end
for i, link in ipairs(args) do
makeTab(row, link, args, i)
end
return tostring(root)
end
function p.makeTab(root, link, args, i)
local thisPage = (args.This == 'auto' and link:find('[[' .. mw.title.getCurrentTitle().prefixedText .. '|', 1, true)) or tonumber(args.This) == i
root:tag('span')
:css('background-color', thisPage and (args['tab-bg'] or 'white') or (args['tab1-bg'] or '#cee0f2'))
:cssText(thisPage and 'border-bottom:0;font-weight:bold' or 'font-size:95%')
:wikitext(link)
:done()
:wikitext('<span class="spacer"> </span>')
end
return p