From a331a1c00a13a0f729a300ca1ced780336c72ee9 Mon Sep 17 00:00:00 2001 From: mbracke Date: Wed, 3 Apr 2024 14:53:55 +0200 Subject: [PATCH] Docx reader: fix anchor in header after anchor (#9626) When the last parPart before a header was a bookmark, no span with an anchor was added for a bookmark in the header. But the function that adds header anchors to the anchor map, needs a span with an anchor. So this commit adds that span. --- src/Text/Pandoc/Readers/Docx.hs | 7 +++---- test/Tests/Readers/Docx.hs | 4 ++++ test/docx/anchor_header_after_anchor.docx | Bin 0 -> 27098 bytes test/docx/anchor_header_after_anchor.native | 6 ++++++ 4 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 test/docx/anchor_header_after_anchor.docx create mode 100644 test/docx/anchor_header_after_anchor.native diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index 0c75fdb08..7752092b1 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -439,11 +439,10 @@ parPartToInlines' (BookMark _ anchor) = -- avoid an extra pass. immedPrevAnchor <- gets docxImmedPrevAnchor case immedPrevAnchor of - Just prevAnchor -> do - unless inHdrBool - (modify $ \s -> s { docxAnchorMap = M.insert anchor prevAnchor anchorMap}) + Just prevAnchor | not inHdrBool -> do + (modify $ \s -> s { docxAnchorMap = M.insert anchor prevAnchor anchorMap}) return mempty - Nothing -> do + _ -> do exts <- asks (readerExtensions . docxOptions) let newAnchor = if not inHdrBool && anchor `elem` M.elems anchorMap diff --git a/test/Tests/Readers/Docx.hs b/test/Tests/Readers/Docx.hs index 05b69abf6..b2aa36560 100644 --- a/test/Tests/Readers/Docx.hs +++ b/test/Tests/Readers/Docx.hs @@ -235,6 +235,10 @@ tests = [ testGroup "document" "collapse overlapping targets (anchor spans)" "docx/overlapping_targets.docx" "docx/overlapping_targets.native" + , testCompare + "anchor in header after anchor" + "docx/anchor_header_after_anchor.docx" + "docx/anchor_header_after_anchor.native" , testCompare "text in shape format" "docx/text_in_shape_format.docx" diff --git a/test/docx/anchor_header_after_anchor.docx b/test/docx/anchor_header_after_anchor.docx new file mode 100644 index 0000000000000000000000000000000000000000..e0b7da2614bb44ca8dba0c8a2cf9931091b9ca71 GIT binary patch literal 27098 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

;&><`sPU2lV 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 IF#YlBAFA^I*Z=?k literal 0 HcmV?d00001 diff --git a/test/docx/anchor_header_after_anchor.native b/test/docx/anchor_header_after_anchor.native new file mode 100644 index 000000000..4a1f284f9 --- /dev/null +++ b/test/docx/anchor_header_after_anchor.native @@ -0,0 +1,6 @@ +[Para [Link ("",[],[]) [Str "A",Space,Str "link",Space,Str "to",Space,Str "the",Space,Str "bookmark"] ("#referenced-title" , "")] +,Para [Strong [Str "Accomplices:"]] +,Para [Str "There",Space,Str "are",Space,Str "bookmarks",Space,Str "around",Space,Str "here."] +,Para [] +,Header 1 ("referenced-title",[],[]) [Str "Referenced" ,Space ,Str "title"] +,Para [Str "Content"]]