summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc.hs
diff options
context:
space:
mode:
authorJesse Rosenthal <jrosenthal@jhu.edu>2016-03-12 10:24:39 -0500
committerJesse Rosenthal <jrosenthal@jhu.edu>2016-03-12 17:08:20 -0500
commit68fd333ec4475c5a524004bcf2e76a7959dc3afa (patch)
tree821236ac034aa7ad2bf495b65cfff066d3bfc3fa /src/Text/Pandoc.hs
parentee03e954d0d3cb76971c91001348762f55224890 (diff)
Add a general ByteStringReader with warnings.
Have docx reader use it.
Diffstat (limited to 'src/Text/Pandoc.hs')
-rw-r--r--src/Text/Pandoc.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs
index 4b2397eb9..d59ee7846 100644
--- a/src/Text/Pandoc.hs
+++ b/src/Text/Pandoc.hs
@@ -223,6 +223,14 @@ mkStringReaderWithWarnings r = StringReader $ \o s ->
mkBSReader :: (ReaderOptions -> BL.ByteString -> Either PandocError (Pandoc, MediaBag)) -> Reader
mkBSReader r = ByteStringReader (\o s -> return $ r o s)
+mkBSReaderWithWarnings :: (ReaderOptions -> BL.ByteString -> Either PandocError (Pandoc, MediaBag, [String])) -> Reader
+mkBSReaderWithWarnings r = ByteStringReader $ \o s ->
+ case r o s of
+ Left err -> return $ Left err
+ Right (doc, mediaBag, warnings) -> do
+ mapM_ warn warnings
+ return $ Right (doc, mediaBag)
+
-- | Association list of formats and readers.
readers :: [(String, Reader)]
readers = [ ("native" , StringReader $ \_ s -> return $ readNative s)
@@ -243,7 +251,7 @@ readers = [ ("native" , StringReader $ \_ s -> return $ readNative s)
,("latex" , mkStringReader readLaTeX)
,("haddock" , mkStringReader readHaddock)
,("twiki" , mkStringReader readTWiki)
- ,("docx" , mkBSReader readDocx)
+ ,("docx" , mkBSReaderWithWarnings readDocxWithWarnings)
,("odt" , mkBSReader readOdt)
,("t2t" , mkStringReader readTxt2TagsNoMacros)
,("epub" , mkBSReader readEPUB)