git.iko.soy/typeable/pandoc
on master help sign in
Docx writer: insert bookmark tags inside <w:p> tag.

This makes the header anchors in pandoc-generated ooxml match those generated by word.

commit0587334bc0c87ae62f37cf14543b7727d408aeca authorJesse Rosenthal <jrosenthal@jhu.edu> dateSun 29 Jun 2014, 16:38 (12 years ago) parentce69021
1 file changed+6−3
src/Text/Pandoc/Writers/Docx.hs+6−3
src/Text/Pandoc/Writers/Docx.hs+6−3
@@ -514,8 +514,11 @@ blockToOpenXML :: WriterOptions -> Block -> WS [Element]
514514blockToOpenXML _ Null = return []
515515blockToOpenXML opts (Div _ bs) = blocksToOpenXML opts bs
516516blockToOpenXML opts (Header lev (ident,_,_) lst) = do
517− contents <- withParaProp (pStyle $ "Heading" ++ show lev) $
518− blockToOpenXML opts (Para lst)
517+
518+ paraProps <- withParaProp (pStyle $ "Heading" ++ show lev) $
519+ getParaProps False
520+ contents <- inlinesToOpenXML opts lst
521+
519522 usedIdents <- gets stSectionIds
520523 let bookmarkName = if null ident
521524 then uniqueIdent lst usedIdents
@@ -525,7 +528,7 @@ blockToOpenXML opts (Header lev (ident,_,_) lst) = do
525528 let bookmarkStart = mknode "w:bookmarkStart" [("w:id", id')
526529 ,("w:name",bookmarkName)] ()
527530 let bookmarkEnd = mknode "w:bookmarkEnd" [("w:id", id')] ()
528− return $ [bookmarkStart] ++ contents ++ [bookmarkEnd]
531+ return [mknode "w:p" [] (paraProps ++ [bookmarkStart, bookmarkEnd] ++ contents)]
529532blockToOpenXML opts (Plain lst) = withParaProp (pStyle "Compact")
530533 $ blockToOpenXML opts (Para lst)
531534-- title beginning with fig: indicates that the image is a figure