From b754d4da68df4199da4dc7a562ee0b2dc5bc7718 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 12 May 2026 14:59:31 +0200 Subject: [PATCH] Docx reader: improve treatment of tblHeader element. If tblHeader exists but has `w:val="0"`, then don't consider the element a header. See #8299...but this change doesn't seem to fix things completely. --- src/Text/Pandoc/Readers/Docx/Parse.hs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs index ab8641c2e..2c9e029cf 100644 --- a/src/Text/Pandoc/Readers/Docx/Parse.hs +++ b/src/Text/Pandoc/Readers/Docx/Parse.hs @@ -764,9 +764,12 @@ elemToRow ns element | isElem ns "w" "tr" element = let cellElems = findChildrenByName ns "w" "tc" element let beforeCells = genericReplicate (fromMaybe 0 gridBefore) emptyCell cells <- mapD (elemToCell ns) cellElems - let hasTblHeader = maybe NoTblHeader (const HasTblHeader) - (properties - >>= findChildByName ns "w" "tblHeader") + let hasTblHeader = + case (properties >>= findChildByName ns "w" "tblHeader") of + Nothing -> NoTblHeader + Just he -> case findAttrByName ns "w" "val" he of + Just "0" -> NoTblHeader + _ -> HasTblHeader return $ Row hasTblHeader (beforeCells ++ cells) elemToRow _ _ = throwError WrongElem