From d4fa38a0a5b3d1796d959a5480e591539abad7a8 Mon Sep 17 00:00:00 2001 From: Zihang Chen Date: Tue, 13 Aug 2019 16:37:41 -0700 Subject: Fix multiline table for XWiki writer (#5683) Details at https://groups.google.com/forum/#!topic/pandoc-discuss/c861tTdCFTg Fix XWiki output for ``` +----------+----------+ | Col A | Col B | +==========+==========+ | Row A | * Item A | | | * Item B | +----------+----------+ ``` from (notice that the following XWiki code renders as a table followed by a singleton list) ``` |=Col A|=Col B |Row A|*. Item A *. Item B ``` to ``` |=Col A|=Col B |Row A|(((*. Item A *. Item B ))) ``` --- src/Text/Pandoc/Writers/XWiki.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Text/Pandoc/Writers/XWiki.hs b/src/Text/Pandoc/Writers/XWiki.hs index ce0f83b61..e6cd0b086 100644 --- a/src/Text/Pandoc/Writers/XWiki.hs +++ b/src/Text/Pandoc/Writers/XWiki.hs @@ -139,9 +139,11 @@ formRow row = do tableCellXWiki :: PandocMonad m => Bool -> [Block] -> XWikiReader m Text tableCellXWiki isHeader cell = do contents <- blockListToXWiki cell + let isMultiline = (length . split (== '\n')) contents > 1 + let contents' = intercalate contents $ if isMultiline then [pack "(((", pack ")))"] else [mempty, mempty] let cellBorder = if isHeader then "|=" else "|" - return $ cellBorder <> contents - + return $ cellBorder <> contents' + inlineListToXWiki :: PandocMonad m => [Inline] -> XWikiReader m Text inlineListToXWiki lst = -- cgit v1.2.3