پودمان:Page tabs

    از ویکی‌نور
    (تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)

    توضیحات این پودمان می‌تواند در پودمان:Page tabs/توضیحات قرار گیرد.

    -- 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">&#32;</span>')
    end
    
    return p