git.iko.soy/typeable/pandoc
on master help sign in
MediaWiki reader: fixed more table issues.

Closes #2649.

commit5269724ad39dfbbd473ae559aa2fff9ba7e5ee3b authorJohn MacFarlane <jgm@berkeley.edu> dateTue 21 Feb 2017, 21:28 (10 years ago) parent1d06e8c
2 files changed+116−9
src/Text/Pandoc/Readers/MediaWiki.hs+7−9 test/command/2649.md+109
src/Text/Pandoc/Readers/MediaWiki.hs+7−9
@@ -219,7 +219,9 @@ para = do
219219table :: PandocMonad m => MWParser m Blocks
220220table = do
221221 tableStart
222− styles <- option [] parseAttrs <* blanklines
222+ styles <- option [] parseAttrs
223+ skipMany spaceChar
224+ optional blanklines
223225 let tableWidth = case lookup "width" styles of
224226 Just w -> fromMaybe 1.0 $ parseWidth w
225227 Nothing -> 1.0
@@ -267,14 +269,10 @@ rowsep = try $ guardColumnOne *> skipSpaces *> sym "|-" <*
267269 many (char '-') <* optional parseAttr <* blanklines
268270
269271cellsep :: PandocMonad m => MWParser m ()
270−cellsep = try $
271− (guardColumnOne *> skipSpaces <*
272− ( (char '|' <* notFollowedBy (oneOf "-}+"))
273− <|> (char '!')
274− )
275− )
276− <|> (() <$ try (string "||"))
277− <|> (() <$ try (string "!!"))
272+cellsep = try $ do
273+ skipSpaces
274+ (char '|' *> notFollowedBy (oneOf "-}+") *> optional (char '|'))
275+ <|> (char '!' *> optional (char '!'))
278276
279277tableCaption :: PandocMonad m => MWParser m Inlines
280278tableCaption = try $ do
test/command/2649.mdnew file+109
@@ -0,0 +1,109 @@
1+```
2+% pandoc -f mediawiki -t html5
3+{| class="wikitable" style="line-height: 1.0"
4+
5+|- bgcolor="#efefef"
6+|}
7+^D
8+<table>
9+<tbody>
10+<tr class="odd">
11+</tr>
12+</tbody>
13+</table>
14+```
15+
16+```
17+% pandoc -f mediawiki -t html5
18+{| border="4" cellspacing="2" cellpadding="0" WIDTH="100%"
19+|-----
20+| peildatum Simbase || november 2005 || '''uitslagen Flohrgambiet''' ||
21+|-----
22+| totaal aantal partijen Simbase || 7.316.773
23+| wit wint || 53%
24+|-----
25+| percentage (en partijen) Flohrgambiet
26+| 0.023 % (1.699) || zwart wint || 27%
27+|-----
28+| percentage Flohrgambiet in aug 2003
29+| 0.035 % || remise || 20%
30+|}
31+^D
32+<table>
33+<tbody>
34+<tr class="odd">
35+<td><p>peildatum Simbase</p></td>
36+<td><p>november 2005</p></td>
37+<td><p><strong>uitslagen Flohrgambiet</strong></p></td>
38+<td></td>
39+</tr>
40+<tr class="even">
41+<td><p>totaal aantal partijen Simbase</p></td>
42+<td><p>7.316.773</p></td>
43+<td><p>wit wint</p></td>
44+<td><p>53%</p></td>
45+</tr>
46+<tr class="odd">
47+<td><p>percentage (en partijen) Flohrgambiet</p></td>
48+<td><p>0.023 % (1.699)</p></td>
49+<td><p>zwart wint</p></td>
50+<td><p>27%</p></td>
51+</tr>
52+<tr class="even">
53+<td><p>percentage Flohrgambiet in aug 2003</p></td>
54+<td><p>0.035 %</p></td>
55+<td><p>remise</p></td>
56+<td><p>20%</p></td>
57+</tr>
58+</tbody>
59+</table>
60+```
61+
62+```
63+% pandoc -f mediawiki -t html5
64+{| class="wikitable" style="text-align:center; font-size:95%" valign="top" |
65+! Plaats
66+! Rijder
67+! Aantal
68+|-
69+| 1
70+|align=left| {{FR-VLAG}} [[Sébastien Loeb]] | 78
71+|-
72+| 2
73+|align=left| {{FR-VLAG}} '''[[Sébastien Ogier]]'''
74+| 38
75+|-
76+| 10
77+|align=left| {{FI-VLAG}} [[Hannu Mikkola]]
78+| 18
79+|}
80+^D
81+<table>
82+<tbody>
83+<tr class="odd">
84+<td></td>
85+<td><p>Plaats</p></td>
86+<td><p>Rijder</p></td>
87+<td><p>Aantal</p></td>
88+</tr>
89+<tr class="even">
90+<td><p>1</p></td>
91+<td>
92+<p><a href="Sébastien_Loeb" title="wikilink">Sébastien Loeb</a></p></td>
93+<td><p>78</p></td>
94+</tr>
95+<tr class="odd">
96+<td><p>2</p></td>
97+<td>
98+<p><strong><a href="Sébastien_Ogier" title="wikilink">Sébastien Ogier</a></strong></p></td>
99+<td><p>38</p></td>
100+</tr>
101+<tr class="even">
102+<td><p>10</p></td>
103+<td>
104+<p><a href="Hannu_Mikkola" title="wikilink">Hannu Mikkola</a></p></td>
105+<td><p>18</p></td>
106+</tr>
107+</tbody>
108+</table>
109+```