Module:Sidebar
From Chalo Chatu, Zambia online encyclopedia
Jump to navigationJump to search
Documentation for this module may be created at Module:Sidebar/doc
require('strict')
local cfg = mw.loadData('Module:Sidebar/configuration')
local getArgs = require('Module:Arguments').getArgs
local p = {}
local function hasSubgroup(s)
return s and s:match(cfg.i18n.pattern.subgroup)
end
local function has_navbar(navbar_mode, sidebar_name)
return navbar_mode ~= cfg.i18n.navbar_none
and navbar_mode ~= cfg.i18n.navbar_off
and (
sidebar_name or
mw.getCurrentFrame():getParent():getTitle():gsub(cfg.i18n.pattern.sandbox, '') ~=
cfg.i18n.title_not_to_add_navbar
)
end
function p.sidebar(frame, args)
args = args or getArgs(frame)
local root = mw.html.create('table')
root
:addClass(cfg.i18n.class.sidebar)
:addClass(args.bodyclass or args.class)
:css('width', args.width)
:cssText(args.style or args.bodystyle)
if args.title then
root:tag('tr'):tag('th')
:addClass(cfg.i18n.class.title)
:cssText(args.titlestyle)
:wikitext(args.title)
end
for i = 1, 20 do
local heading = args['heading' .. i]
local content = args['content' .. i]
if heading then
root:tag('tr'):tag('th')
:addClass(cfg.i18n.class.heading)
:cssText(args['heading' .. i .. 'style'])
:wikitext(heading)
end
if content then
root:tag('tr'):tag('td')
:addClass(hasSubgroup(content) and cfg.i18n.class.content_with_subgroup or cfg.i18n.class.content)
:cssText(args['content' .. i .. 'style'])
:wikitext(content)
end
end
if args.below then
root:tag('tr'):tag('td')
:addClass(cfg.i18n.class.below)
:cssText(args.belowstyle)
:wikitext(args.below)
end
if has_navbar(args.navbar, args.name) then
root:tag('tr'):tag('td')
:addClass(cfg.i18n.class.navbar)
:wikitext(require('Module:Navbar')._navbar{
args.name,
mini = 1,
fontstyle = args.navbarfontstyle
})
end
return tostring(root)
end
return p