diff options
author | John MacFarlane <jgm@berkeley.edu> | 2016-12-10 12:11:25 +0100 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-01-25 17:07:41 +0100 |
commit | 4b4670ef6d1a3cf01e505813205d8c16734337e3 (patch) | |
tree | aa17494153bcfa5ebf71e5cad9cdcb5dab30af42 | |
parent | 3549e171bb6cfdb4cd65772777f6225544f12bfe (diff) | |
download | pandoc-4b4670ef6d1a3cf01e505813205d8c16734337e3.tar.gz |
pandoc.hs - moved some utility functions out of main loop.
-rw-r--r-- | pandoc.hs | 58 |
1 files changed, 30 insertions, 28 deletions
@@ -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 + + |