aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2016-12-10 12:11:25 +0100
committerJohn MacFarlane <jgm@berkeley.edu>2017-01-25 17:07:41 +0100
commit4b4670ef6d1a3cf01e505813205d8c16734337e3 (patch)
treeaa17494153bcfa5ebf71e5cad9cdcb5dab30af42
parent3549e171bb6cfdb4cd65772777f6225544f12bfe (diff)
downloadpandoc-4b4670ef6d1a3cf01e505813205d8c16734337e3.tar.gz
pandoc.hs - moved some utility functions out of main loop.
-rw-r--r--pandoc.hs58
1 files changed, 30 insertions, 28 deletions
diff --git a/pandoc.hs b/pandoc.hs
index 7b17d229d..1d0b453e0 100644
--- a/pandoc.hs
+++ b/pandoc.hs
@@ -1413,30 +1413,10 @@ convertWithOpts opts args = do
then 0
else tabStop)
- readSource :: MonadIO m => FilePath -> m String
- readSource "-" = liftIO UTF8.getContents
- readSource src = case parseURI src of
- Just u | uriScheme u `elem` ["http:","https:"] ->
- readURI src
- | uriScheme u == "file:" ->
- liftIO $ UTF8.readFile (uriPath u)
- _ -> liftIO $ UTF8.readFile src
-
- readURI :: MonadIO m => FilePath -> m String
- readURI src = do
- res <- liftIO $ openURL src
- case res of
- Left e -> liftIO $ throwIO e
- Right (bs,_) -> return $ UTF8.toString bs
-
readSources :: MonadIO m => [FilePath] -> m String
readSources srcs = convertTabs . intercalate "\n" <$>
mapM readSource srcs
- readFile' :: MonadIO m => FilePath -> m B.ByteString
- readFile' "-" = liftIO $ B.getContents
- readFile' f = liftIO $ B.readFile f
-
let runIO' :: PandocIO a -> IO a
runIO' f = do
(res, warnings) <- runIOorExplode $ do
@@ -1472,14 +1452,6 @@ convertWithOpts opts args = do
applyTransforms transforms >=>
applyFilters datadir filters' [format]) doc
- let writeFnBinary :: MonadIO m => FilePath -> B.ByteString -> m ()
- writeFnBinary "-" = liftIO . B.putStr
- writeFnBinary f = liftIO . B.writeFile (UTF8.encodePath f)
-
- let writerFn :: MonadIO m => FilePath -> String -> m ()
- writerFn "-" = liftIO . UTF8.putStr
- writerFn f = liftIO . UTF8.writeFile f
-
let writerOptions' = writerOptions{ writerMediaBag = media }
case writer of
-- StringWriter f -> f writerOptions doc' >>= writerFn outputFile
@@ -1520,3 +1492,33 @@ convertWithOpts opts args = do
else id
output <- runIO' $ f writerOptions' doc'
selfcontain (output ++ ['\n' | not standalone']) >>= writerFn outputFile . handleEntities
+
+readSource :: MonadIO m => FilePath -> m String
+readSource "-" = liftIO UTF8.getContents
+readSource src = case parseURI src of
+ Just u | uriScheme u `elem` ["http:","https:"] ->
+ readURI src
+ | uriScheme u == "file:" ->
+ liftIO $ UTF8.readFile (uriPath u)
+ _ -> liftIO $ UTF8.readFile src
+
+readURI :: MonadIO m => FilePath -> m String
+readURI src = do
+ res <- liftIO $ openURL src
+ case res of
+ Left e -> liftIO $ throwIO e
+ Right (bs,_) -> return $ UTF8.toString bs
+
+readFile' :: MonadIO m => FilePath -> m B.ByteString
+readFile' "-" = liftIO $ B.getContents
+readFile' f = liftIO $ B.readFile f
+
+writeFnBinary :: MonadIO m => FilePath -> B.ByteString -> m ()
+writeFnBinary "-" = liftIO . B.putStr
+writeFnBinary f = liftIO . B.writeFile (UTF8.encodePath f)
+
+writerFn :: MonadIO m => FilePath -> String -> m ()
+writerFn "-" = liftIO . UTF8.putStr
+writerFn f = liftIO . UTF8.writeFile f
+
+