git.iko.soy/typeable/pandoc
on master help sign in
pandoc.hs - moved some utility functions out of main loop.
commit4b4670ef6d1a3cf01e505813205d8c16734337e3 authorJohn MacFarlane <jgm@berkeley.edu> dateSat 10 Dec 2016, 12:11 (10 years ago) parent3549e17
1 file changed+30−28
pandoc.hs+30−28
pandoc.hs+30−28
@@ -1413,30 +1413,10 @@ convertWithOpts opts args = do
14131413 then 0
14141414 else tabStop)
14151415
1416− readSource :: MonadIO m => FilePath -> m String
1417− readSource "-" = liftIO UTF8.getContents
1418− readSource src = case parseURI src of
1419− Just u | uriScheme u `elem` ["http:","https:"] ->
1420− readURI src
1421− | uriScheme u == "file:" ->
1422− liftIO $ UTF8.readFile (uriPath u)
1423− _ -> liftIO $ UTF8.readFile src
1424−
1425− readURI :: MonadIO m => FilePath -> m String
1426− readURI src = do
1427− res <- liftIO $ openURL src
1428− case res of
1429− Left e -> liftIO $ throwIO e
1430− Right (bs,_) -> return $ UTF8.toString bs
1431−
14321416 readSources :: MonadIO m => [FilePath] -> m String
14331417 readSources srcs = convertTabs . intercalate "\n" <$>
14341418 mapM readSource srcs
14351419
1436− readFile' :: MonadIO m => FilePath -> m B.ByteString
1437− readFile' "-" = liftIO $ B.getContents
1438− readFile' f = liftIO $ B.readFile f
1439−
14401420 let runIO' :: PandocIO a -> IO a
14411421 runIO' f = do
14421422 (res, warnings) <- runIOorExplode $ do
@@ -1472,14 +1452,6 @@ convertWithOpts opts args = do
14721452 applyTransforms transforms >=>
14731453 applyFilters datadir filters' [format]) doc
14741454
1475− let writeFnBinary :: MonadIO m => FilePath -> B.ByteString -> m ()
1476− writeFnBinary "-" = liftIO . B.putStr
1477− writeFnBinary f = liftIO . B.writeFile (UTF8.encodePath f)
1478−
1479− let writerFn :: MonadIO m => FilePath -> String -> m ()
1480− writerFn "-" = liftIO . UTF8.putStr
1481− writerFn f = liftIO . UTF8.writeFile f
1482−
14831455 let writerOptions' = writerOptions{ writerMediaBag = media }
14841456 case writer of
14851457 -- StringWriter f -> f writerOptions doc' >>= writerFn outputFile
@@ -1520,3 +1492,33 @@ convertWithOpts opts args = do
15201492 else id
15211493 output <- runIO' $ f writerOptions' doc'
15221494 selfcontain (output ++ ['\n' | not standalone']) >>= writerFn outputFile . handleEntities
1495+
1496+readSource :: MonadIO m => FilePath -> m String
1497+readSource "-" = liftIO UTF8.getContents
1498+readSource src = case parseURI src of
1499+ Just u | uriScheme u `elem` ["http:","https:"] ->
1500+ readURI src
1501+ | uriScheme u == "file:" ->
1502+ liftIO $ UTF8.readFile (uriPath u)
1503+ _ -> liftIO $ UTF8.readFile src
1504+
1505+readURI :: MonadIO m => FilePath -> m String
1506+readURI src = do
1507+ res <- liftIO $ openURL src
1508+ case res of
1509+ Left e -> liftIO $ throwIO e
1510+ Right (bs,_) -> return $ UTF8.toString bs
1511+
1512+readFile' :: MonadIO m => FilePath -> m B.ByteString
1513+readFile' "-" = liftIO $ B.getContents
1514+readFile' f = liftIO $ B.readFile f
1515+
1516+writeFnBinary :: MonadIO m => FilePath -> B.ByteString -> m ()
1517+writeFnBinary "-" = liftIO . B.putStr
1518+writeFnBinary f = liftIO . B.writeFile (UTF8.encodePath f)
1519+
1520+writerFn :: MonadIO m => FilePath -> String -> m ()
1521+writerFn "-" = liftIO . UTF8.putStr
1522+writerFn f = liftIO . UTF8.writeFile f
1523+
1524+