pandoc.hs - moved some utility functions out of main loop.
This commit is contained in:
parent
3549e171bb
commit
4b4670ef6d
1 changed files with 30 additions and 28 deletions
58
pandoc.hs
58
pandoc.hs
|
@ -1413,30 +1413,10 @@ convertWithOpts opts args = do
|
||||||
then 0
|
then 0
|
||||||
else tabStop)
|
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 :: MonadIO m => [FilePath] -> m String
|
||||||
readSources srcs = convertTabs . intercalate "\n" <$>
|
readSources srcs = convertTabs . intercalate "\n" <$>
|
||||||
mapM readSource srcs
|
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
|
let runIO' :: PandocIO a -> IO a
|
||||||
runIO' f = do
|
runIO' f = do
|
||||||
(res, warnings) <- runIOorExplode $ do
|
(res, warnings) <- runIOorExplode $ do
|
||||||
|
@ -1472,14 +1452,6 @@ convertWithOpts opts args = do
|
||||||
applyTransforms transforms >=>
|
applyTransforms transforms >=>
|
||||||
applyFilters datadir filters' [format]) doc
|
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 }
|
let writerOptions' = writerOptions{ writerMediaBag = media }
|
||||||
case writer of
|
case writer of
|
||||||
-- StringWriter f -> f writerOptions doc' >>= writerFn outputFile
|
-- StringWriter f -> f writerOptions doc' >>= writerFn outputFile
|
||||||
|
@ -1520,3 +1492,33 @@ convertWithOpts opts args = do
|
||||||
else id
|
else id
|
||||||
output <- runIO' $ f writerOptions' doc'
|
output <- runIO' $ f writerOptions' doc'
|
||||||
selfcontain (output ++ ['\n' | not standalone']) >>= writerFn outputFile . handleEntities
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue