diff options
-rw-r--r-- | src/Text/Pandoc/Readers/Docx.hs | 20 | ||||
-rw-r--r-- | tests/docx/table_one_row.native | 4 | ||||
-rw-r--r-- | tests/docx/tables.native | 6 |
3 files changed, 18 insertions, 12 deletions
diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index c8a09248a..595c805bf 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -571,23 +571,25 @@ bodyPartToBlocks (Tbl cap _ look (r:rs)) = do True | null rs -> (Nothing, [r]) | otherwise -> (Just r, rs) False -> (Nothing, r:rs) + + cells <- mapM rowToBlocksList rows + + let width = case cells of + r':_ -> length r' + -- shouldn't happen + [] -> 0 + hdrCells <- case hdr of Just r' -> rowToBlocksList r' - Nothing -> return [] - - cells <- mapM rowToBlocksList rows + Nothing -> return $ replicate width mempty - let size = case null hdrCells of - True -> length $ head cells - False -> length $ hdrCells - -- -- The two following variables (horizontal column alignment and -- relative column widths) go to the default at the -- moment. Width information is in the TblGrid field of the Tbl, -- so should be possible. Alignment might be more difficult, -- since there doesn't seem to be a column entity in docx. - alignments = replicate size AlignDefault - widths = replicate size 0 :: [Double] + let alignments = replicate width AlignDefault + widths = replicate width 0 :: [Double] return $ table caption (zip alignments widths) hdrCells cells bodyPartToBlocks (OMathPara e) = do diff --git a/tests/docx/table_one_row.native b/tests/docx/table_one_row.native index bd1bf8145..1ea1b446c 100644 --- a/tests/docx/table_one_row.native +++ b/tests/docx/table_one_row.native @@ -1,5 +1,7 @@ [Table [] [AlignDefault,AlignDefault,AlignDefault] [0.0,0.0,0.0] - [] + [[] + ,[] + ,[]] [[[Plain [Str "One"]] ,[Plain [Str "Row"]] ,[Plain [Str "Table"]]]]] diff --git a/tests/docx/tables.native b/tests/docx/tables.native index cf23cf404..ae326950a 100644 --- a/tests/docx/tables.native +++ b/tests/docx/tables.native @@ -17,13 +17,15 @@ ,[Plain [Str "High"]] ,[Plain [Str "Tacky",Space,Str "uniform"]]]] ,Table [] [AlignDefault,AlignDefault] [0.0,0.0] - [] + [[] + ,[]] [[[Plain [Str "Sinple"]] ,[Plain [Str "Table"]]] ,[[Plain [Str "Without"]] ,[Plain [Str "Header"]]]] ,Table [] [AlignDefault,AlignDefault] [0.0,0.0] - [] + [[] + ,[]] [[[Para [Str "Simple"] ,Para [Str "Multiparagraph"]] ,[Para [Str "Table"] |