html-table 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +3 -1
- data.tar.gz.sig +0 -0
- data/CHANGES +159 -155
- data/MANIFEST +59 -59
- data/README +132 -132
- data/certs/djberg96_pub.pem +22 -17
- data/doc/attributes.rdoc +143 -143
- data/doc/table.rdoc +158 -158
- data/doc/table_body.rdoc +9 -9
- data/doc/table_caption.rdoc +9 -9
- data/doc/table_colgroup.rdoc +8 -8
- data/doc/table_colgroup_col.rdoc +9 -9
- data/doc/table_content.rdoc +15 -15
- data/doc/table_foot.rdoc +8 -8
- data/doc/table_head.rdoc +11 -11
- data/doc/table_row.rdoc +105 -105
- data/doc/table_row_data.rdoc +92 -92
- data/doc/table_row_header.rdoc +7 -7
- data/examples/advanced.rb +128 -128
- data/examples/intermediate1.rb +72 -72
- data/examples/intermediate2.rb +62 -62
- data/examples/intermediate3.rb +46 -46
- data/examples/simple1.rb +39 -39
- data/examples/simple2.rb +47 -47
- data/examples/simple3.rb +41 -41
- data/html-table.gemspec +28 -28
- data/lib/html-table.rb +1 -1
- data/lib/html/attribute_handler.rb +403 -403
- data/lib/html/body.rb +37 -37
- data/lib/html/caption.rb +49 -49
- data/lib/html/col.rb +41 -41
- data/lib/html/colgroup.rb +113 -113
- data/lib/html/content.rb +18 -18
- data/lib/html/data.rb +69 -69
- data/lib/html/foot.rb +49 -49
- data/lib/html/head.rb +49 -49
- data/lib/html/header.rb +65 -65
- data/lib/html/html_handler.rb +120 -120
- data/lib/html/row.rb +188 -188
- data/lib/html/table.rb +323 -323
- data/lib/html/tablesection.rb +48 -48
- data/lib/html/tag_handler.rb +121 -121
- data/test/test_attribute_handler.rb +361 -361
- data/test/test_body.rb +87 -87
- data/test/test_caption.rb +80 -80
- data/test/test_col.rb +40 -40
- data/test/test_colgroup.rb +89 -89
- data/test/test_data.rb +77 -77
- data/test/test_foot.rb +111 -111
- data/test/test_head.rb +104 -104
- data/test/test_header.rb +77 -77
- data/test/test_html_handler.rb +37 -37
- data/test/test_row.rb +141 -141
- data/test/test_table.rb +159 -158
- data/test/test_tablesection.rb +42 -42
- data/test/test_tag_handler.rb +90 -90
- metadata +25 -20
- metadata.gz.sig +0 -0
data/examples/intermediate1.rb
CHANGED
@@ -1,72 +1,72 @@
|
|
1
|
-
##############################################################################
|
2
|
-
# intermediate1.rb
|
3
|
-
#
|
4
|
-
# A slightly more advanced HTML Table. This time we'll add some attributes,
|
5
|
-
# add a few rows both implicitly and explicitly, then configure it
|
6
|
-
# after-the-fact.
|
7
|
-
#
|
8
|
-
# You can run this via the "example:intermediate1" rake task.
|
9
|
-
##############################################################################
|
10
|
-
require 'html/table'
|
11
|
-
include HTML
|
12
|
-
|
13
|
-
# Create a table, add two rows implicitly
|
14
|
-
table = Table.new{ |t|
|
15
|
-
t.border = 1
|
16
|
-
t.align = "left"
|
17
|
-
t.content = [
|
18
|
-
["foo","bar","baz"],
|
19
|
-
[1,2]
|
20
|
-
]
|
21
|
-
}
|
22
|
-
|
23
|
-
# Create a Table::Row object with one Data object added implicitly
|
24
|
-
row1 = Table::Row.new{ |r|
|
25
|
-
r.bgcolor = "red"
|
26
|
-
r.nowrap = true
|
27
|
-
r.content = "test"
|
28
|
-
}
|
29
|
-
|
30
|
-
# Create a Table::Row object, add a Data object explicitly (with some
|
31
|
-
# configuration to boot)
|
32
|
-
row2 = Table::Row.new{ |r|
|
33
|
-
r.bgcolor = "blue"
|
34
|
-
r.align = "right"
|
35
|
-
r.content = Table::Row::Data.new{ |d|
|
36
|
-
d.content = "hello world!"
|
37
|
-
d.abbr = "test abbr"
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
# Add the rows explicitly to the table
|
42
|
-
table.push row1, row2
|
43
|
-
|
44
|
-
# Let's configure the row that contains "foo","bar","baz"
|
45
|
-
# Remember, row and column counts start at 0, not 1
|
46
|
-
table.configure(0){ |r|
|
47
|
-
r.bgcolor = "green"
|
48
|
-
r.align = "right"
|
49
|
-
}
|
50
|
-
|
51
|
-
puts table.html
|
52
|
-
|
53
|
-
=begin
|
54
|
-
### OUTPUT ###
|
55
|
-
<table border=1 align='left'>
|
56
|
-
<tr bgcolor='green' align='right'>
|
57
|
-
<td>foo</td>
|
58
|
-
<td>bar</td>
|
59
|
-
<td>baz</td>
|
60
|
-
</tr>
|
61
|
-
<tr>
|
62
|
-
<td>1</td>
|
63
|
-
<td>2</td>
|
64
|
-
</tr>
|
65
|
-
<tr bgcolor='red' nowrap>
|
66
|
-
<td>test</td>
|
67
|
-
</tr>
|
68
|
-
<tr bgcolor='blue' align='right'>
|
69
|
-
<td abbr='test abbr'>hello world!</td>
|
70
|
-
</tr>
|
71
|
-
</table>
|
72
|
-
=end
|
1
|
+
##############################################################################
|
2
|
+
# intermediate1.rb
|
3
|
+
#
|
4
|
+
# A slightly more advanced HTML Table. This time we'll add some attributes,
|
5
|
+
# add a few rows both implicitly and explicitly, then configure it
|
6
|
+
# after-the-fact.
|
7
|
+
#
|
8
|
+
# You can run this via the "example:intermediate1" rake task.
|
9
|
+
##############################################################################
|
10
|
+
require 'html/table'
|
11
|
+
include HTML
|
12
|
+
|
13
|
+
# Create a table, add two rows implicitly
|
14
|
+
table = Table.new{ |t|
|
15
|
+
t.border = 1
|
16
|
+
t.align = "left"
|
17
|
+
t.content = [
|
18
|
+
["foo","bar","baz"],
|
19
|
+
[1,2]
|
20
|
+
]
|
21
|
+
}
|
22
|
+
|
23
|
+
# Create a Table::Row object with one Data object added implicitly
|
24
|
+
row1 = Table::Row.new{ |r|
|
25
|
+
r.bgcolor = "red"
|
26
|
+
r.nowrap = true
|
27
|
+
r.content = "test"
|
28
|
+
}
|
29
|
+
|
30
|
+
# Create a Table::Row object, add a Data object explicitly (with some
|
31
|
+
# configuration to boot)
|
32
|
+
row2 = Table::Row.new{ |r|
|
33
|
+
r.bgcolor = "blue"
|
34
|
+
r.align = "right"
|
35
|
+
r.content = Table::Row::Data.new{ |d|
|
36
|
+
d.content = "hello world!"
|
37
|
+
d.abbr = "test abbr"
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
# Add the rows explicitly to the table
|
42
|
+
table.push row1, row2
|
43
|
+
|
44
|
+
# Let's configure the row that contains "foo","bar","baz"
|
45
|
+
# Remember, row and column counts start at 0, not 1
|
46
|
+
table.configure(0){ |r|
|
47
|
+
r.bgcolor = "green"
|
48
|
+
r.align = "right"
|
49
|
+
}
|
50
|
+
|
51
|
+
puts table.html
|
52
|
+
|
53
|
+
=begin
|
54
|
+
### OUTPUT ###
|
55
|
+
<table border=1 align='left'>
|
56
|
+
<tr bgcolor='green' align='right'>
|
57
|
+
<td>foo</td>
|
58
|
+
<td>bar</td>
|
59
|
+
<td>baz</td>
|
60
|
+
</tr>
|
61
|
+
<tr>
|
62
|
+
<td>1</td>
|
63
|
+
<td>2</td>
|
64
|
+
</tr>
|
65
|
+
<tr bgcolor='red' nowrap>
|
66
|
+
<td>test</td>
|
67
|
+
</tr>
|
68
|
+
<tr bgcolor='blue' align='right'>
|
69
|
+
<td abbr='test abbr'>hello world!</td>
|
70
|
+
</tr>
|
71
|
+
</table>
|
72
|
+
=end
|
data/examples/intermediate2.rb
CHANGED
@@ -1,62 +1,62 @@
|
|
1
|
-
##############################################################################
|
2
|
-
# intermediate2.rb
|
3
|
-
#
|
4
|
-
# A slightly more advanced HTML Table. This time we'll add some attributes,
|
5
|
-
# add a few rows both implicitly and explicitly, then configure it
|
6
|
-
# after-the-fact. We'll also play with Captions and Headers and generally
|
7
|
-
# do things slightly different that intermdiate1.rb.
|
8
|
-
#
|
9
|
-
# You can run this via the "example:intermediate2" rake task.
|
10
|
-
##############################################################################
|
11
|
-
require 'html/table'
|
12
|
-
include HTML
|
13
|
-
|
14
|
-
table = Table.new
|
15
|
-
table.border = 1
|
16
|
-
table.cellpadding = 5
|
17
|
-
|
18
|
-
caption = Table::Caption.new
|
19
|
-
caption.content = "This is a caption!"
|
20
|
-
|
21
|
-
row1 = Table::Row.new
|
22
|
-
row2 = Table::Row.new
|
23
|
-
|
24
|
-
row1.bgcolor = "red"
|
25
|
-
row2.bgcolor = "blue"
|
26
|
-
|
27
|
-
d1 = Table::Row::Data.new{ |d| d.content = "foo" }
|
28
|
-
d2 = Table::Row::Data.new{ |d| d.content = "bar" }
|
29
|
-
d3 = Table::Row::Data.new{ |d| d.content = "baz" }
|
30
|
-
|
31
|
-
row1[0..2] = d1, d2, d3
|
32
|
-
|
33
|
-
d4 = Table::Row::Data.new{ |d| d.content = "hello" }
|
34
|
-
d5 = Table::Row::Data.new{ |d| d.content = "world" }
|
35
|
-
|
36
|
-
h1 = Table::Row::Header.new
|
37
|
-
h1.content = "This is a header"
|
38
|
-
h1.colspan = 2
|
39
|
-
|
40
|
-
row2.unshift h1
|
41
|
-
row2.push d4, d5
|
42
|
-
|
43
|
-
table.push row1, row2
|
44
|
-
table.push caption # automatically bumped to row 0
|
45
|
-
|
46
|
-
puts table.html
|
47
|
-
|
48
|
-
=begin
|
49
|
-
<table border=1 cellpadding=5>
|
50
|
-
<caption>This is a caption!</caption>
|
51
|
-
<tr bgcolor='red'>
|
52
|
-
<td>foo</td>
|
53
|
-
<td>bar</td>
|
54
|
-
<td>baz</td>
|
55
|
-
</tr>
|
56
|
-
<tr bgcolor='blue'>
|
57
|
-
<th colspan=2>This is a header</th>
|
58
|
-
<td>hello</td>
|
59
|
-
<td>world</td>
|
60
|
-
</tr>
|
61
|
-
</table>
|
62
|
-
=end
|
1
|
+
##############################################################################
|
2
|
+
# intermediate2.rb
|
3
|
+
#
|
4
|
+
# A slightly more advanced HTML Table. This time we'll add some attributes,
|
5
|
+
# add a few rows both implicitly and explicitly, then configure it
|
6
|
+
# after-the-fact. We'll also play with Captions and Headers and generally
|
7
|
+
# do things slightly different that intermdiate1.rb.
|
8
|
+
#
|
9
|
+
# You can run this via the "example:intermediate2" rake task.
|
10
|
+
##############################################################################
|
11
|
+
require 'html/table'
|
12
|
+
include HTML
|
13
|
+
|
14
|
+
table = Table.new
|
15
|
+
table.border = 1
|
16
|
+
table.cellpadding = 5
|
17
|
+
|
18
|
+
caption = Table::Caption.new
|
19
|
+
caption.content = "This is a caption!"
|
20
|
+
|
21
|
+
row1 = Table::Row.new
|
22
|
+
row2 = Table::Row.new
|
23
|
+
|
24
|
+
row1.bgcolor = "red"
|
25
|
+
row2.bgcolor = "blue"
|
26
|
+
|
27
|
+
d1 = Table::Row::Data.new{ |d| d.content = "foo" }
|
28
|
+
d2 = Table::Row::Data.new{ |d| d.content = "bar" }
|
29
|
+
d3 = Table::Row::Data.new{ |d| d.content = "baz" }
|
30
|
+
|
31
|
+
row1[0..2] = d1, d2, d3
|
32
|
+
|
33
|
+
d4 = Table::Row::Data.new{ |d| d.content = "hello" }
|
34
|
+
d5 = Table::Row::Data.new{ |d| d.content = "world" }
|
35
|
+
|
36
|
+
h1 = Table::Row::Header.new
|
37
|
+
h1.content = "This is a header"
|
38
|
+
h1.colspan = 2
|
39
|
+
|
40
|
+
row2.unshift h1
|
41
|
+
row2.push d4, d5
|
42
|
+
|
43
|
+
table.push row1, row2
|
44
|
+
table.push caption # automatically bumped to row 0
|
45
|
+
|
46
|
+
puts table.html
|
47
|
+
|
48
|
+
=begin
|
49
|
+
<table border=1 cellpadding=5>
|
50
|
+
<caption>This is a caption!</caption>
|
51
|
+
<tr bgcolor='red'>
|
52
|
+
<td>foo</td>
|
53
|
+
<td>bar</td>
|
54
|
+
<td>baz</td>
|
55
|
+
</tr>
|
56
|
+
<tr bgcolor='blue'>
|
57
|
+
<th colspan=2>This is a header</th>
|
58
|
+
<td>hello</td>
|
59
|
+
<td>world</td>
|
60
|
+
</tr>
|
61
|
+
</table>
|
62
|
+
=end
|
data/examples/intermediate3.rb
CHANGED
@@ -1,46 +1,46 @@
|
|
1
|
-
#######################################################################
|
2
|
-
# intermediate3.rb
|
3
|
-
#
|
4
|
-
# This example demonstrates some intermediate features, including the
|
5
|
-
# DSL style syntax and physical tag handling.
|
6
|
-
#
|
7
|
-
# You can run this example via the "example:intermediate3" rake task.
|
8
|
-
#######################################################################
|
9
|
-
require 'html/table'
|
10
|
-
include HTML
|
11
|
-
|
12
|
-
# You can set physical tags inline using block syntax...
|
13
|
-
table = Table.new do
|
14
|
-
align 'left'
|
15
|
-
bgcolor 'red'
|
16
|
-
header [['header1', 'header2']]
|
17
|
-
content [['foo', 'bar']]
|
18
|
-
content [['baz', 'blah']] do
|
19
|
-
underline true
|
20
|
-
tt true
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
# Or you can do it this way
|
25
|
-
table[1][0].content.bold = true
|
26
|
-
table[1][1].content.italic = true
|
27
|
-
|
28
|
-
puts table.html
|
29
|
-
|
30
|
-
=begin
|
31
|
-
### OUTPUT ###
|
32
|
-
<table align='left' bgcolor='red'>
|
33
|
-
<tr>
|
34
|
-
<th>header1</th>
|
35
|
-
<th>header2</th>
|
36
|
-
</tr>
|
37
|
-
<tr>
|
38
|
-
<td><b>foo</b></td>
|
39
|
-
<td><i>bar</i></td>
|
40
|
-
</tr>
|
41
|
-
<tr>
|
42
|
-
<td><tt><u>baz</u></tt></td>
|
43
|
-
<td><tt><u>blah</u></tt></td>
|
44
|
-
</tr>
|
45
|
-
</table>
|
46
|
-
=end
|
1
|
+
#######################################################################
|
2
|
+
# intermediate3.rb
|
3
|
+
#
|
4
|
+
# This example demonstrates some intermediate features, including the
|
5
|
+
# DSL style syntax and physical tag handling.
|
6
|
+
#
|
7
|
+
# You can run this example via the "example:intermediate3" rake task.
|
8
|
+
#######################################################################
|
9
|
+
require 'html/table'
|
10
|
+
include HTML
|
11
|
+
|
12
|
+
# You can set physical tags inline using block syntax...
|
13
|
+
table = Table.new do
|
14
|
+
align 'left'
|
15
|
+
bgcolor 'red'
|
16
|
+
header [['header1', 'header2']]
|
17
|
+
content [['foo', 'bar']]
|
18
|
+
content [['baz', 'blah']] do
|
19
|
+
underline true
|
20
|
+
tt true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Or you can do it this way
|
25
|
+
table[1][0].content.bold = true
|
26
|
+
table[1][1].content.italic = true
|
27
|
+
|
28
|
+
puts table.html
|
29
|
+
|
30
|
+
=begin
|
31
|
+
### OUTPUT ###
|
32
|
+
<table align='left' bgcolor='red'>
|
33
|
+
<tr>
|
34
|
+
<th>header1</th>
|
35
|
+
<th>header2</th>
|
36
|
+
</tr>
|
37
|
+
<tr>
|
38
|
+
<td><b>foo</b></td>
|
39
|
+
<td><i>bar</i></td>
|
40
|
+
</tr>
|
41
|
+
<tr>
|
42
|
+
<td><tt><u>baz</u></tt></td>
|
43
|
+
<td><tt><u>blah</u></tt></td>
|
44
|
+
</tr>
|
45
|
+
</table>
|
46
|
+
=end
|
data/examples/simple1.rb
CHANGED
@@ -1,39 +1,39 @@
|
|
1
|
-
#######################################################################
|
2
|
-
# simple1.rb
|
3
|
-
#
|
4
|
-
# Very plain HTML Table with rows and data implicitly created.
|
5
|
-
#
|
6
|
-
# You can run this example via the "example:sample1" rake task.
|
7
|
-
#######################################################################
|
8
|
-
require 'html/table'
|
9
|
-
include HTML
|
10
|
-
|
11
|
-
table = Table.new{ |t|
|
12
|
-
t.content = [
|
13
|
-
%w/foo bar baz/,
|
14
|
-
%w/1 2 3/,
|
15
|
-
%w/hello world/
|
16
|
-
]
|
17
|
-
}
|
18
|
-
|
19
|
-
puts table.html
|
20
|
-
|
21
|
-
=begin
|
22
|
-
### OUTPUT ###
|
23
|
-
<table>
|
24
|
-
<tr>
|
25
|
-
<td>foo</td>
|
26
|
-
<td>bar</td>
|
27
|
-
<td>baz</td>
|
28
|
-
</tr>
|
29
|
-
<tr>
|
30
|
-
<td>1</td>
|
31
|
-
<td>2</td>
|
32
|
-
<td>3</td>
|
33
|
-
</tr>
|
34
|
-
<tr>
|
35
|
-
<td>hello</td>
|
36
|
-
<td>world</td>
|
37
|
-
</tr>
|
38
|
-
</table>
|
39
|
-
=end
|
1
|
+
#######################################################################
|
2
|
+
# simple1.rb
|
3
|
+
#
|
4
|
+
# Very plain HTML Table with rows and data implicitly created.
|
5
|
+
#
|
6
|
+
# You can run this example via the "example:sample1" rake task.
|
7
|
+
#######################################################################
|
8
|
+
require 'html/table'
|
9
|
+
include HTML
|
10
|
+
|
11
|
+
table = Table.new{ |t|
|
12
|
+
t.content = [
|
13
|
+
%w/foo bar baz/,
|
14
|
+
%w/1 2 3/,
|
15
|
+
%w/hello world/
|
16
|
+
]
|
17
|
+
}
|
18
|
+
|
19
|
+
puts table.html
|
20
|
+
|
21
|
+
=begin
|
22
|
+
### OUTPUT ###
|
23
|
+
<table>
|
24
|
+
<tr>
|
25
|
+
<td>foo</td>
|
26
|
+
<td>bar</td>
|
27
|
+
<td>baz</td>
|
28
|
+
</tr>
|
29
|
+
<tr>
|
30
|
+
<td>1</td>
|
31
|
+
<td>2</td>
|
32
|
+
<td>3</td>
|
33
|
+
</tr>
|
34
|
+
<tr>
|
35
|
+
<td>hello</td>
|
36
|
+
<td>world</td>
|
37
|
+
</tr>
|
38
|
+
</table>
|
39
|
+
=end
|
data/examples/simple2.rb
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
#######################################################################
|
2
|
-
# simple2.rb
|
3
|
-
#
|
4
|
-
# Very plain HTML Table with rows explicitly created and data
|
5
|
-
# elements implicitly created. We also remove the end tags
|
6
|
-
# and capitalize the HTML tags and attributes.
|
7
|
-
#
|
8
|
-
# You can run this sample via the "example:simple2" rake task.
|
9
|
-
#######################################################################
|
10
|
-
require 'html/table'
|
11
|
-
include HTML
|
12
|
-
|
13
|
-
Table.html_case = "upper"
|
14
|
-
Table::Row.end_tags = false
|
15
|
-
Table::Row::Data.end_tags = false
|
16
|
-
|
17
|
-
table = Table.new
|
18
|
-
tr1 = Table::Row.new
|
19
|
-
tr2 = Table::Row.new
|
20
|
-
tr3 = Table::Row.new
|
21
|
-
|
22
|
-
tr1.content = "foo", "bar", "baz"
|
23
|
-
tr2.content = 1,2,3
|
24
|
-
tr3.content = %w/hello world/
|
25
|
-
|
26
|
-
table.push(tr1,tr2,tr3)
|
27
|
-
|
28
|
-
table[0][1].align = "left"
|
29
|
-
|
30
|
-
puts table.html
|
31
|
-
|
32
|
-
=begin
|
33
|
-
### OUTPUT ###
|
34
|
-
<TABLE>
|
35
|
-
<TR>
|
36
|
-
<TD>foo
|
37
|
-
<TD ALIGN='LEFT'>bar
|
38
|
-
<TD>baz
|
39
|
-
<TR>
|
40
|
-
<TD>1
|
41
|
-
<TD>2
|
42
|
-
<TD>3
|
43
|
-
<TR>
|
44
|
-
<TD>hello
|
45
|
-
<TD>world
|
46
|
-
</TABLE>
|
47
|
-
=end
|
1
|
+
#######################################################################
|
2
|
+
# simple2.rb
|
3
|
+
#
|
4
|
+
# Very plain HTML Table with rows explicitly created and data
|
5
|
+
# elements implicitly created. We also remove the end tags
|
6
|
+
# and capitalize the HTML tags and attributes.
|
7
|
+
#
|
8
|
+
# You can run this sample via the "example:simple2" rake task.
|
9
|
+
#######################################################################
|
10
|
+
require 'html/table'
|
11
|
+
include HTML
|
12
|
+
|
13
|
+
Table.html_case = "upper"
|
14
|
+
Table::Row.end_tags = false
|
15
|
+
Table::Row::Data.end_tags = false
|
16
|
+
|
17
|
+
table = Table.new
|
18
|
+
tr1 = Table::Row.new
|
19
|
+
tr2 = Table::Row.new
|
20
|
+
tr3 = Table::Row.new
|
21
|
+
|
22
|
+
tr1.content = "foo", "bar", "baz"
|
23
|
+
tr2.content = 1,2,3
|
24
|
+
tr3.content = %w/hello world/
|
25
|
+
|
26
|
+
table.push(tr1,tr2,tr3)
|
27
|
+
|
28
|
+
table[0][1].align = "left"
|
29
|
+
|
30
|
+
puts table.html
|
31
|
+
|
32
|
+
=begin
|
33
|
+
### OUTPUT ###
|
34
|
+
<TABLE>
|
35
|
+
<TR>
|
36
|
+
<TD>foo
|
37
|
+
<TD ALIGN='LEFT'>bar
|
38
|
+
<TD>baz
|
39
|
+
<TR>
|
40
|
+
<TD>1
|
41
|
+
<TD>2
|
42
|
+
<TD>3
|
43
|
+
<TR>
|
44
|
+
<TD>hello
|
45
|
+
<TD>world
|
46
|
+
</TABLE>
|
47
|
+
=end
|