Anonymous user
more abstraction for box structure and better small=yes support
(start work on a module for displaying Template:Mbox-family message boxes) |
(more abstraction for box structure and better small=yes support) |
||
Line 4:
local p = {}
local function generateBoxStructure()
local root = htmlBuilder.create() --
local row = box.tag('tr')
return root, box, row
end
function p.build(data, args)
-- Process config data
local isSmall = args.small == 'yes' or args.small == true
local typeData = data.types[args.type]
local invalidType = args.type and not typeData and true or false
typeData = typeData or data.types[data.default]
local image, imageRight, text, imageSize
if isSmall then
image = args.smallimage or args.image
imageRight = args.smallimageright or args.imageright
text = args.smalltext or args.text
imageSize = data.imageSizeSmall or data.imageSize
else
imageRight = args.imageright
imageSize = data.imageSizeLarge or data.imageSize
end
-- Get the box structure.
local root, box, row = generateBoxStructure()
-- Build the box.
▲ local root = htmlBuilder.create() -- The template root. Includes error messages and categories added after the box.
▲ local box = root.tag('table') -- The box.
box
.attr('id', args.id)
Line 28 ⟶ 49:
-- Add the left-hand image.
row.tag('td')
.addClass('mbox-image')
.wikitext(
▲ typeData.image,
▲ ))
elseif data.imageEmptyCell then
row.tag('td')
Line 46 ⟶ 62:
.addClass('mbox-text')
.cssText(args.textstyle)
.wikitext(
-- Add the right-hand image.
if
row.tag('td')
.addClass('mbox-imageright')
.wikitext(
end
|