git.iko.soy/typeable/pandoc
on master help sign in
Unify Errors.
3574b98Jesse Rosenthal
src/Text/Pandoc.hs+2−2
@@ -180,7 +180,7 @@ import Text.Pandoc.Templates
180import Text.Pandoc.Options
180import Text.Pandoc.Options
181import Text.Pandoc.Shared (safeRead, mapLeft, pandocVersion)
181import Text.Pandoc.Shared (safeRead, mapLeft, pandocVersion)
182import Text.Pandoc.Error
182import Text.Pandoc.Error
183−import Text.Pandoc.Class (PandocMonad, runIOorExplode, PandocExecutionError(..))
183+import Text.Pandoc.Class (PandocMonad, runIOorExplode)
184import Data.Aeson
184import Data.Aeson
185import qualified Data.ByteString.Lazy as BL
185import qualified Data.ByteString.Lazy as BL
186import Data.List (intercalate)
186import Data.List (intercalate)
@@ -387,7 +387,7 @@ class ToJSONFilter a => ToJsonFilter a
387 toJsonFilter = toJSONFilter
387 toJsonFilter = toJSONFilter
388
388
389readJSON :: ReaderOptions -> String -> Either PandocError Pandoc
389readJSON :: ReaderOptions -> String -> Either PandocError Pandoc
390−readJSON _ = mapLeft ParseFailure . eitherDecode' . UTF8.fromStringLazy
390+readJSON _ = mapLeft PandocParseError . eitherDecode' . UTF8.fromStringLazy
391
391
392writeJSON :: WriterOptions -> Pandoc -> String
392writeJSON :: WriterOptions -> Pandoc -> String
393writeJSON _ = UTF8.toStringLazy . encode
393writeJSON _ = UTF8.toStringLazy . encode
src/Text/Pandoc/Class.hs+16−25
@@ -39,7 +39,6 @@ module Text.Pandoc.Class ( PandocMonad(..)
39 , addWarningWithPos
39 , addWarningWithPos
40 , PandocIO(..)
40 , PandocIO(..)
41 , PandocPure(..)
41 , PandocPure(..)
42− , PandocExecutionError(..)
43 , FileInfo(..)
42 , FileInfo(..)
44 , runIO
43 , runIO
45 , runIOorExplode
44 , runIOorExplode
@@ -83,12 +82,12 @@ import Control.Monad.State hiding (fail)
83import Control.Monad.Reader hiding (fail)
82import Control.Monad.Reader hiding (fail)
84import Control.Monad.Except hiding (fail)
83import Control.Monad.Except hiding (fail)
85import Data.Word (Word8)
84import Data.Word (Word8)
86−import Data.Typeable
87import Data.Default
85import Data.Default
88import System.IO.Error
86import System.IO.Error
89import qualified Data.Map as M
87import qualified Data.Map as M
88+import Text.Pandoc.Error
90
89
91−class (Functor m, Applicative m, Monad m, MonadError PandocExecutionError m) => PandocMonad m where
90+class (Functor m, Applicative m, Monad m, MonadError PandocError m) => PandocMonad m where
92 lookupEnv :: String -> m (Maybe String)
91 lookupEnv :: String -> m (Maybe String)
93 getCurrentTime :: m UTCTime
92 getCurrentTime :: m UTCTime
94 getCurrentTimeZone :: m TimeZone
93 getCurrentTimeZone :: m TimeZone
@@ -143,12 +142,6 @@ addWarningWithPos mbpos msg =
143 warn $
142 warn $
144 msg ++ maybe "" (\pos -> " " ++ show pos) mbpos
143 msg ++ maybe "" (\pos -> " " ++ show pos) mbpos
145
144
146−-- We can add to this as we go
147−data PandocExecutionError = PandocFileReadError FilePath
148− | PandocShouldNeverHappenError String
149− | PandocParseError String
150− | PandocSomeError String
151− deriving (Show, Typeable)
152
145
153-- Nothing in this for now, but let's put it there anyway.
146-- Nothing in this for now, but let's put it there anyway.
154data PandocStateIO = PandocStateIO { ioStWarnings :: [String]
147data PandocStateIO = PandocStateIO { ioStWarnings :: [String]
@@ -168,35 +161,35 @@ instance Default PandocEnvIO where
168 , ioEnvOutputFile = Nothing -- stdout
161 , ioEnvOutputFile = Nothing -- stdout
169 }
162 }
170
163
171−runIO :: PandocIO a -> IO (Either PandocExecutionError a)
164+runIO :: PandocIO a -> IO (Either PandocError a)
172runIO ma = flip evalStateT def $ flip runReaderT def $ runExceptT $ unPandocIO ma
165runIO ma = flip evalStateT def $ flip runReaderT def $ runExceptT $ unPandocIO ma
173
166
174withMediaBag :: PandocMonad m => m a -> m (a, MediaBag)
167withMediaBag :: PandocMonad m => m a -> m (a, MediaBag)
175withMediaBag ma = ((,)) <$> ma <*> getMediaBag
168withMediaBag ma = ((,)) <$> ma <*> getMediaBag
176
169
177runIOorExplode :: PandocIO a -> IO a
170runIOorExplode :: PandocIO a -> IO a
178−runIOorExplode ma = do
171+runIOorExplode ma = handleError <$> runIO ma
179− eitherVal <- runIO ma
172+ -- eitherVal <- runIO ma
180− case eitherVal of
173+ -- case eitherVal of
181− Right x -> return x
174+ -- Right x -> return x
182− Left (PandocFileReadError fp) -> error $ "problem reading " ++ fp
175+ -- Left (PandocFileReadError fp) -> error $ "problem reading " ++ fp
183− Left (PandocShouldNeverHappenError s) -> error s
176+ -- Left (PandocShouldNeverHappenError s) -> error s
184− Left (PandocParseError s) -> error $ "parse error" ++ s
177+ -- Left (PandocParseError s) -> error $ "parse error" ++ s
185− Left (PandocSomeError s) -> error s
178+ -- Left (PandocSomeError s) -> error s
186
179
187
180
188
181
189
182
190
183
191newtype PandocIO a = PandocIO {
184newtype PandocIO a = PandocIO {
192− unPandocIO :: ExceptT PandocExecutionError (ReaderT PandocEnvIO (StateT PandocStateIO IO)) a
185+ unPandocIO :: ExceptT PandocError (ReaderT PandocEnvIO (StateT PandocStateIO IO)) a
193 } deriving ( MonadIO
186 } deriving ( MonadIO
194 , Functor
187 , Functor
195 , Applicative
188 , Applicative
196 , Monad
189 , Monad
197 , MonadReader PandocEnvIO
190 , MonadReader PandocEnvIO
198 , MonadState PandocStateIO
191 , MonadState PandocStateIO
199− , MonadError PandocExecutionError
192+ , MonadError PandocError
200 )
193 )
201
194
202instance PandocMonad PandocIO where
195instance PandocMonad PandocIO where
@@ -303,20 +296,18 @@ instance Default PureEnv where
303 , envOutputFile = Nothing
296 , envOutputFile = Nothing
304 }
297 }
305
298
306−instance E.Exception PandocExecutionError
307−
308newtype PandocPure a = PandocPure {
299newtype PandocPure a = PandocPure {
309− unPandocPure :: ExceptT PandocExecutionError
300+ unPandocPure :: ExceptT PandocError
310 (ReaderT PureEnv (State PureState)) a
301 (ReaderT PureEnv (State PureState)) a
311 } deriving ( Functor
302 } deriving ( Functor
312 , Applicative
303 , Applicative
313 , Monad
304 , Monad
314 , MonadReader PureEnv
305 , MonadReader PureEnv
315 , MonadState PureState
306 , MonadState PureState
316− , MonadError PandocExecutionError
307+ , MonadError PandocError
317 )
308 )
318
309
319−runPure :: PandocPure a -> Either PandocExecutionError a
310+runPure :: PandocPure a -> Either PandocError a
320runPure x = flip evalState def $ flip runReaderT def $ runExceptT $ unPandocPure x
311runPure x = flip evalState def $ flip runReaderT def $ runExceptT $ unPandocPure x
321
312
322instance PandocMonad PandocPure where
313instance PandocMonad PandocPure where
src/Text/Pandoc/Error.hs+18−8
@@ -33,17 +33,24 @@ module Text.Pandoc.Error (PandocError(..), handleError) where
33
33
34import Text.Parsec.Error
34import Text.Parsec.Error
35import Text.Parsec.Pos hiding (Line)
35import Text.Parsec.Pos hiding (Line)
36−import GHC.Generics (Generic)
37import Data.Generics (Typeable)
36import Data.Generics (Typeable)
38import Control.Exception (Exception)
37import Control.Exception (Exception)
39
38
40type Input = String
39type Input = String
41
40
41+data PandocError = PandocFileReadError FilePath
42+ | PandocShouldNeverHappenError String
43+ | PandocSomeError String
44+ | PandocParseError String
45+ | PandocParsecError Input ParseError
46+ deriving (Show, Typeable)
47+
48+
42−data PandocError = -- | Generic parse failure
49+-- data PandocError = -- | Generic parse failure
43− ParseFailure String
50+-- ParseFailure String
44− -- | Error thrown by a Parsec parser
51+-- -- | Error thrown by a Parsec parser
45− | ParsecError Input ParseError
52+-- | ParsecError Input ParseError
46− deriving (Show, Typeable, Generic)
53+-- deriving (Show, Typeable, Generic)
47
54
48instance Exception PandocError
55instance Exception PandocError
49
56
@@ -52,8 +59,11 @@ handleError :: Either PandocError a -> a
52handleError (Right r) = r
59handleError (Right r) = r
53handleError (Left err) =
60handleError (Left err) =
54 case err of
61 case err of
55− ParseFailure string -> error string
62+ PandocFileReadError fp -> error $ "problem reading " ++ fp
56− ParsecError input err' ->
63+ PandocShouldNeverHappenError s -> error s
64+ PandocSomeError s -> error s
65+ PandocParseError s -> error s
66+ PandocParsecError input err' ->
57 let errPos = errorPos err'
67 let errPos = errorPos err'
58 errLine = sourceLine errPos
68 errLine = sourceLine errPos
59 errColumn = sourceColumn errPos
69 errColumn = sourceColumn errPos
src/Text/Pandoc/Parsing.hs+1−1
@@ -885,7 +885,7 @@ readWithM :: (Monad m)
885 -> String -- ^ input
885 -> String -- ^ input
886 -> m (Either PandocError a)
886 -> m (Either PandocError a)
887readWithM parser state input =
887readWithM parser state input =
888− mapLeft (ParsecError input) `liftM` runParserT parser state "source" input
888+ mapLeft (PandocParsecError input) `liftM` runParserT parser state "source" input
889
889
890
890
891-- | Parse a string with a given parser and state
891-- | Parse a string with a given parser and state
src/Text/Pandoc/Readers/Docx.hs+2−1
@@ -96,8 +96,9 @@ import qualified Data.Sequence as Seq (null)
96#if !(MIN_VERSION_base(4,8,0))
96#if !(MIN_VERSION_base(4,8,0))
97import Data.Traversable (traverse)
97import Data.Traversable (traverse)
98#endif
98#endif
99+import Text.Pandoc.Error
99import Control.Monad.Except (throwError)
100import Control.Monad.Except (throwError)
100−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
101+import Text.Pandoc.Class (PandocMonad)
101import qualified Text.Pandoc.Class as P
102import qualified Text.Pandoc.Class as P
102
103
103readDocx :: PandocMonad m
104readDocx :: PandocMonad m
src/Text/Pandoc/Readers/EPUB.hs+2−1
@@ -32,7 +32,8 @@ import Data.Maybe (mapMaybe, fromMaybe)
32import qualified Data.Map as M (Map, lookup, fromList, elems)
32import qualified Data.Map as M (Map, lookup, fromList, elems)
33import Data.Monoid ((<>))
33import Data.Monoid ((<>))
34import Control.DeepSeq (deepseq, NFData)
34import Control.DeepSeq (deepseq, NFData)
35−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
35+import Text.Pandoc.Error
36+import Text.Pandoc.Class (PandocMonad)
36import qualified Text.Pandoc.Class as P
37import qualified Text.Pandoc.Class as P
37
38
38import Debug.Trace (trace)
39import Debug.Trace (trace)
src/Text/Pandoc/Readers/HTML.hs+2−1
@@ -68,7 +68,8 @@ import Text.Pandoc.CSS (foldOrElse, pickStyleAttrProps)
68import Data.Monoid ((<>))
68import Data.Monoid ((<>))
69import Text.Parsec.Error
69import Text.Parsec.Error
70import qualified Data.Set as Set
70import qualified Data.Set as Set
71−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
71+import Text.Pandoc.Error
72+import Text.Pandoc.Class (PandocMonad)
72import Control.Monad.Except (throwError)
73import Control.Monad.Except (throwError)
73
74
74
75
src/Text/Pandoc/Readers/Haddock.hs+3−2
@@ -25,8 +25,9 @@ import Text.Pandoc.Options
25import Documentation.Haddock.Parser
25import Documentation.Haddock.Parser
26import Documentation.Haddock.Types
26import Documentation.Haddock.Types
27import Debug.Trace (trace)
27import Debug.Trace (trace)
28+import Text.Pandoc.Error
28import Control.Monad.Except (throwError)
29import Control.Monad.Except (throwError)
29−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
30+import Text.Pandoc.Class (PandocMonad)
30
31
31
32
32-- | Parse Haddock markup and return a 'Pandoc' document.
33-- | Parse Haddock markup and return a 'Pandoc' document.
@@ -40,7 +41,7 @@ readHaddock opts s = case readHaddockEither opts s of
40
41
41readHaddockEither :: ReaderOptions -- ^ Reader options
42readHaddockEither :: ReaderOptions -- ^ Reader options
42 -> String -- ^ String to parse
43 -> String -- ^ String to parse
43− -> Either PandocExecutionError Pandoc
44+ -> Either PandocError Pandoc
44readHaddockEither opts =
45readHaddockEither opts =
45#if MIN_VERSION_haddock_library(1,2,0)
46#if MIN_VERSION_haddock_library(1,2,0)
46 Right . B.doc . docHToBlocks . trace' . _doc . parseParas
47 Right . B.doc . docHToBlocks . trace' . _doc . parseParas
src/Text/Pandoc/Readers/LaTeX.hs+2−2
@@ -57,7 +57,7 @@ import Text.Pandoc.Highlighting (fromListingsLanguage)
57import Text.Pandoc.ImageSize (numUnit, showFl)
57import Text.Pandoc.ImageSize (numUnit, showFl)
58import Text.Pandoc.Error
58import Text.Pandoc.Error
59import Control.Monad.Except (throwError)
59import Control.Monad.Except (throwError)
60−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..), PandocPure)
60+import Text.Pandoc.Class (PandocMonad, PandocPure)
61
61
62-- | Parse LaTeX from string and return 'Pandoc' document.
62-- | Parse LaTeX from string and return 'Pandoc' document.
63readLaTeX :: PandocMonad m
63readLaTeX :: PandocMonad m
@@ -939,7 +939,7 @@ type IncludeParser = ParserT String [String] IO String
939
939
940-- | Replace "include" commands with file contents.
940-- | Replace "include" commands with file contents.
941handleIncludes :: String -> IO (Either PandocError String)
941handleIncludes :: String -> IO (Either PandocError String)
942−handleIncludes s = mapLeft (ParsecError s) <$> runParserT includeParser' [] "input" s
942+handleIncludes s = mapLeft (PandocParsecError s) <$> runParserT includeParser' [] "input" s
943
943
944includeParser' :: IncludeParser
944includeParser' :: IncludeParser
945includeParser' =
945includeParser' =
src/Text/Pandoc/Readers/Markdown.hs+2−1
@@ -68,7 +68,8 @@ import Debug.Trace (trace)
68import Data.Monoid ((<>))
68import Data.Monoid ((<>))
69import Control.Monad.Trans (lift)
69import Control.Monad.Trans (lift)
70import Control.Monad.Except (throwError, catchError)
70import Control.Monad.Except (throwError, catchError)
71−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
71+import Text.Pandoc.Error
72+import Text.Pandoc.Class (PandocMonad)
72import qualified Text.Pandoc.Class as P
73import qualified Text.Pandoc.Class as P
73
74
74type MarkdownParser m = ParserT [Char] ParserState m
75type MarkdownParser m = ParserT [Char] ParserState m
src/Text/Pandoc/Readers/MediaWiki.hs+2−1
@@ -58,7 +58,8 @@ import Data.Maybe (fromMaybe)
58import Text.Printf (printf)
58import Text.Printf (printf)
59import Debug.Trace (trace)
59import Debug.Trace (trace)
60import Control.Monad.Except (throwError)
60import Control.Monad.Except (throwError)
61−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
61+import Text.Pandoc.Error(PandocError(..))
62+import Text.Pandoc.Class (PandocMonad)
62
63
63-- | Read mediawiki from an input string and return a Pandoc document.
64-- | Read mediawiki from an input string and return a Pandoc document.
64readMediaWiki :: PandocMonad m
65readMediaWiki :: PandocMonad m
src/Text/Pandoc/Readers/Native.hs+1−1
@@ -65,5 +65,5 @@ readInlines :: String -> Either PandocError [Inline]
65readInlines s = maybe ((:[]) <$> readInline s) Right (safeRead s)
65readInlines s = maybe ((:[]) <$> readInline s) Right (safeRead s)
66
66
67readInline :: String -> Either PandocError Inline
67readInline :: String -> Either PandocError Inline
68−readInline s = maybe (Left . ParseFailure $ "Could not read: " ++ s) Right (safeRead s)
68+readInline s = maybe (Left . PandocParseError $ "Could not read: " ++ s) Right (safeRead s)
69
69
src/Text/Pandoc/Readers/OPML.hs+2−2
@@ -13,7 +13,7 @@ import Control.Monad.State
13import Data.Default
13import Data.Default
14import Control.Monad.Except
14import Control.Monad.Except
15import Text.Pandoc.Error
15import Text.Pandoc.Error
16−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
16+import Text.Pandoc.Class (PandocMonad)
17
17
18type OPML m = StateT OPMLState m
18type OPML m = StateT OPMLState m
19
19
@@ -65,7 +65,7 @@ attrValue attr elt =
65 Just z -> z
65 Just z -> z
66 Nothing -> ""
66 Nothing -> ""
67
67
68−-- exceptT :: PandocMonad m => Either PandocExecutionError a -> OPML m a
68+-- exceptT :: PandocMonad m => Either PandocError a -> OPML m a
69-- exceptT = either throwError return
69-- exceptT = either throwError return
70
70
71asHtml :: PandocMonad m => String -> OPML m Inlines
71asHtml :: PandocMonad m => String -> OPML m Inlines
src/Text/Pandoc/Readers/Odt.hs+3−3
@@ -41,7 +41,7 @@ import System.FilePath
41
41
42import Control.Monad.Except (throwError)
42import Control.Monad.Except (throwError)
43
43
44−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
44+import Text.Pandoc.Class (PandocMonad)
45import qualified Text.Pandoc.Class as P
45import qualified Text.Pandoc.Class as P
46import Text.Pandoc.Definition
46import Text.Pandoc.Definition
47import Text.Pandoc.Error
47import Text.Pandoc.Error
@@ -78,7 +78,7 @@ readOdt' _ bytes = bytesToOdt bytes-- of
78bytesToOdt :: B.ByteString -> Either PandocError (Pandoc, MediaBag)
78bytesToOdt :: B.ByteString -> Either PandocError (Pandoc, MediaBag)
79bytesToOdt bytes = case toArchiveOrFail bytes of
79bytesToOdt bytes = case toArchiveOrFail bytes of
80 Right archive -> archiveToOdt archive
80 Right archive -> archiveToOdt archive
81− Left _ -> Left $ ParseFailure "Couldn't parse odt file."
81+ Left _ -> Left $ PandocParseError "Couldn't parse odt file."
82
82
83--
83--
84archiveToOdt :: Archive -> Either PandocError (Pandoc, MediaBag)
84archiveToOdt :: Archive -> Either PandocError (Pandoc, MediaBag)
@@ -99,7 +99,7 @@ archiveToOdt archive
99
99
100 | otherwise
100 | otherwise
101 -- Not very detailed, but I don't think more information would be helpful
101 -- Not very detailed, but I don't think more information would be helpful
102− = Left $ ParseFailure "Couldn't parse odt file."
102+ = Left $ PandocParseError "Couldn't parse odt file."
103 where
103 where
104 filePathIsOdtMedia :: FilePath -> Bool
104 filePathIsOdtMedia :: FilePath -> Bool
105 filePathIsOdtMedia fp =
105 filePathIsOdtMedia fp =
src/Text/Pandoc/Readers/Org.hs+2−1
@@ -31,8 +31,9 @@ import Text.Pandoc.Readers.Org.Blocks ( blockList, meta )
31import Text.Pandoc.Readers.Org.Parsing ( OrgParser, readWithM )
31import Text.Pandoc.Readers.Org.Parsing ( OrgParser, readWithM )
32import Text.Pandoc.Readers.Org.ParserState ( optionsToParserState )
32import Text.Pandoc.Readers.Org.ParserState ( optionsToParserState )
33
33
34−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
34+import Text.Pandoc.Class (PandocMonad)
35import Text.Pandoc.Definition
35import Text.Pandoc.Definition
36+import Text.Pandoc.Error
36import Text.Pandoc.Options
37import Text.Pandoc.Options
37
38
38import Control.Monad.Except ( throwError )
39import Control.Monad.Except ( throwError )
src/Text/Pandoc/Readers/RST.hs+2−1
@@ -51,7 +51,8 @@ import Data.Char (toLower, isHexDigit, isSpace)
51import Data.Monoid ((<>))
51import Data.Monoid ((<>))
52import Control.Monad.Except (throwError)
52import Control.Monad.Except (throwError)
53import Control.Monad.Trans (lift)
53import Control.Monad.Trans (lift)
54−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
54+import Text.Pandoc.Error
55+import Text.Pandoc.Class (PandocMonad)
55import qualified Text.Pandoc.Class as P
56import qualified Text.Pandoc.Class as P
56
57
57-- | Parse reStructuredText string and return Pandoc document.
58-- | Parse reStructuredText string and return Pandoc document.
src/Text/Pandoc/Readers/TWiki.hs+1−1
@@ -48,7 +48,7 @@ import qualified Data.Foldable as F
48import Text.Pandoc.Error
48import Text.Pandoc.Error
49
49
50import Control.Monad.Except (throwError)
50import Control.Monad.Except (throwError)
51−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
51+import Text.Pandoc.Class (PandocMonad)
52import qualified Text.Pandoc.Class as P
52import qualified Text.Pandoc.Class as P
53
53
54-- | Read twiki from an input string and return a Pandoc document.
54-- | Read twiki from an input string and return a Pandoc document.
src/Text/Pandoc/Readers/Textile.hs+2−1
@@ -68,7 +68,8 @@ import Control.Monad ( guard, liftM, when )
68import Data.Monoid ((<>))
68import Data.Monoid ((<>))
69import Text.Printf
69import Text.Printf
70import Debug.Trace (trace)
70import Debug.Trace (trace)
71−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
71+import Text.Pandoc.Error
72+import Text.Pandoc.Class (PandocMonad)
72import Control.Monad.Except (throwError)
73import Control.Monad.Except (throwError)
73
74
74-- | Parse a Textile text and return a Pandoc document.
75-- | Parse a Textile text and return a Pandoc document.
src/Text/Pandoc/Readers/Txt2Tags.hs+2−1
@@ -50,7 +50,8 @@ import Control.Monad.Reader (Reader, runReader, asks)
50import Data.Time.Format (formatTime)
50import Data.Time.Format (formatTime)
51import Text.Pandoc.Compat.Time (defaultTimeLocale)
51import Text.Pandoc.Compat.Time (defaultTimeLocale)
52import Control.Monad.Except (throwError, catchError)
52import Control.Monad.Except (throwError, catchError)
53−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
53+import Text.Pandoc.Error
54+import Text.Pandoc.Class (PandocMonad)
54import qualified Text.Pandoc.Class as P
55import qualified Text.Pandoc.Class as P
55
56
56type T2T = ParserT String ParserState (Reader T2TMeta)
57type T2T = ParserT String ParserState (Reader T2TMeta)
src/Text/Pandoc/Writers/EPUB.hs+2−1
@@ -65,7 +65,8 @@ import Text.Pandoc.MIME (MimeType, getMimeType, extensionFromMimeType)
65import Text.Blaze.Html.Renderer.Utf8 (renderHtml)
65import Text.Blaze.Html.Renderer.Utf8 (renderHtml)
66import Text.HTML.TagSoup (Tag(TagOpen), fromAttrib, parseTags)
66import Text.HTML.TagSoup (Tag(TagOpen), fromAttrib, parseTags)
67import Control.Monad.Except (throwError)
67import Control.Monad.Except (throwError)
68−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
68+import Text.Pandoc.Error
69+import Text.Pandoc.Class (PandocMonad)
69import qualified Text.Pandoc.Class as P
70import qualified Text.Pandoc.Class as P
70
71
71-- A Chapter includes a list of blocks and maybe a section
72-- A Chapter includes a list of blocks and maybe a section
src/Text/Pandoc/Writers/FB2.hs+2−1
@@ -46,7 +46,8 @@ import Text.Pandoc.Definition
46import Text.Pandoc.Options (WriterOptions(..), HTMLMathMethod(..), def)
46import Text.Pandoc.Options (WriterOptions(..), HTMLMathMethod(..), def)
47import Text.Pandoc.Shared (orderedListMarkers, isHeaderBlock, capitalize,
47import Text.Pandoc.Shared (orderedListMarkers, isHeaderBlock, capitalize,
48 linesToPara)
48 linesToPara)
49−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
49+import Text.Pandoc.Error
50+import Text.Pandoc.Class (PandocMonad)
50import qualified Text.Pandoc.Class as P
51import qualified Text.Pandoc.Class as P
51
52
52-- | Data to be written at the end of the document:
53-- | Data to be written at the end of the document:
src/Text/Pandoc/Writers/HTML.hs+2−1
@@ -69,7 +69,8 @@ import qualified Text.XML.Light as XML
69import System.FilePath (takeExtension)
69import System.FilePath (takeExtension)
70import Data.Aeson (Value)
70import Data.Aeson (Value)
71import Control.Monad.Except (throwError)
71import Control.Monad.Except (throwError)
72−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
72+import Text.Pandoc.Error
73+import Text.Pandoc.Class (PandocMonad)
73
74
74data WriterState = WriterState
75data WriterState = WriterState
75 { stNotes :: [Html] -- ^ List of notes
76 { stNotes :: [Html] -- ^ List of notes
src/Text/Pandoc/Writers/Man.hs+2−1
@@ -41,8 +41,9 @@ import Data.Maybe (fromMaybe)
41import Text.Pandoc.Pretty
41import Text.Pandoc.Pretty
42import Text.Pandoc.Builder (deleteMeta)
42import Text.Pandoc.Builder (deleteMeta)
43import Control.Monad.State
43import Control.Monad.State
44+import Text.Pandoc.Error
44import Control.Monad.Except (throwError)
45import Control.Monad.Except (throwError)
45−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
46+import Text.Pandoc.Class (PandocMonad)
46
47
47type Notes = [[Block]]
48type Notes = [[Block]]
48data WriterState = WriterState { stNotes :: Notes
49data WriterState = WriterState { stNotes :: Notes
src/Text/Pandoc/Writers/Markdown.hs+2−1
@@ -58,7 +58,8 @@ import qualified Data.Vector as V
58import qualified Data.Text as T
58import qualified Data.Text as T
59import qualified Data.Set as Set
59import qualified Data.Set as Set
60import Network.HTTP ( urlEncode )
60import Network.HTTP ( urlEncode )
61−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
61+import Text.Pandoc.Error
62+import Text.Pandoc.Class (PandocMonad)
62
63
63type Notes = [[Block]]
64type Notes = [[Block]]
64type Ref = ([Inline], Target, Attr)
65type Ref = ([Inline], Target, Attr)
src/Text/Pandoc/Writers/OPML.hs+2−1
@@ -40,8 +40,9 @@ import Text.Pandoc.Writers.Markdown (writeMarkdown)
40import Text.Pandoc.Pretty
40import Text.Pandoc.Pretty
41import Text.Pandoc.Compat.Time
41import Text.Pandoc.Compat.Time
42import qualified Text.Pandoc.Builder as B
42import qualified Text.Pandoc.Builder as B
43+import Text.Pandoc.Error
43import Control.Monad.Except (throwError)
44import Control.Monad.Except (throwError)
44−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
45+import Text.Pandoc.Class (PandocMonad)
45
46
46-- | Convert Pandoc document to string in OPML format.
47-- | Convert Pandoc document to string in OPML format.
47writeOPML :: PandocMonad m => WriterOptions -> Pandoc -> m String
48writeOPML :: PandocMonad m => WriterOptions -> Pandoc -> m String
src/Text/Pandoc/Writers/RTF.hs+2−1
@@ -44,7 +44,8 @@ import qualified Data.Map as M
44import Text.Printf ( printf )
44import Text.Printf ( printf )
45import Text.Pandoc.ImageSize
45import Text.Pandoc.ImageSize
46import Control.Monad.Except (throwError)
46import Control.Monad.Except (throwError)
47−import Text.Pandoc.Class (PandocMonad, PandocExecutionError(..))
47+import Text.Pandoc.Error
48+import Text.Pandoc.Class (PandocMonad)
48import qualified Text.Pandoc.Class as P
49import qualified Text.Pandoc.Class as P
49
50
50-- | Convert Image inlines into a raw RTF embedded image, read from a file,
51-- | Convert Image inlines into a raw RTF embedded image, read from a file,
src/Text/Pandoc/Writers/Texinfo.hs+2−1
@@ -45,7 +45,8 @@ import Network.URI ( isURI, unEscapeString )
45import System.FilePath
45import System.FilePath
46import qualified Data.Set as Set
46import qualified Data.Set as Set
47import Control.Monad.Except (throwError)
47import Control.Monad.Except (throwError)
48−import Text.Pandoc.Class ( PandocMonad, PandocExecutionError(..) )
48+import Text.Pandoc.Error
49+import Text.Pandoc.Class ( PandocMonad)
49
50
50data WriterState =
51data WriterState =
51 WriterState { stStrikeout :: Bool -- document contains strikeout
52 WriterState { stStrikeout :: Bool -- document contains strikeout