git.iko.soy/typeable/pandoc
on master help sign in
Docx reader: Parse Insertions and Deletions.

This is just for the Parse module, reading it into the Docx format. It still has to be translated into pandoc.

commit38e1d3e95b8240eeb35db0a1a56e308cfb4835e4 authorJesse Rosenthal <jrosenthal@jhu.edu> dateWed 25 Jun 2014, 10:32 (12 years ago) parentc343f1a
1 file changed+17−1
src/Text/Pandoc/Readers/Docx/Parse.hs+17−1
src/Text/Pandoc/Readers/Docx/Parse.hs+17−1
@@ -541,7 +541,7 @@ elemToRun _ _ = Nothing
541541
542542elemToRunElem :: NameSpaces -> Element -> Maybe RunElem
543543elemToRunElem ns element
544− | qName (elName element) == "t" &&
544+ | (qName (elName element) == "t" || qName (elName element) == "delText") &&
545545 qURI (elName element) == (lookup "w" ns) =
546546 Just $ TextRun (strContent element)
547547 | qName (elName element) == "br" &&
@@ -581,6 +581,22 @@ elemToParPart ns element
581581 Nothing -> do
582582 r <- elemToRun ns element
583583 return $ PlainRun r
584+elemToParPart ns element
585+ | qName (elName element) == "ins" &&
586+ qURI (elName element) == (lookup "w" ns) = do
587+ cId <- findAttr (QName "id" (lookup "w" ns) (Just "w")) element
588+ cAuthor <- findAttr (QName "author" (lookup "w" ns) (Just "w")) element
589+ cDate <- findAttr (QName "date" (lookup "w" ns) (Just "w")) element
590+ let runs = mapMaybe (elemToRun ns) (elChildren element)
591+ return $ Insertion cId cAuthor cDate runs
592+elemToParPart ns element
593+ | qName (elName element) == "del" &&
594+ qURI (elName element) == (lookup "w" ns) = do
595+ cId <- findAttr (QName "id" (lookup "w" ns) (Just "w")) element
596+ cAuthor <- findAttr (QName "author" (lookup "w" ns) (Just "w")) element
597+ cDate <- findAttr (QName "date" (lookup "w" ns) (Just "w")) element
598+ let runs = mapMaybe (elemToRun ns) (elChildren element)
599+ return $ Deletion cId cAuthor cDate runs
584600elemToParPart ns element
585601 | qName (elName element) == "bookmarkStart" &&
586602 qURI (elName element) == (lookup "w" ns) = do