@@ -645,18 +645,23 @@ expandDrawingId s = do
645645 Nothing -> throwError DocxError
646646 Nothing -> throwError DocxError
647647
648+getTitleAndAlt :: NameSpaces -> Element -> (String, String)
649+getTitleAndAlt ns element =
650+ let mbDocPr = findChild (elemName ns "wp" "inline") element >>=
651+ findChild (elemName ns "wp" "docPr")
652+ title = case mbDocPr >>= findAttr (elemName ns "" "title") of
653+ Just title' -> title'
654+ Nothing -> ""
655+ alt = case mbDocPr >>= findAttr (elemName ns "" "descr") of
656+ Just alt' -> alt'
657+ Nothing -> ""
658+ in (title, alt)
659+
648660elemToParPart :: NameSpaces -> Element -> D ParPart
649661elemToParPart ns element
650662 | isElem ns "w" "r" element
651663 , Just drawingElem <- findChild (elemName ns "w" "drawing") element =
652− let mbDocPr = findChild (elemName ns "wp" "inline") drawingElem >>=
653− findChild (elemName ns "wp" "docPr")
654− alt = case mbDocPr >>= findAttr (elemName ns "" "descr") of
655− Just alt' -> alt'
656− Nothing -> ""
657− title = case mbDocPr >>= findAttr (elemName ns "" "title") of
658− Just title' -> title'
659− Nothing -> ""
664+ let (title, alt) = getTitleAndAlt ns drawingElem
660665 a_ns = "http://schemas.openxmlformats.org/drawingml/2006/main"
661666 drawing = findElement (QName "blip" (Just a_ns) (Just "a")) element
662667 >>= findAttr (elemName ns "r" "embed")
@@ -760,14 +765,7 @@ elemToExtent drawingElem =
760765childElemToRun :: NameSpaces -> Element -> D Run
761766childElemToRun ns element
762767 | isElem ns "w" "drawing" element =
763− let mbDocPr = findChild (elemName ns "wp" "inline") element >>=
764− findChild (elemName ns "wp" "docPr")
765− alt = case mbDocPr >>= findAttr (elemName ns "" "descr") of
766− Just alt' -> alt'
767− Nothing -> ""
768− title = case mbDocPr >>= findAttr (elemName ns "" "title") of
769− Just title' -> title'
770− Nothing -> ""
768+ let (title, alt) = getTitleAndAlt ns element
771769 a_ns = "http://schemas.openxmlformats.org/drawingml/2006/main"
772770 drawing = findElement (QName "blip" (Just a_ns) (Just "a")) element
773771 >>= findAttr (QName "embed" (lookup "r" ns) (Just "r"))