git.iko.soy/typeable/pandoc
on master help sign in
RST reader: fix csv tables with multiline cells.

Closes #6549.

commit942e3ee1f9ce3593b3ce3cc32c7ed7039aee205a authorJohn MacFarlane <jgm@berkeley.edu> dateTue 21 Jul 2020, 10:20 (6 years ago) parentfe315a8
4 files changed+37−1
pandoc.cabal+1 src/Text/Pandoc/Readers/RST.hs+6−1 test/command/01.csv+4 test/command/6549.md+26
pandoc.cabal+1
@@ -205,6 +205,7 @@ extra-source-files:
205205 test/command/B.txt
206206 test/command/C.txt
207207 test/command/D.txt
208+ test/command/01.csv
208209 test/command/defaults1.yaml
209210 test/command/defaults2.yaml
210211 test/command/3533-rst-csv-tables.csv
src/Text/Pandoc/Readers/RST.hs+6−1
@@ -879,7 +879,12 @@ csvTableDirective top fields rawcsv = do
879879 Left e ->
880880 throwError $ PandocParsecError "csv table" e
881881 Right rawrows -> do
882− let parseCell = parseFromString' (plain <|> return mempty)
882+ let singleParaToPlain bs =
883+ case B.toList bs of
884+ [Para ils] -> B.fromList [Plain ils]
885+ _ -> bs
886+ let parseCell t = singleParaToPlain
887+ <$> parseFromString' parseBlocks (t <> "\n\n")
883888 let parseRow = mapM parseCell
884889 rows <- mapM parseRow rawrows
885890 let (headerRow,bodyRows,numOfCols) =
test/command/01.csvnew file+4
@@ -0,0 +1,4 @@
1+"Column1";"Column2"
2+"Data1";"- data1
3+
4+- data2"
test/command/6549.mdnew file+26
@@ -0,0 +1,26 @@
1+```
2+% pandoc -f rst
3+.. csv-table:: Test table
4+ :file: command/01.csv
5+ :delim: ;
6+ :header-rows: 1
7+^D
8+<table>
9+<caption>Test table</caption>
10+<thead>
11+<tr class="header">
12+<th>Column1</th>
13+<th>Column2</th>
14+</tr>
15+</thead>
16+<tbody>
17+<tr class="odd">
18+<td>Data1</td>
19+<td><ul>
20+<li>data1</li>
21+<li>data2</li>
22+</ul></td>
23+</tr>
24+</tbody>
25+</table>
26+```