@@ -455,6 +455,13 @@ isHeaderContainer :: Container Block -> Bool
455isHeaderContainer (Container f) | Header _ _ _ <- f [] = True
455isHeaderContainer (Container f) | Header _ _ _ <- f [] = True
456isHeaderContainer _ = False
456isHeaderContainer _ = False
458+trimLineBreaks :: [Inline] -> [Inline]
459+trimLineBreaks [] = []
460+trimLineBreaks (LineBreak : ils) = trimLineBreaks ils
462+ | (LineBreak : ils') <- reverse ils = trimLineBreaks (reverse ils')
463+trimLineBreaks ils = ils
458bodyPartToBlocks :: BodyPart -> DocxContext [Block]
465bodyPartToBlocks :: BodyPart -> DocxContext [Block]
459bodyPartToBlocks (Paragraph pPr parparts)
466bodyPartToBlocks (Paragraph pPr parparts)
460 | any isBlockCodeContainer (parStyleToContainers pPr) =
467 | any isBlockCodeContainer (parStyleToContainers pPr) =
@@ -467,8 +474,9 @@ bodyPartToBlocks (Paragraph pPr parparts)
467 [CodeBlock ("", [], []) (concatMap parPartToString parparts)]
474 [CodeBlock ("", [], []) (concatMap parPartToString parparts)]
468bodyPartToBlocks (Paragraph pPr parparts)
475bodyPartToBlocks (Paragraph pPr parparts)
469 | any isHeaderContainer (parStyleToContainers pPr) = do
476 | any isHeaderContainer (parStyleToContainers pPr) = do
477+ ils <- (trimLineBreaks . normalizeSpaces) <$>
470− ils <- normalizeSpaces <$> local (\s -> s{docxInHeaderBlock = True})
478+ local (\s -> s{docxInHeaderBlock = True})
471− (parPartsToInlines parparts)
479+ (parPartsToInlines parparts)
472 let (Container hdrFun) = head $ filter isHeaderContainer (parStyleToContainers pPr)
480 let (Container hdrFun) = head $ filter isHeaderContainer (parStyleToContainers pPr)
473 Header n attr _ = hdrFun []
481 Header n attr _ = hdrFun []
474 hdr <- makeHeaderAnchor $ Header n attr ils
482 hdr <- makeHeaderAnchor $ Header n attr ils