From 23e6495624682f0c8d130a3f6db5dc60056015fa Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 3 Feb 2017 11:57:07 +0100 Subject: 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. --- src/Text/Pandoc/Readers/Docx.hs | 3 +++ src/Text/Pandoc/Readers/Docx/Parse.hs | 5 +++++ 2 files changed, 8 insertions(+) (limited to 'src/Text/Pandoc/Readers') diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index 490fdf878..2b92cceee 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -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) _) = diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs index 6cd3a49b6..0532b5497 100644 --- a/src/Text/Pandoc/Readers/Docx/Parse.hs +++ b/src/Text/Pandoc/Readers/Docx/Parse.hs @@ -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 -- cgit v1.2.3