git.iko.soy/typeable/pandoc
on master help sign in
Docx reader: Parse Insertions and Deletions.
38e1d3eJesse Rosenthal
src/Text/Pandoc/Readers/Docx/Parse.hs+17−1
@@ -541,7 +541,7 @@ elemToRun _ _ = Nothing
541
541
542elemToRunElem :: NameSpaces -> Element -> Maybe RunElem
542elemToRunElem :: NameSpaces -> Element -> Maybe RunElem
543elemToRunElem ns element
543elemToRunElem ns element
544− | qName (elName element) == "t" &&
544+ | (qName (elName element) == "t" || qName (elName element) == "delText") &&
545 qURI (elName element) == (lookup "w" ns) =
545 qURI (elName element) == (lookup "w" ns) =
546 Just $ TextRun (strContent element)
546 Just $ TextRun (strContent element)
547 | qName (elName element) == "br" &&
547 | qName (elName element) == "br" &&
@@ -581,6 +581,22 @@ elemToParPart ns element
581 Nothing -> do
581 Nothing -> do
582 r <- elemToRun ns element
582 r <- elemToRun ns element
583 return $ PlainRun r
583 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
584elemToParPart ns element
600elemToParPart ns element
585 | qName (elName element) == "bookmarkStart" &&
601 | qName (elName element) == "bookmarkStart" &&
586 qURI (elName element) == (lookup "w" ns) = do
602 qURI (elName element) == (lookup "w" ns) = do