summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers/Markdown.hs
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-08-13 09:52:37 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2017-08-13 10:37:24 -0700
commit506866ef7368ed1cae9236bfd8323fde64eeb154 (patch)
tree485ef4358898a37e5d290407f2212a2bbc3aee75 /src/Text/Pandoc/Writers/Markdown.hs
parent39066eba1d4068f59c150e0516c9c18d86309eed (diff)
Markdown writer: Use pipe tables if `raw_html` disabled...
and `pipe_tables` enabled, even if the table has relative width information. Closes #3734.
Diffstat (limited to 'src/Text/Pandoc/Writers/Markdown.hs')
-rw-r--r--src/Text/Pandoc/Writers/Markdown.hs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs
index 837c177f1..95977ce17 100644
--- a/src/Text/Pandoc/Writers/Markdown.hs
+++ b/src/Text/Pandoc/Writers/Markdown.hs
@@ -553,8 +553,13 @@ blockToMarkdown' opts t@(Table caption aligns widths headers rows) = do
else blankline $$ (": " <> caption') $$ blankline
let isLineBreak LineBreak = Any True
isLineBreak _ = Any False
- let isSimple = all (==0) widths &&
- not ( getAny (query isLineBreak (headers:rows)) )
+ let hasLineBreak = getAny . query isLineBreak
+ let isSimpleCell [Plain ils] = not (hasLineBreak ils)
+ isSimpleCell [Para ils ] = not (hasLineBreak ils)
+ isSimpleCell [] = True
+ isSimpleCell _ = False
+ let hasSimpleCells = all isSimpleCell (concat (headers:rows))
+ let isSimple = hasSimpleCells && all (==0) widths
let isPlainBlock (Plain _) = True
isPlainBlock _ = False
let hasBlocks = not (all isPlainBlock $ concat . concat $ headers:rows)
@@ -589,6 +594,9 @@ blockToMarkdown' opts t@(Table caption aligns widths headers rows) = do
| isEnabled Ext_raw_html opts -> fmap (id,) $
(text . T.unpack) <$>
(writeHtml5String def $ Pandoc nullMeta [t])
+ | hasSimpleCells &&
+ isEnabled Ext_pipe_tables opts -> fmap (id,) $
+ pipeTable (all null headers) aligns' rawHeaders rawRows
| otherwise -> return $ (id, text "[TABLE]")
return $ nst $ tbl $$ caption'' $$ blankline
blockToMarkdown' opts (BulletList items) = do