Module:Userbox

-- This module implements.

local getArgs = require('Module:Arguments').getArgs local htmlBuilder = require('Module:HtmlBuilder') local catHander = require('Module:Category handler')

local p = {}

function p.main(frame) local args = getArgs(frame) return p._main(args) end

function p._main(args) local userbox = p.userbox(args) local cats = p.categories(args) return userbox .. (cats or '') end

function p.userbox(args) -- Calculate border width. local borderWidth = args['border-width'] or args['border-s'] borderWidth = tonumber(borderWidth) if not borderWidth or borderWidth < 0 then borderWidth = 1 end

-- Get border color. local borderColor = args['border-color'] or args[1] or args['border-c'] or args['id-c'] or '#999'

-- Get background color. local backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#EEE'

-- Calculate width. local width = 240 - 2 * borderWidth

-- Build the box. local root = htmlBuilder.create('div') root .css('float', args.float or 'left') .css('border', tostring(borderWidth) .. 'px solid ' .. borderColor) .css('margin', '1px') .css('width', tostring(width) .. 'px') .addClass('wikipediauserbox') .addClass(args.bodyclass) .tag('table') .css('border-collapse', 'collapse') .css('width', width) .css('margin-bottom', '0') .css('background', backgroundColor) return tostring(root) end

function p.categories(args) end

return p