この解説は、モジュール: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