Docx reader: Don't drop smartTag contents.

This just parses inside smartTags and yields their contents,
ignoring the attributes of the smartTag.  @jkr, you may want
to adjust this, but I wanted to get a fix in as fast as possible
for the dropped content.

Closes #2242; see also #3412.
This commit is contained in:
John MacFarlane 2017-02-03 11:57:07 +01:00
parent 5cd475be70
commit 23e6495624
2 changed files with 8 additions and 0 deletions

View file

@ -411,6 +411,9 @@ parPartToInlines (ExternalHyperLink target runs) = do
return $ link target "" ils
parPartToInlines (PlainOMath exps) = do
return $ math $ writeTeX exps
parPartToInlines (SmartTag runs) = do
ils <- smushInlines <$> mapM runToInlines runs
return ils
isAnchorSpan :: Inline -> Bool
isAnchorSpan (Span (_, classes, kvs) _) =

View file

@ -218,6 +218,7 @@ data ParPart = PlainRun Run
| Drawing FilePath String String B.ByteString Extent -- title, alt
| Chart -- placeholder for now
| PlainOMath [Exp]
| SmartTag [Run]
deriving Show
data Run = Run RunStyle [RunElem]
@ -708,6 +709,10 @@ elemToParPart ns element
, Just cDate <- findAttr (elemName ns "w" "date") element = do
runs <- mapD (elemToRun ns) (elChildren element)
return $ Deletion cId cAuthor cDate runs
elemToParPart ns element
| isElem ns "w" "smartTag" element = do
runs <- mapD (elemToRun ns) (elChildren element)
return $ SmartTag runs
elemToParPart ns element
| isElem ns "w" "bookmarkStart" element
, Just bmId <- findAttr (elemName ns "w" "id") element