git.iko.soy/typeable/pandoc
on master help sign in
Powerpoint writer: simplify code with `ParseXml`
8b533f9Jesse Rosenthal
src/Text/Pandoc/Writers/Powerpoint/Output.hs+2−23
@@ -344,17 +344,7 @@ getLayout layout = do
344 (TwoColumnSlide _ _ _) -> "ppt/slideLayouts/slideLayout4.xml"
344 (TwoColumnSlide _ _ _) -> "ppt/slideLayouts/slideLayout4.xml"
345 refArchive <- asks envRefArchive
345 refArchive <- asks envRefArchive
346 distArchive <- asks envDistArchive
346 distArchive <- asks envDistArchive
347− root <- case findEntryByPath layoutpath refArchive `mplus`
347+ parseXml refArchive distArchive layoutpath
348− findEntryByPath layoutpath distArchive of
349− Just e -> case parseXMLDoc $ UTF8.toStringLazy $ fromEntry e of
350− Just element -> return $ element
351− Nothing -> throwError $
352− PandocSomeError $
353− layoutpath ++ " corrupt in reference file"
354− Nothing -> throwError $
355− PandocSomeError $
356− layoutpath ++ " missing in reference file"
357− return root
358
348
359shapeHasId :: NameSpaces -> String -> Element -> Bool
349shapeHasId :: NameSpaces -> String -> Element -> Bool
360shapeHasId ns ident element
350shapeHasId ns ident element
@@ -1171,20 +1161,9 @@ slideToElement (Slide _ l@(MetadataSlide titleElems subtitleElems authorElems da
1171
1161
1172getNotesMaster :: PandocMonad m => P m Element
1162getNotesMaster :: PandocMonad m => P m Element
1173getNotesMaster = do
1163getNotesMaster = do
1174− let notesMasterPath = "ppt/notesMasters/notesMaster1.xml"
1175 refArchive <- asks envRefArchive
1164 refArchive <- asks envRefArchive
1176 distArchive <- asks envDistArchive
1165 distArchive <- asks envDistArchive
1177− root <- case findEntryByPath notesMasterPath refArchive `mplus`
1166+ parseXml refArchive distArchive "ppt/notesMasters/notesMaster1.xml"
1178− findEntryByPath notesMasterPath distArchive of
1179− Just e -> case parseXMLDoc $ UTF8.toStringLazy $ fromEntry e of
1180− Just element -> return $ element
1181− Nothing -> throwError $
1182− PandocSomeError $
1183− notesMasterPath ++ " corrupt in reference file"
1184− Nothing -> throwError $
1185− PandocSomeError $
1186− notesMasterPath ++ " missing in reference file"
1187− return root
1188
1167
1189getSlideNumberFieldId :: PandocMonad m => Element -> P m String
1168getSlideNumberFieldId :: PandocMonad m => Element -> P m String
1190getSlideNumberFieldId notesMaster
1169getSlideNumberFieldId notesMaster