You are here: Home > Latest news from Darcs > Imports changes from Mediacloth revision r126

Revision 20080618152338-9043f-05838a...

Imports changes from Mediacloth revision r126

Avoids empty paragraphs after tables

vendor/mediacloth-trunk/lib/mediacloth/mediawikilexer.rb
vendor/mediacloth-trunk/test/data/html10
vendor/mediacloth-trunk/test/data/lex10

Changes to mediawikilexer.rb

335
    if @heading.length <= heading.length 
    if @heading.length <= heading.length 
335
336
      end_span(:SECTION, heading)
      end_span(:SECTION, heading)
336
337
      @lexer_table.pop
      @lexer_table.pop
337
338
      if @text[@cursor, 2] == "\r\n"
      skip_newline
338
339
        @cursor += 2
 
340
      elsif @text[@cursor, 1] == "\n"
 
341
        @cursor += 1
 
342
      end
 
343
    else
    else
339
344
      @pending << heading
      @pending << heading
340
345
    end
    end
341
268 more lines
614
        end_span(:TABLE, "|}")
        end_span(:TABLE, "|}")
610
615
        @cursor += 1
        @cursor += 1
611
616
        @lexer_table.pop
        @lexer_table.pop
612
 
        skip_newline
613
617
      else
      else
614
618
        if context.include? :CELL
        if context.include? :CELL
615
619
          end_span(:CELL)
          end_span(:CELL)
616
109 more lines
729
    @cursor += 1 while @text[@cursor, 1] == ' '
    @cursor += 1 while @text[@cursor, 1] == ' '
726
730
  end
  end
727
731
  
  
728
 
  # Advances the text cursor beyond the next newline sequence, if any. This is 
729
 
  # used to strip newlines after certain block-level elements, like section
730
 
  # headings and tables, to prevent an empty paragraph when the block is followed
731
 
  # by an extra newline sequence.
732
 
  def skip_newline
733
 
    if @text[@cursor, 2] == "\r\n"
734
 
      @cursor += 2
735
 
    elsif @text[@cursor, 1] == "\n"
736
 
      @cursor += 1
737
 
    end
738
 
  end
739
 
  
740
732
  # Extracts from the input text the sequence of characters consisting of the
  # Extracts from the input text the sequence of characters consisting of the
741
733
  # character or characters specified, and returns the sequence as a string. The
  # character or characters specified, and returns the sequence as a string. The
742
734
  # text cursor is advanaced to point to the next character after the sequence.
  # text cursor is advanaced to point to the next character after the sequence.
743

Changes to html10

1
<p>Some examples of tables.
<p>Some examples of tables.
1
2
2
3
</p><table></table>
</p><table></table>
3
4
<p><br />
<table><tr></tr>
4
5
 
6
</p><table><tr></tr>
 
7
</table>
</table>
5
8
<p><br />
<table><tr><td> a
6
9
 
10
</p><table><tr><td> a
 
11
</td><td> b
</td><td> b
7
12
</td></tr>
</td></tr>
8
13
</table>
</table>
9
14
<p><br />
<table><tr><td> a
10
15
 
16
</p><table><tr><td> a
 
17
</td><td> b
</td><td> b
11
18
</td></tr>
</td></tr>
12
19
<tr><td> 1
<tr><td> 1
13
20
</td><td> 2
</td><td> 2
14
21
</td></tr>
</td></tr>
15
22
</table>
</table>
16
23
<p><br />
<table><tr><td> a </td><td> b
17
24
 
25
</p><table><tr><td> a </td><td> b
 
26
</td></tr>
</td></tr>
18
27
<tr><td> 1 </td><td> 2
<tr><td> 1 </td><td> 2
19
28
</td></tr>
</td></tr>
20
29
</table>
</table>
21
30
<p><br />
<table><tr><th> a
22
31
 
32
</p><table><tr><th> a
 
