モジュール:Table2
この解説は、モジュール:Table2/docから呼び出されています。 (編集 | 履歴) 編集者は、このモジュールをサンドボックス (作成 | 複製)とテストケース (作成)で試すことができます。(解説) このモジュールのサブページ一覧。 |
local p = {}
-- エラー
function p.error ( message )
return '<strong class="error">エラー:' ..message ..'</strong>'
end
function p.main( frame )
local args = require( 'Module:Arguments' ).getArgs( frame, { wrappers = 'Template:Table2', removeBlanks = false })
local array = {}
local cellstyle = ''
local rowstyle = ''
local temp = ''
local toc = ''
local number = tonumber( args.number ) or 0
local max_col = tonumber( args['列'] ) or tonumber( args.cols ) or 1
if max_col == '' or max_col == 0 then
max_col = 1
end
local line = ''
local tocline = ''
local endflag = ''
-- toc check
if number ~= 0 then
tocline = tocline ..'<th></th>'
end
for i = 1, max_col do
temp = 'th' ..i
toc = args[temp] or ''
endflag = endflag ..toc
tocline = tocline ..'<th>' ..toc ..'</th>'
end
if endflag ~= '' then
line = line ..'<tr>' ..tocline ..'</tr>'
end
local cell = 1
for row, val in pairs ( args ) do
endflag = ''
for col = 1, max_col do
array[col] = args[cell] or ''
endflag = endflag ..array[col]
-- cellstyle check
cellstyle = 'cell' ..row ..'-' ..col
style = args[cellstyle] or ''
if style ~= '' then
array[col] = '<td style="' ..style ..'">' ..array[col] ..'</td>'
else
array[col] = '<td>' ..array[col] ..'</td>'
end
cell = cell + 1
end
if endflag == '' then break end
-- rowstyle check
rowstyle = 'row' ..row
style = args[rowstyle] or ''
if style ~= '' then
line = line ..'\n<tr style="' ..style ..'">\n'
else
line = line ..'\n<tr>\n'
end
-- row number check
if number > 0 then
line = line ..'<td style="text-align: right;">' ..tonumber(row + ( number-1)) ..'. </td>'
end
-- add line + cell
for col = 1, max_col do
line = line ..array[col]
end
line = line ..'\n</tr>\n'
end
return line
end
return p