AndreiXYZ
local p = {}
local getArgs
local function showUserbox(frame, v, nocat) local maybeNocat = if nocat then maybeNocat = '|nocat=yes' end return frame:preprocess('Template:User '..v..maybeNocat..'') end
function p.main(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end local args = getArgs(frame, {wrappers = 'Template:Babel'})
local ret = mw.html.create('table') :attr('role', 'presentation') :addClass('userboxes') :css( { float = args.align or 'right', ['margin-left'] = (args.left or '1') .. 'em', ['margin-bottom'] = (args.bottom or '0') .. 'em', width = (args.width or '248') .. 'px', clear = args.align or 'right', color = args.textcolor or '#000000', border = (args.bordercolor or '#99B3FF') .. ' solid ' .. (args.solid or 1)..'px' } )
local nocat = args.nocat and string.lower(args.nocat) == 'yes'
if args.shadow and string.lower(args.shadow) == 'yes' then ret:css({ ['box-shadow'] = '0 2px 4px rgb(0,0,0,0.2)' }) end
ret:cssText( args['extra-css'] or )
local color = args.color or 'inherit' local row1 = ret:tag('tr') local row2 = ret:tag('tr') local row3 = ret:tag('tr')
local body_cells = row2:tag('td') :css('vertical-align', 'middle !important')
local userboxes -- Special message for when first argument is blank; otherwise treat it as normal if args[1] and args[1]:find('%S') then userboxes = showUserbox(frame, args[1], nocat) else userboxes = args.noboxestext or "You haven't set up any languages. Please see Template:Babel/doc for help." end
body_cells:wikitext(userboxes)
-- "remove" args[1] so it isn't looked at in the loop -- table.remove(args,1) doesn't produce desired result args[1] =
-- Keep track of how many columns are in this table local col_span = 1 for _, v in ipairs( args ) do -- ! indicates a new cell should be created if v:find('%S') and v ~= '!' then body_cells:wikitext( showUserbox(frame, v, nocat) )
-- Recycling body_cells for
elseif v and v == '!' then col_span = col_span + 1 body_cells:done() body_cells = row2:tag('td') end end
row1:tag('th') :css({ ['background-color'] = color, ['text-align'] = 'center' }) :attr('colspan',col_span) :wikitext( args.header or 'Wikipedia:Babel' ) :done()
row3:tag('td') :css({ ['background-color'] = color, ['text-align'] = 'center' }) :attr('colspan',col_span) :wikitext( args.footer or 'Search user languages' ) :done()
if args['special-boxes'] then body_cells:wikitext(args['special-boxes']) end
body_cells:done()
return tostring(ret) end
return p
AndreiXYZ is a Romanian user and world designer who joined OWOT in late July 2020. He is known for creating WOTDs using symbols for legacy computing.
Despite not being too active on the site and rarely interacting with the front page, he is very well known in the Discord server, being the second most active member.