diff options
Diffstat (limited to 'trypandoc/trypandoc.hs')
| -rw-r--r-- | trypandoc/trypandoc.hs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/trypandoc/trypandoc.hs b/trypandoc/trypandoc.hs index c530f45f2..8f1b3278e 100644 --- a/trypandoc/trypandoc.hs +++ b/trypandoc/trypandoc.hs @@ -8,6 +8,7 @@ import Network.HTTP.Types.Status (status200) import Network.HTTP.Types.Header (hContentType) import Network.HTTP.Types.URI (queryToQueryText) import Text.Pandoc +import Text.Pandoc.Error (PandocError) import Text.Pandoc.Shared (tabFilter) import Text.Highlighting.Kate (pygments) import Data.Aeson @@ -29,7 +30,9 @@ app req respond = do $ lookup fromFormat fromFormats let writer = maybe (error $ "could not find writer for " ++ T.unpack toFormat) id $ lookup toFormat toFormats - let result = T.pack $ writer $ reader $ tabFilter 4 $ T.unpack text + let result = case reader $ tabFilter 4 $ T.unpack text of + Right doc -> T.pack $ writer doc + Left err -> error (show err) let output = encode $ object [ T.pack "result" .= result , T.pack "name" .= if fromFormat == "markdown_strict" @@ -55,7 +58,7 @@ readerOpts :: ReaderOptions readerOpts = def { readerParseRaw = True, readerSmart = True } -fromFormats :: [(Text, String -> Pandoc)] +fromFormats :: [(Text, String -> Either PandocError Pandoc)] fromFormats = [ ("native" , readNative) ,("json" , Text.Pandoc.readJSON readerOpts) |
