diff options
Diffstat (limited to 'src/Text')
| -rw-r--r-- | src/Text/Pandoc/Readers/Docx.hs | 3 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/Docx/Parse.hs | 14 | 
2 files changed, 17 insertions, 0 deletions
| diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index c06adf7e3..dd6f39431 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -322,6 +322,7 @@ runToInlines (InlineDrawing fp title alt bs ext) = do    (lift . lift) $ P.insertMedia fp Nothing bs    return $ imageWith (extentToAttr ext) (T.pack fp) title $ text alt  runToInlines InlineChart = return $ spanWith ("", ["chart"], []) $ text "[CHART]" +runToInlines InlineDiagram = return $ spanWith ("", ["diagram"], []) $ text "[DIAGRAM]"  extentToAttr :: Extent -> Attr  extentToAttr (Just (w, h)) = @@ -434,6 +435,8 @@ parPartToInlines' (Drawing fp title alt bs ext) = do    return $ imageWith (extentToAttr ext) (T.pack fp) title $ text alt  parPartToInlines' Chart =    return $ spanWith ("", ["chart"], []) $ text "[CHART]" +parPartToInlines' Diagram = +  return $ spanWith ("", ["diagram"], []) $ text "[DIAGRAM]"  parPartToInlines' (InternalHyperLink anchor runs) = do    ils <- smushInlines <$> mapM runToInlines runs    return $ link ("#" <> anchor) "" ils diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs index eb048ab14..5f29ac41a 100644 --- a/src/Text/Pandoc/Readers/Docx/Parse.hs +++ b/src/Text/Pandoc/Readers/Docx/Parse.hs @@ -322,6 +322,7 @@ data ParPart = PlainRun Run               | ExternalHyperLink URL [Run]               | Drawing FilePath T.Text T.Text B.ByteString Extent -- title, alt               | Chart                                              -- placeholder for now +             | Diagram                                            -- placeholder for now               | PlainOMath [Exp]               | Field FieldInfo [Run]               | NullParPart      -- when we need to return nothing, but @@ -333,6 +334,7 @@ data Run = Run RunStyle [RunElem]           | Endnote [BodyPart]           | InlineDrawing FilePath T.Text T.Text B.ByteString Extent -- title, alt           | InlineChart          -- placeholder +         | InlineDiagram        -- placeholder             deriving Show  data RunElem = TextRun T.Text | LnBrk | Tab | SoftHyphen | NoBreakHyphen @@ -821,6 +823,13 @@ elemToParPart ns element    , Just imagedataElem <- findChildByName ns "v" "imagedata" shapeElem    , Just drawingId <- findAttrByName ns "r" "id" imagedataElem    = expandDrawingId drawingId >>= (\(fp, bs) -> return $ Drawing fp "" "" bs Nothing) +-- Diagram +elemToParPart ns element +  | isElem ns "w" "r" element +  , Just drawingElem <- findChildByName ns "w" "drawing" element +  , d_ns <- "http://schemas.openxmlformats.org/drawingml/2006/diagram" +  , Just _ <- findElement (QName "relIds" (Just d_ns) (Just "dgm")) drawingElem +  = return Diagram  -- Chart  elemToParPart ns element    | isElem ns "w" "r" element @@ -988,6 +997,11 @@ childElemToRun ns element    , Just _ <- findElement (QName "chart" (Just c_ns) (Just "c")) element    = return InlineChart  childElemToRun ns element +  | isElem ns "w" "drawing" element +  , c_ns <- "http://schemas.openxmlformats.org/drawingml/2006/diagram" +  , Just _ <- findElement (QName "relIds" (Just c_ns) (Just "dgm")) element +  = return InlineDiagram +childElemToRun ns element    | isElem ns "w" "footnoteReference" element    , Just fnId <- findAttrByName ns "w" "id" element = do      notes <- asks envNotes | 
