Changes
Jump to navigation
Jump to search
local HtmlBuilder = require('Module:HtmlBuilder')
.:tag('table') .:addClass('vertical-navbox') .:addClass(args.wraplinks ~= 'true' and 'nowraplinks'or nil) .:addClass(args.bodyclass or args.class) .:css('float', args.float or 'right') .:css('clear', (args.float == 'none' and 'both') or args.float or 'right') .:css('width', args.width or '22.0em') .:css('margin', args.float == 'left' and '0 1.0em 1.0em 0' or '0 0 1.0em 1.0em') .:css('background', '#f9f9f9') .:css('border', '1px solid #aaa') .:css('padding', '0.2em') .:css('border-spacing', '0.4em 0') .:css('text-align', 'center') .:css('line-height', '1.4em') .:css('font-size', '88%') .:cssText(args.bodystyle or args.style)
.:tag('caption') .:addClass(args.outertitleclass) .:css('padding-bottom', '0.2em') .:css('font-size', '125%') .:css('line-height', '1.2em') .:css('font-weight', 'bold') .:cssText(args.outertitlestyle) .:wikitext(args.outertitle)
.:addClass(args.topimageclass) .:css('padding', '0.4em 0') .:cssText(args.topimagestyle) .:wikitext(args.topimage)
.:tag('div') .:css('padding-top', '0.2em') .:css('line-height', '1.2em') .:cssText(args.topcaptionstyle) .:wikitext(args.topcaption)
.:tag('tr') .:tag('td') .:addClass(args.pretitleclass) .:cssText(args.basestyle) .:css('padding-top', args.topimage and '0.2em' or '0.4em') .:css('line-height', '1.2em') .:cssText(args.pretitlestyle) .:wikitext(args.pretitle)
.:wikitext(args.title) .tag:wikitext('</th', {unclosed = true}) .tag('></tr>', {) -- @todo replace this with unclosed = true})again once mw.html gets it
.:tag('tr') .:tag('th') .:addClass(args.titleclass) .:cssText(args.basestyle) .:css('padding', '0.2em 0.4em 0.2em') .:css('padding-top', args.pretitle and 0) .:css('font-size', '145%') .:css('line-height', '1.2em') .:cssText(args.titlestyle) .:wikitext(args.title)
.:addClass(args.imageclass) .:css('padding', '0.2em 0 0.4em') .:cssText(args.imagestyle) .:wikitext(args.image)
.:tag('div') .:css('padding-top', '0.2em') .:css('line-height', '1.2em') .:cssText(args.captionstyle) .:wikitext(args.caption)
.:tag('tr') .:tag('td') .:addClass(args.aboveclass) .:css('padding', '0.3em 0.4em 0.3em') .:css('font-weight', 'bold') .:cssText(args.abovestyle) .:newline() -- newline required for bullet-points to work .:wikitext(args.above)
.:tag('tr') .:tag('th') .:addClass(args.headingclass) .:css('padding', '0.1em') .:cssText(args.basestyle) .:cssText(args.headingstyle) .:cssText(args['heading' .. num .. 'style']) .:newline() .:wikitext(heading)
.:tag('tr') .:tag('td') .:addClass(args.contentclass) .:css('padding', '0 0.1em 0.4em') .:cssText(args.contentstyle) .:cssText(args['content' .. num .. 'style']) .:newline() .:wikitext(content) .:done() .:newline() -- Without a linebreak after the </td>, a nested list like "* {{hlist| ...}}" doesn't parse correctly.
.:tag('tr') .:tag('td') .:addClass(args.belowclass) .:css('padding', '0.3em 0.4em 0.3em') .:css('font-weight', 'bold') .:cssText(args.belowstyle) .:newline() .:wikitext(args.below)
.:tag('tr') .:tag('td') .:css('text-align', 'right') .:css('font-size', '115%') .:cssText(args.navbarstyle or args.tnavbarstyle) .:wikitext(navbar{
.:addClass('NavFrame') .:addClass((not expand) and 'collapsed'or nil) .:css('border', 'none') .:css('padding', 0) .:cssText(args.listframestyle) .:cssText(args['list' .. num .. 'framestyle']) .:tag('div') .:addClass('NavHead') .:addClass(args.listtitleclass) .:css('font-size', '105%') .:css('background', 'transparent') .:css('text-align', 'left') .:cssText(args.basestyle) .:cssText(args.listtitlestyle) .:cssText(args['list' .. num .. 'titlestyle']) .:wikitext(trimAndAddAutomaticNewline(args['list' .. num .. 'title'] or 'List')) .:done() .:tag('div') .:addClass('NavContent') .:addClass(args.listclass) .:addClass(args['list' .. num .. 'class']) .:css('font-size', '105%') .:css('padding', '0.2em 0 0.4em') .:css('text-align', 'center') .:cssText(args.liststyle) .:cssText(args['list' .. num .. 'style']) .:wikitext(trimAndAddAutomaticNewline(args['list' .. num]))
use mw.html
local getArgs = require('Module:Arguments').getArgs
local navbar = require('Module:Navbar')._navbar
args = getArgs(frame)
end
local root = HtmlBuildermw.html.create()
local child = args.child and mw.text.trim(args.child) == 'yes'
if not child then
root = root
if args.outertitle then
root
end
if args.topimage then
local imageCell = root.:tag('tr').:tag('td')
imageCell
if args.topcaption then
imageCell
end
end
if args.pretitle then
root
end
if child then
root
else
root
end
end
if args.image then
local imageCell = root.:tag('tr').:tag('td')
imageCell
if args.caption then
imageCell
end
end
if args.above then
root
end
if heading then
root
end
if content then
root
end
end
if args.below then
root
end
if navbarArg ~= 'none' and navbarArg ~= 'off' and (args.name or frame:getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Sidebar') then
root
args.name,
mini = 1,
local expand = args.expanded and (args.expanded == 'all' or args.expanded == args['list' .. num .. 'name'])
local row = HtmlBuildermw.html.create('div')
row
contentArgs['content' .. num] = tostring(row)