33
</th><th> b
</th><th> b
23
34
</th></tr>
</th></tr>
24
35
<tr><td> 1
<tr><td> 1
25
36
</td><td> 2
</td><td> 2
26
37
</td></tr>
</td></tr>
27
38
</table>
</table>
28
39
<p><br />
<table><tr><th> a </th><th> b
29
40
 
41
</p><table><tr><th> a </th><th> b
 
42
</th></tr>
</th></tr>
30
43
<tr><td> 1 </td><td> 2
<tr><td> 1 </td><td> 2
31
44
</td></tr>
</td></tr>
32
45
</table>
</table>
33
46
<p><br />
<table><tr><td> a
34
47
 
48
</p><table><tr><td> a
 
49
</td></tr>
</td></tr>
35
50
<tr><td> 1
<tr><td> 1
36
51
</td><td> 2
</td><td> 2
37
52
</td></tr>
</td></tr>
38
53
</table>
</table>
39
54
<p><br />
<table><tr><td> a
40
55
 
56
</p><table><tr><td> a
 
57
</td><td> b
</td><td> b
41
58
</td></tr>
</td></tr>
42
59
<tr><td> 1
<tr><td> 1
43
60
</td></tr>
</td></tr>
44
61
</table>
</table>
45
62
<p><br />
<table><tr><td> a
46
63
 
64
</p><table><tr><td> a
 
65
</td><td> b
</td><td> b
47
66
</td></tr>
</td></tr>
48
67
<tr><td></td><td> 2
<tr><td></td><td> 2
49
68
</td></tr>
</td></tr>
50
69
</table>
</table>
51
70
<p><br />
<table><tr><td> <a href="http://example.com">Example</a></td><td> <b>bold</b></td></tr>
52
71
 
72
</p><table><tr><td> <a href="http://example.com">Example</a></td><td> <b>bold</b></td></tr>
 
73
<tr><td> <a href="javascript:void(0)">Example</a></td><td> <a href="javascript:void(0)">image:example.jpg(1, 2, 3)</a></td></tr>
<tr><td> <a href="javascript:void(0)">Example</a></td><td> <a href="javascript:void(0)">image:example.jpg(1, 2, 3)</a></td></tr>
53
74
</table>
</table>
54
75
<p><br />
<table><tr><td> <a href="http://example.com">Example</a></td><td> <b>bold
55
76
 
77
</p><table><tr><td> <a href="http://example.com">Example</a></td><td> <b>bold
 
78
</b></td></tr>
</b></td></tr>
56
79
<tr><td> <a href="javascript:void(0)">Example</a></td><td> <b>bold <i>italic
<tr><td> <a href="javascript:void(0)">Example</a></td><td> <b>bold <i>italic
57
80
</i></b></td></tr>
</i></b></td></tr>
58
81
</table>
</table>
59
82
<p><br />
<table><tr><td> a
60
83
 
84
</p><table><tr><td> a
 
85
</td><td> b
</td><td> b
61
86
</td></tr>
</td></tr>
62
87
<tr><td> A list in a cell:
<tr><td> A list in a cell:
63
1 more lines
89
</li><li> two
</li><li> two
65
90
</li></ul></td></tr>
</li></ul></td></tr>
66
91
</table>
</table>
67
92
<p><br />
<table><tr><td> a
68
93
 
94
</p><table><tr><td> a
 
95
</td><td> b
</td><td> b
69
96
</td></tr>
</td></tr>
70
97
<tr><td> A table in a cell:
<tr><td> A table in a cell:
71
17 more lines
115
</table>
</table>
89
116
<p><br />
<p><br />
90
117
91
118
</p><p>
</p><p>Text before
92
119
Text before
 
120
</p><table><tr><td> a
</p><table><tr><td> a
93
121
</td><td> b
</td><td> b
94
122
</td></tr>
</td></tr>
95
123
</table>
</table>
96
124
<p><br />
<p>
97
125
Text before with <i>italic
98
126
</p><p>Text before with <i>italic
 
