Editing Module:Aligned table

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. Read the Privacy Policy to learn what information we collect about you and how we use it.

If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 12: Line 12:
local colstyle = {}
local colstyle = {}
local cols = tonumber(args['cols']) or 2
local cols = tonumber(args['cols']) or 2
 
local class = args['class'] or ''
local style = args['style'] or ''
local leftright = args['leftright'] or ''
local fullwidth = args['fullwidth'] or ''
if leftright ~= '' then
colstyle[1] = 'text-align:left;'
colstyle[2] = 'text-align:right;'
end
-- create the root table
-- create the root table
local root = mw.html.create('table')
local root = mw.html.create('table')
 
-- add table style for fullwidth
-- add table style for fullwidth
if fullwidth ~= '' then
if isnotempty(args['fullwidth']) then
root
root
:css('width', '100%')
:css('width', '100%')
:css('border-collapse', 'collapse')
:css('border-collapse', 'collapse')
:css('border-spacing', '0px 0px')
:css('border-spacing', '0px')
:css('border', 'none')
:css('border', 'none')
end
end
-- add table classes
-- add table classes
if isnotempty(args['class']) then
if class ~= '' then
root:addClass(args['class'])
root:addClass(class)
end
end
-- add table style
-- add table style
if isnotempty(args['style']) then
if style ~= '' then
root:cssText(args['style'])
root:cssText(style)
end
end
-- build arrays with the column styles and classes
-- build arrays with the column styles and classes
if isnotempty(args['leftright']) then
colstyle[1] = 'text-align:left;'
colstyle[2] = 'text-align:right;'
end
if isnotempty(args['rightleft']) then
colstyle[1] = 'text-align:right;'
colstyle[2] = 'text-align:left;'
end
for i = 1,cols do
for i = 1,cols do
colclass[ i ] = colclass[ i ] or ''
colclass[ i ] = colclass[ i ] or ''
colstyle[ i ] = colstyle[ i ] or ''
colstyle[ i ] = colstyle[ i ] or ''
if isnotempty(args['colstyle']) then
colstyle[ i ] = args['colstyle'] .. ';' .. colstyle[ i ]
end
if isnotempty(args['colalign' .. tostring(i)]) then
if isnotempty(args['colalign' .. tostring(i)]) then
colstyle[ i ] = 'text-align:' .. args['colalign' .. tostring(i)] .. ';' .. colstyle[ i ]
colstyle[ i ] = 'text-align:' .. args['colalign' .. tostring(i)] .. ';' .. colstyle[ i ]
elseif isnotempty(args['col' .. tostring(i) .. 'align']) then
colstyle[ i ] = 'text-align:' .. args['col' .. tostring(i) .. 'align'] .. ';' .. colstyle[ i ]
elseif isnotempty(args['align' .. tostring(i)]) then
elseif isnotempty(args['align' .. tostring(i)]) then
colstyle[ i ] = 'text-align:' .. args['align' .. tostring(i)] .. ';' .. colstyle[ i ]
colstyle[ i ] = 'text-align:' .. args['align' .. tostring(i)] .. ';' .. colstyle[ i ]
end
end
if isnotempty(args['colnowrap' .. tostring(i)]) then
if isnotempty(args['colnowrap' .. tostring(i)]) then
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]
elseif isnotempty(args['col' .. tostring(i) .. 'nowrap']) then
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]
elseif isnotempty(args['nowrap' .. tostring(i)]) then
elseif isnotempty(args['nowrap' .. tostring(i)]) then
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]
end
if isnotempty(args['colwidth' .. tostring(i)]) then
colstyle[ i ] = 'width:' .. args['colwidth' .. tostring(i)] .. ';' .. colstyle[ i ]
elseif isnotempty(args['col' .. tostring(i) .. 'width']) then
colstyle[ i ] = 'width:' .. args['col' .. tostring(i) .. 'width'] .. ';' .. colstyle[ i ]
elseif isnotempty(args['colwidth']) then
colstyle[ i ] = 'width:' .. args['colwidth'] .. ';' .. colstyle[ i ]
end
end
if isnotempty(args['colstyle' .. tostring(i)]) then
if isnotempty(args['colstyle' .. tostring(i)]) then
colstyle[ i ] = colstyle[ i ] .. args['colstyle' .. tostring(i)]
colstyle[ i ] = colstyle[ i ] .. args['colstyle' .. tostring(i)]
elseif isnotempty(args['col' .. tostring(i) .. 'style']) then
colstyle[ i ] = colstyle[ i ] .. args['col' .. tostring(i) .. 'style']
elseif isnotempty(args['style' .. tostring(i)]) then
elseif isnotempty(args['style' .. tostring(i)]) then
colstyle[ i ] = colstyle[ i ] .. args['style' .. tostring(i)]
colstyle[ i ] = colstyle[ i ] .. args['style' .. tostring(i)]
Line 80: Line 60:
if isnotempty(args['colclass' .. tostring(i)]) then
if isnotempty(args['colclass' .. tostring(i)]) then
colclass[ i ] =  args['colclass' .. tostring(i)]
colclass[ i ] =  args['colclass' .. tostring(i)]
elseif isnotempty(args['col' .. tostring(i) .. 'class']) then
colclass[ i ] =  args['col' .. tostring(i) .. 'class']
elseif isnotempty(args['class' .. tostring(i)]) then
elseif isnotempty(args['class' .. tostring(i)]) then
colclass[ i ] =  args['class' .. tostring(i)]
colclass[ i ] =  args['class' .. tostring(i)]
Line 95: Line 73:
-- compute the number of rows
-- compute the number of rows
local rows = math.ceil(cellcount / cols)
local rows = math.ceil(cellcount / cols)
 
