aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2018-11-16 11:29:15 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2018-11-16 11:29:15 -0800
commitd532eb14ebaca9e6255b428d40e22284a8a981d2 (patch)
tree89a76ac323ce73aeb0f088379e76eaf378f74bd3
parente61f63253130480c43d8bb4f4531e83d0384daf5 (diff)
downloadpandoc-d532eb14ebaca9e6255b428d40e22284a8a981d2.tar.gz
HTML reader: allow tfoot before body rows.
Closes #5079.
-rw-r--r--src/Text/Pandoc/Readers/HTML.hs5
-rw-r--r--test/command/5079.md16
2 files changed, 19 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs
index 2ae79bebd..b668641c8 100644
--- a/src/Text/Pandoc/Readers/HTML.hs
+++ b/src/Text/Pandoc/Readers/HTML.hs
@@ -501,10 +501,11 @@ pTable = try $ do
head' <- map snd <$>
pInTag True "tbody"
(if null head'' then pTh else return head'')
+ topfoot <- option [] $ pInTag False "tfoot" $ many pTr
rowsLs <- many pTBody
- rows' <- pInTag True "tfoot" $ many pTr
+ bottomfoot <- option [] $ pInTag False "tfoot" $ many pTr
TagClose _ <- pSatisfy (matchTagClose "table")
- let rows'' = concat rowsLs <> rows'
+ let rows'' = concat rowsLs <> topfoot <> bottomfoot
let rows''' = map (map snd) rows''
-- let rows''' = map (map snd) rows''
-- fail on empty table
diff --git a/test/command/5079.md b/test/command/5079.md
new file mode 100644
index 000000000..aa93ae6f3
--- /dev/null
+++ b/test/command/5079.md
@@ -0,0 +1,16 @@
+```
+% pandoc -f html -t native
+<table>
+<tfoot>
+</tfoot>
+<tbody>
+<tr>
+<td>Cell</td>
+</tr>
+</tbody>
+</table>
+^D
+[Table [] [AlignDefault] [0.0]
+ [[]]
+ [[[Plain [Str "Cell"]]]]]
+```