127
</i></p><table><tr><td> a
</i></p><table><tr><td> a
99
128
</td><td> b
</td><td> b
100
129
</td></tr>
</td></tr>
101

Changes to lex10

1
PARA_STARTTEXTSome examples of tables.
PARA_STARTTEXTSome examples of tables.
1
2
2
3
PARA_ENDTABLE_START{|TABLE_END|}PARA_STARTTEXT
PARA_ENDTABLE_START{|TABLE_END|}TABLE_START{|ROW_START|-ROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT a
3
4
 
5
PARA_ENDTABLE_START{|ROW_START|-ROW_ENDTABLE_END|}PARA_STARTTEXT
 
6
 
7
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
 
8
CELL_ENDCELL_START|TEXT b
CELL_ENDCELL_START|TEXT b
4
9
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT a
5
10
 
11
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
 
12
CELL_ENDCELL_START|TEXT b
CELL_ENDCELL_START|TEXT b
6
13
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT 1
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT 1
7
14
CELL_ENDCELL_START|TEXT 2
CELL_ENDCELL_START|TEXT 2
8
15
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT a CELL_ENDCELL_START||TEXT b
9
16
 
17
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a CELL_ENDCELL_START||TEXT b
 
18
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT 1 CELL_ENDCELL_START||TEXT 2
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT 1 CELL_ENDCELL_START||TEXT 2
10
19
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTHEAD_START!TEXT a
11
20
 
21
PARA_ENDTABLE_START{|ROW_STARTHEAD_START!TEXT a
 
22
HEAD_ENDHEAD_START!TEXT b
HEAD_ENDHEAD_START!TEXT b
12
23
HEAD_ENDROW_ENDROW_START|-CELL_START|TEXT 1
HEAD_ENDROW_ENDROW_START|-CELL_START|TEXT 1
13
24
CELL_ENDCELL_START|TEXT 2
CELL_ENDCELL_START|TEXT 2
14
25
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTHEAD_START!TEXT a HEAD_ENDHEAD_START||TEXT b
15
26
 
27
PARA_ENDTABLE_START{|ROW_STARTHEAD_START!TEXT a HEAD_ENDHEAD_START||TEXT b
 
28
HEAD_ENDROW_ENDROW_START|-CELL_START|TEXT 1 CELL_ENDCELL_START||TEXT 2
HEAD_ENDROW_ENDROW_START|-CELL_START|TEXT 1 CELL_ENDCELL_START||TEXT 2
16
29
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT a
17
30
 
31
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
 
32
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT 1
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT 1
18
33
CELL_ENDCELL_START|TEXT 2
CELL_ENDCELL_START|TEXT 2
19
34
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT a
20
35
 
36
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
 
37
CELL_ENDCELL_START|TEXT b
CELL_ENDCELL_START|TEXT b
21
38
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT 1
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT 1
22
39
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT a
23
40
 
41
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
 
42
CELL_ENDCELL_START|TEXT b
CELL_ENDCELL_START|TEXT b
24
43
CELL_ENDROW_ENDROW_START|-CELL_START|CELL_ENDCELL_START|TEXT 2
CELL_ENDROW_ENDROW_START|-CELL_START|CELL_ENDCELL_START|TEXT 2
25
44
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT LINK_START[TEXThttp://example.comLINKSEP TEXTExampleLINK_END]CELL_ENDCELL_START|TEXT BOLD_START'''TEXTboldBOLD_END'''CELL_ENDROW_ENDROW_START|-CELL_START|TEXT INTLINK_START[[TEXTexampleINTLINKSEP|TEXTExampleINTLINK_END]]CELL_ENDCELL_START|TEXT INTLINK_START[[TEXTimageRESOURCESEP:TEXTexample.jpgINTLINKSEP|TEXT1INTLINKSEP|TEXT2INTLINKSEP|TEXT3INTLINK_END]]CELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT LINK_START[TEXThttp://example.comLINKSEP TEXTExampleLINK_ENDCELL_ENDCELL_START|TEXT BOLD_START'''TEXTbold
26
45
 
46
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT LINK_START[TEXThttp://example.comLINKSEP TEXTExampleLINK_END]CELL_ENDCELL_START|TEXT BOLD_START'''TEXTboldBOLD_END'''CELL_ENDROW_ENDROW_START|-CELL_START|TEXT INTLINK_START[[TEXTexampleINTLINKSEP|TEXTExampleINTLINK_END]]CELL_ENDCELL_START|TEXT INTLINK_START[[TEXTimageRESOURCESEP:TEXTexample.jpgINTLINKSEP|TEXT1INTLINKSEP|TEXT2INTLINKSEP|TEXT3INTLINK_END]]CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
 
47
 
48
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT LINK_START[TEXThttp://example.comLINKSEP TEXTExampleLINK_ENDCELL_ENDCELL_START|TEXT BOLD_START'''TEXTbold
 
49
BOLD_ENDCELL_ENDROW_ENDROW_START|-CELL_START|TEXT INTLINK_START[[TEXTexampleINTLINKSEP|TEXTExampleINTLINK_ENDCELL_ENDCELL_START|TEXT BOLD_START'''TEXTbold ITALIC_START''TEXTitalic
BOLD_ENDCELL_ENDROW_ENDROW_START|-CELL_START|TEXT INTLINK_START[[TEXTexampleINTLINKSEP|TEXTExampleINTLINK_ENDCELL_ENDCELL_START|TEXT BOLD_START'''TEXTbold ITALIC_START''TEXTitalic
27
50
ITALIC_ENDBOLD_ENDCELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
ITALIC_ENDBOLD_ENDCELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT a
28
51
 
52
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
 
53
CELL_ENDCELL_START|TEXT b
CELL_ENDCELL_START|TEXT b
29
54
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT A list in a cell:
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT A list in a cell:
30
55
UL_STARTLI_STARTTEXT one
UL_STARTLI_STARTTEXT one
31
56
LI_ENDLI_STARTTEXT two
LI_ENDLI_STARTTEXT two
32
57
LI_ENDUL_ENDCELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
LI_ENDUL_ENDCELL_ENDROW_ENDTABLE_END|}TABLE_START{|ROW_STARTCELL_START|TEXT a
33
58
 
59
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
 
60
CELL_ENDCELL_START|TEXT b
CELL_ENDCELL_START|TEXT b
34
61
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT A table in a cell:
CELL_ENDROW_ENDROW_START|-CELL_START|TEXT A table in a cell:
35
62
TABLE_START{|ROW_STARTCELL_START|TEXT 1
TABLE_START{|ROW_STARTCELL_START|TEXT 1
36
10 more lines
73
CELL_ENDCELL_START|TEXT 2
CELL_ENDCELL_START|TEXT 2
47
74
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
48
75
49
76
PARA_ENDPARA_STARTTEXT
PARA_ENDPARA_STARTTEXTText before
50
77
Text before
 
78
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
PARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
51
79
CELL_ENDCELL_START|TEXT b
CELL_ENDCELL_START|TEXT b
52
80
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
CELL_ENDROW_ENDTABLE_END|}PARA_STARTTEXT
53
81
Text before with ITALIC_START''TEXTitalic
54
82
PARA_ENDPARA_STARTTEXTText before with ITALIC_START''TEXTitalic
 
83
ITALIC_ENDPARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
ITALIC_ENDPARA_ENDTABLE_START{|ROW_STARTCELL_START|TEXT a
55
84
CELL_ENDCELL_START|TEXT b
CELL_ENDCELL_START|TEXT b
56
85
CELL_ENDROW_ENDTABLE_END|}falsefalse
CELL_ENDROW_ENDTABLE_END|}falsefalse
57