From 139d418d4b1abe740cd889dbc3f5770fe97f2684 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Thu, 23 Jun 2016 10:00:33 -0700 Subject: Markdown writer: use raw HTML for simple, pipe tables with linebreaks. Markdown line breaks involve a newline, and simple and pipe tables can't contain one. Closes #2993. --- src/Text/Pandoc/Writers/Markdown.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index ce993093c..1ff8d2ab9 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -39,6 +39,7 @@ import Text.Pandoc.Writers.Shared import Text.Pandoc.Options import Text.Pandoc.Parsing hiding (blankline, blanklines, char, space) import Data.Maybe (fromMaybe) +import Data.Monoid (Any(..)) import Data.List ( group, stripPrefix, find, intersperse, transpose, sortBy ) import Data.Char ( isSpace, isPunctuation, ord, chr ) import Data.Ord ( comparing ) @@ -436,7 +437,10 @@ blockToMarkdown opts t@(Table caption aligns widths headers rows) = do else blankline <> ": " <> caption' <> blankline rawHeaders <- mapM (blockListToMarkdown opts) headers rawRows <- mapM (mapM (blockListToMarkdown opts)) rows - let isSimple = all (==0) widths + let isLineBreak LineBreak = Any True + isLineBreak _ = Any False + let isSimple = all (==0) widths && + not ( getAny (query isLineBreak (headers:rows)) ) let isPlainBlock (Plain _) = True isPlainBlock _ = False let hasBlocks = not (all isPlainBlock $ concat . concat $ headers:rows) -- cgit v1.2.3