diff options
author | John MacFarlane <jgm@berkeley.edu> | 2016-06-23 10:00:33 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2016-06-23 10:00:33 -0700 |
commit | 139d418d4b1abe740cd889dbc3f5770fe97f2684 (patch) | |
tree | fb14b3a8952e34cfdc4d3cdd569c2a3fd04261b1 /src | |
parent | 5fac8266d8f09f9be63531ba511a1c8d8ce86240 (diff) | |
download | pandoc-139d418d4b1abe740cd889dbc3f5770fe97f2684.tar.gz |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/Text/Pandoc/Writers/Markdown.hs | 6 |
1 files changed, 5 insertions, 1 deletions
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) |