-- build the table content
-- build the table content
if isnotempty(args['title']) then
local caption = root:tag('caption')
caption:cssText(args['titlestyle'])
caption:wikitext(args['title'])
end
if isnotempty(args['above']) then
local row = root:tag('tr')
local cell = row:tag('th')
cell:attr('colspan', cols)
cell:cssText(args['abovestyle'])
cell:wikitext(args['above'])
end
for j=1,rows do
for j=1,rows do
-- start a new row
-- start a new row
local row = root:tag('tr')
local row = root:tag('tr')
if isnotempty(args['rowstyle']) then
row:css('vertical-align', 'top')
row:cssText(args['rowstyle'])
-- loop over the cells in each row
else
row:css('vertical-align', 'top')
end
if isnotempty(args['rowclass']) then
row:addClass(args['rowclass'])
end
-- loop over the cells in the row
for i=1,cols do
for i=1,cols do
local cell
local cell = row:tag('td')
if isnotempty(args['row' .. tostring(j) .. 'header']) then
cell = row:tag('th'):attr('scope','col')
elseif isnotempty(args['col' .. tostring(i) .. 'header']) then
cell = row:tag('th'):attr('scope','row')
else
cell = row:tag('td')
end
if args['class' .. tostring(j) .. '.' .. tostring(i)] then
if args['class' .. tostring(j) .. '.' .. tostring(i)] then
cell:addClass(args['class' .. tostring(j) .. '.' .. tostring(i)])
cell:addClass(args['class' .. tostring(j) .. '.' .. tostring(i)])
else
elseif args['rowclass' .. tostring(j)] then
if args['rowclass' .. tostring(j)] then
cell:addClass(args['rowclass' .. tostring(j)])
cell:addClass(args['rowclass' .. tostring(j)])
elseif colclass[i] ~= '' then
elseif args['row' .. tostring(j) .. 'class'] then
cell:addClass(colclass[i])
cell:addClass(args['row' .. tostring(j) .. 'class'])
elseif args['rowevenclass'] and math.fmod(j,2) == 0 then
cell:addClass(args['rowevenclass'])
elseif args['rowoddclass'] and math.fmod(j,2) == 1 then
cell:addClass(args['rowoddclass'])
end
if colclass[i] ~= '' then
cell:addClass(colclass[i])
end
end
end
if args['style' .. tostring(j) .. '.' .. tostring(i)] then
if args['style' .. tostring(j) .. '.' .. tostring(i)] then
cell:cssText(args['style' .. tostring(j) .. '.' .. tostring(i)])
cell:cssText(args['style' .. tostring(j) .. '.' .. tostring(i)])
else
elseif args['rowstyle' .. tostring(j)] then
if args['rowstyle' .. tostring(j)] then
cell:cssText(args['rowstyle' .. tostring(j)])
cell:cssText(args['rowstyle' .. tostring(j)])
elseif colstyle[i] ~= '' then
elseif args['rowevenstyle'] and math.fmod(j,2) == 0 then
cell:cssText(colstyle[i])
cell:cssText(args['rowevenstyle'])
elseif args['rowoddstyle'] and math.fmod(j,2) == 1 then
cell:cssText(args['rowoddstyle'])
elseif args['row' .. tostring(j) .. 'style'] then
cell:cssText(args['row' .. tostring(j) .. 'style'])
end
if isnotempty(colstyle[i]) then
cell:cssText(colstyle[i])
end
end
end
cell:wikitext(mw.ustring.gsub(args[cols*(j - 1) + i] or '', '^(.-)%s*$', '%1') or '')
cell:wikitext(args[cols*(j - 1) + i] or '')
end
        end
end
    end
-- return the root table
-- return the root table
return tostring(root)
    return tostring(root)
end
end


return p
return p
Please note that all contributions to Nonbinary Wiki are considered to be released under the Creative Commons Attribution-ShareAlike (see Nonbinary Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)

Template used on this page: