Module:Babel: Difference between revisions

Content deleted Content added
hm
 
Remove per this discussion, also there is no "mox" it should have been "moz" so this wasn't doing anything for Mozilla browsers :)
 
(35 intermediate revisions by 8 users not shown)
Line 3:
local getArgs
 
local function mainshowUserbox(frame, v, nocat)
local maybeNocat = ''
if nocat then
maybeNocat = '|nocat=yes'
end
return frame:preprocess('{{User '..v..maybeNocat..'}}')
end
 
function p.main(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
local args = getArgs(frame, {removeBlanks = true, wrappers = 'Template:Babel'})
 
local table_tagret = mw.html.create('table')
:addClassattr('aserboxesrole', 'presentation')
:addClass('userboxes')
local table_styling = {
:css( {
{'align', args.align or 'right', ''},
{'margin-left', float = args.leftalign or '1', 'emright'},
{ ['margin-bottomleft',] = (args.bottomleft or '01',) .. 'em'},
{ ['widthmargin-bottom',] = (args.widthbottom or '2480',) .. 'pxem'},
{'clear', width = (args.alignwidth or 'right248',) .. 'px'},
{'color', clear = args.textcoloralign or '#000000right', ''}
color = args.textcolor or '#000000',
}
border = (args.bordercolor or '#99B3FF') .. ' solid ' .. (args.solid or 1)..'px'
} )
for _,v in ipairs(table_styling) do
 
table_tag:css(v[1],v[2]..v[3])
local nocat = args.nocat and string.lower(args.nocat) == 'yes'
end
 
local bordercolor = args.bordercolor or '#99B3FF'
local solid = args.solid or '1'
table_styling:css('border',bordercolor..' solid '..solid..'px')
if args.shadow and string.lower(args.shadow) == 'yes' then
table_stylingret:css({ ['box-shadow',] = '0 2px 4px rgb(0,0,0,0.2)' })
:css('-mox-box-shadow','0 2px 4px rgb(0,0,0,0.2)')
:css('-webkit-box-shadow','0 2px 4px rgb(0,0,0,0.2)')
end
 
local extracss =ret:cssText( args.extracss['extra-css'] or '' )
 
table_styling:cssText(extracss)
local color = args.color or 'inherit'
local table_bodyrow1 = mw.html.createret:tag('tbodytr')
local row1row2 = mw.html.createret:tag('tr')
local row2row3 = mw.html.createret:tag('tr')
 
local row3 = mw.html.create('tr')
local headerbody_cells = args.header or row2:tag('[[Wikipedia:Babel]]td')
local footer = args.footer or '[[:Category:Wikipedians by language|Search user languages]]'
local th1 = mw.html.create('th')
:css('background-color',color)
:css('text-align','center')
:attr('colspan','10')
:wikitext(header)
local footer = mw.html.create('tr')
:css('background-color',color)
:css('text-align','center')
:attr('colspan','10')
:wikitext(footer)
row1:node(header)
row2:node(footer)
local body_cells = mw.html.create('td')
:css('vertical-align', 'middle !important')
 
local userboxes
local arg1 = args[1] or "''You haven't set up any languages. Please see [[Template:Babel/doc]] for help.''"
-- 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 userboxes = arg1
local unclosed_tdcol_span = false1
for _, v in ipairs( args ) do
-- ! indicates a new cell should be created
local boxtext
if v:find('%S') and not v =~= '!' then
body_cells:wikitext( showUserbox(frame, v, nocat) )
boxtext = frame:expandTemplate{title='User '..v}
-- Recycling body_cells for <td>
userboxes = userboxes..boxtext
elseif v and v == '!' then
col_span = col_span + 1
userboxes = userboxes..'</td>\n<td>'
body_cells:done()
unclosed_td = true
body_cells = row2:tag('td')
end
end
 
row1:tag('th')
if unclosed_td then
:css({ ['background-color'] = color,
userboxes = userboxes..'</td>'
['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 '[[:Category:Wikipedians by language|Search user languages]]' )
:done()
 
if args['special-boxes'] then
body_cells:wikitext(args['special-boxes'])
end
 
body_cells:wikitext(userboxes)
body_cells:done()
 
row2:node(body_cells)
return tostring(ret)
table_body:node(row1)
:node(row2)
:node(row3)
table_tag:node(table_body)
return tostring(table_tag)
end