385
edits
No edit summary |
m (59 revisions imported from wikipedia:Module:Aligned_table: see Topic:Vtixlm0q28eo6jtf) |
||
(24 intermediate revisions by 6 users not shown) | |||
Line 39: | Line 39: | ||
colstyle[1] = 'text-align:left;' | colstyle[1] = 'text-align:left;' | ||
colstyle[2] = 'text-align:right;' | colstyle[2] = 'text-align:right;' | ||
end | |||
if isnotempty(args['rightleft']) then | |||
colstyle[1] = 'text-align:right;' | |||
colstyle[2] = 'text-align:left;' | |||
end | end | ||
for i = 1,cols do | for i = 1,cols do | ||
Line 94: | Line 98: | ||
-- build the table content | -- build the table content | ||
if isnotempty(args['title']) then | if isnotempty(args['title']) then | ||
root:tag('caption'):wikitext(title) | local caption = root:tag('caption') | ||
caption:cssText(args['titlestyle']) | |||
caption:wikitext(args['title']) | |||
end | end | ||
if isnotempty(args['above']) then | if isnotempty(args['above']) then | ||
Line 100: | Line 106: | ||
local cell = row:tag('th') | local cell = row:tag('th') | ||
cell:attr('colspan', cols) | cell:attr('colspan', cols) | ||
cell:wikitext(above) | cell:cssText(args['abovestyle']) | ||
cell:wikitext(args['above']) | |||
end | 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') | ||
row:css('vertical-align', 'top') | if isnotempty(args['rowstyle']) then | ||
-- loop over the cells in | row:cssText(args['rowstyle']) | ||
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 = row:tag('td') | local cell | ||
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 | |||
if args['rowclass' .. tostring(j)] then | |||
cell:addClass(args['rowclass' .. tostring(j)]) | |||
elseif args['row' .. tostring(j) .. 'class'] then | |||
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 | |||
if args['rowstyle' .. tostring(j)] then | |||
cell:cssText(args['rowstyle' .. tostring(j)]) | |||
elseif args['rowevenstyle'] and math.fmod(j,2) == 0 then | |||
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(args[cols*(j - 1) + i] or '') | cell:wikitext(mw.ustring.gsub(args[cols*(j - 1) + i] or '', '^(.-)%s*$', '%1') or '') | ||
end | end | ||
end | end |