From e6ff7f79861d3088f8cba2b22d86d9f75db73f6a Mon Sep 17 00:00:00 2001 From: danse <f.occhipinti@gmail.com> Date: Mon, 12 Feb 2018 17:10:29 +0100 Subject: [PATCH] Docx reader: Pick table width from the longest row or header This change is intended to preserve as much of the table content as possible Closes #4360 --- src/Text/Pandoc/Readers/Docx.hs | 14 +++++++++----- test/Tests/Readers/Docx.hs | 4 ++++ test/docx/table_variable_width.docx | Bin 0 -> 10006 bytes test/docx/table_variable_width.native | 13 +++++++++++++ 4 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 test/docx/table_variable_width.docx create mode 100644 test/docx/table_variable_width.native diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index c24c43901..098759a61 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -642,7 +642,7 @@ bodyPartToBlocks (ListItem pPr _ _ _ parparts) = bodyPartToBlocks $ Paragraph pPr' parparts bodyPartToBlocks (Tbl _ _ _ []) = return $ para mempty -bodyPartToBlocks (Tbl cap _ look (r:rs)) = do +bodyPartToBlocks (Tbl cap _ look parts@(r:rs)) = do let caption = text cap (hdr, rows) = case firstRowFormatting look of True | null rs -> (Nothing, [r]) @@ -651,10 +651,14 @@ bodyPartToBlocks (Tbl cap _ look (r:rs)) = do cells <- mapM rowToBlocksList rows - let width = case cells of - r':_ -> length r' - -- shouldn't happen - [] -> 0 + let width = maybe 0 maximum $ nonEmpty $ map rowLength parts + -- Data.List.NonEmpty is not available with ghc 7.10 so we roll out + -- our own, see + -- https://github.com/jgm/pandoc/pull/4361#issuecomment-365416155 + nonEmpty [] = Nothing + nonEmpty l = Just l + rowLength :: Row -> Int + rowLength (Row c) = length c hdrCells <- case hdr of Just r' -> rowToBlocksList r' diff --git a/test/Tests/Readers/Docx.hs b/test/Tests/Readers/Docx.hs index 89a605bf7..9c9a8179b 100644 --- a/test/Tests/Readers/Docx.hs +++ b/test/Tests/Readers/Docx.hs @@ -272,6 +272,10 @@ tests = [ testGroup "inlines" "tables with one row" "docx/table_one_row.docx" "docx/table_one_row.native" + , testCompare + "tables with variable width" + "docx/table_variable_width.docx" + "docx/table_variable_width.native" , testCompare "code block" "docx/codeblock.docx" diff --git a/test/docx/table_variable_width.docx b/test/docx/table_variable_width.docx new file mode 100644 index 0000000000000000000000000000000000000000..89935796839c8e2713e479d29ab5dd185e35d0ab GIT binary patch literal 10006 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 literal 0 HcmV?d00001 diff --git a/test/docx/table_variable_width.native b/test/docx/table_variable_width.native new file mode 100644 index 000000000..9d3b961df --- /dev/null +++ b/test/docx/table_variable_width.native @@ -0,0 +1,13 @@ +[Table [] [AlignDefault,AlignDefault,AlignDefault,AlignDefault,AlignDefault] [0.0,0.0,0.0,0.0,0.0] + [[] + ,[] + ,[Plain [Str "h3"]] + ,[Plain [Str "h4"]] + ,[Plain [Str "h5"]]] + [[[Plain [Str "c11"]] + ,[] + ,[]] + ,[[] + ,[Plain [Str "c22"]] + ,[Plain [Str "c23"]] + ,[]]]]