summaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Writers/Docx.hs2
-rw-r--r--src/Text/Pandoc/Writers/Docx/Table.hs23
2 files changed, 14 insertions, 11 deletions
diff --git a/src/Text/Pandoc/Writers/Docx.hs b/src/Text/Pandoc/Writers/Docx.hs
index 989518004..1a2cc79a4 100644
--- a/src/Text/Pandoc/Writers/Docx.hs
+++ b/src/Text/Pandoc/Writers/Docx.hs
@@ -1074,7 +1074,7 @@ toFigureTable opts blks = do
[]
)
: mknode "w:tblGrid" [] gridCols
- : [tblBody]
+ : (maybeToList tblBody)
)
modify $ \s -> s { stInTable = False }
return $ Elem tbl
diff --git a/src/Text/Pandoc/Writers/Docx/Table.hs b/src/Text/Pandoc/Writers/Docx/Table.hs
index 70a2f66ed..d80426da3 100644
--- a/src/Text/Pandoc/Writers/Docx/Table.hs
+++ b/src/Text/Pandoc/Writers/Docx/Table.hs
@@ -22,6 +22,7 @@ import Control.Monad ( unless , zipWithM )
import Control.Monad.Except ( throwError )
import Data.Array ( elems, (!), assocs, indices )
import Data.Text (Text)
+import Data.Maybe (catMaybes)
import Text.Pandoc.Definition
( ColSpec,
Caption(Caption),
@@ -189,7 +190,7 @@ cellGridToOpenXML blocksToOpenXML rowType aligns part@(Part _ cellArray _) =
if null (elems cellArray)
then return mempty
else partToRows rowType aligns part >>=
- mapM (rowToOpenXML blocksToOpenXML)
+ fmap catMaybes . mapM (rowToOpenXML blocksToOpenXML)
data OOXMLCell
= OOXMLCell Attr Alignment RowSpan ColSpan [Block]
@@ -228,15 +229,17 @@ partToRows rowType aligns part = do
rowToOpenXML :: PandocMonad m
=> ([Block] -> WS m [Content])
-> OOXMLRow
- -> WS m Element
-rowToOpenXML blocksToOpenXML (OOXMLRow rowType _attr cells) = do
- xmlcells <- mapM (ooxmlCellToOpenXML blocksToOpenXML) cells
- let addTrPr = case rowType of
- HeadRow -> (mknode "w:trPr" []
- [mknode "w:tblHeader" [("w:val", "true")] ()] :)
- BodyRow -> id
- FootRow -> id
- return $ mknode "w:tr" [] (addTrPr xmlcells)
+ -> WS m (Maybe Element)
+rowToOpenXML blocksToOpenXML (OOXMLRow rowType _attr cells)
+ | null cells = return Nothing
+ | otherwise = do
+ xmlcells <- mapM (ooxmlCellToOpenXML blocksToOpenXML) cells
+ let addTrPr = case rowType of
+ HeadRow -> (mknode "w:trPr" []
+ [mknode "w:tblHeader" [("w:val", "true")] ()] :)
+ BodyRow -> id
+ FootRow -> id
+ return $ Just $ mknode "w:tr" [] (addTrPr xmlcells)
ooxmlCellToOpenXML :: PandocMonad m
=> ([Block] -> WS m [Content])