Expose getDefaultDataFile in both Shared and Class.
This commit is contained in:
parent
ed4f6b348a
commit
6aaf8f4770
4 changed files with 18 additions and 7 deletions
|
@ -84,8 +84,8 @@ import Text.Pandoc.PDF (makePDF)
|
||||||
import Text.Pandoc.Process (pipeProcess)
|
import Text.Pandoc.Process (pipeProcess)
|
||||||
import Text.Pandoc.SelfContained (makeDataURI, makeSelfContained)
|
import Text.Pandoc.SelfContained (makeDataURI, makeSelfContained)
|
||||||
import Text.Pandoc.Shared (headerShift, isURI, openURL, readDataFile,
|
import Text.Pandoc.Shared (headerShift, isURI, openURL, readDataFile,
|
||||||
readDataFileUTF8, safeRead, tabFilter,
|
readDataFileUTF8, readDefaultDataFile,
|
||||||
eastAsianLineBreakFilter)
|
safeRead, tabFilter, eastAsianLineBreakFilter)
|
||||||
import qualified Text.Pandoc.UTF8 as UTF8
|
import qualified Text.Pandoc.UTF8 as UTF8
|
||||||
import Text.Pandoc.XML (toEntities)
|
import Text.Pandoc.XML (toEntities)
|
||||||
import Text.Printf
|
import Text.Printf
|
||||||
|
@ -1007,7 +1007,7 @@ options =
|
||||||
, Option "" ["print-default-data-file"]
|
, Option "" ["print-default-data-file"]
|
||||||
(ReqArg
|
(ReqArg
|
||||||
(\arg _ -> do
|
(\arg _ -> do
|
||||||
readDataFile Nothing arg >>= BS.hPutStr stdout
|
readDefaultDataFile arg >>= BS.hPutStr stdout
|
||||||
exitSuccess)
|
exitSuccess)
|
||||||
"FILE")
|
"FILE")
|
||||||
"" -- "Print default data file"
|
"" -- "Print default data file"
|
||||||
|
|
|
@ -80,6 +80,7 @@ import Codec.Archive.Zip (Archive, fromArchive, emptyArchive)
|
||||||
import Data.Unique (hashUnique)
|
import Data.Unique (hashUnique)
|
||||||
import qualified Data.Unique as IO (newUnique)
|
import qualified Data.Unique as IO (newUnique)
|
||||||
import qualified Text.Pandoc.Shared as IO ( readDataFile
|
import qualified Text.Pandoc.Shared as IO ( readDataFile
|
||||||
|
, readDefaultDataFile
|
||||||
, openURL )
|
, openURL )
|
||||||
import qualified Text.Pandoc.UTF8 as UTF8
|
import qualified Text.Pandoc.UTF8 as UTF8
|
||||||
import Text.Pandoc.Compat.Time (UTCTime)
|
import Text.Pandoc.Compat.Time (UTCTime)
|
||||||
|
@ -152,6 +153,8 @@ class (Functor m, Applicative m, Monad m, MonadError PandocError m)
|
||||||
-- | Read the strict ByteString contents from a file path,
|
-- | Read the strict ByteString contents from a file path,
|
||||||
-- raising an error on failure.
|
-- raising an error on failure.
|
||||||
readFileStrict :: FilePath -> m B.ByteString
|
readFileStrict :: FilePath -> m B.ByteString
|
||||||
|
-- | Read file from from Cabal data directory.
|
||||||
|
readDefaultDataFile :: FilePath -> m B.ByteString
|
||||||
-- | Read file from specified user data directory or,
|
-- | Read file from specified user data directory or,
|
||||||
-- if not found there, from Cabal data directory.
|
-- if not found there, from Cabal data directory.
|
||||||
readDataFile :: Maybe FilePath -> FilePath -> m B.ByteString
|
readDataFile :: Maybe FilePath -> FilePath -> m B.ByteString
|
||||||
|
@ -326,6 +329,7 @@ instance PandocMonad PandocIO where
|
||||||
Left e -> throwError $ PandocHttpError u e
|
Left e -> throwError $ PandocHttpError u e
|
||||||
readFileLazy s = liftIOError BL.readFile s
|
readFileLazy s = liftIOError BL.readFile s
|
||||||
readFileStrict s = liftIOError B.readFile s
|
readFileStrict s = liftIOError B.readFile s
|
||||||
|
readDefaultDataFile fname = liftIOError IO.readDefaultDataFile fname
|
||||||
readDataFile mfp fname = liftIOError (IO.readDataFile mfp) fname
|
readDataFile mfp fname = liftIOError (IO.readDataFile mfp) fname
|
||||||
glob = liftIO . IO.glob
|
glob = liftIO . IO.glob
|
||||||
getModificationTime fp = liftIOError IO.getModificationTime fp
|
getModificationTime fp = liftIOError IO.getModificationTime fp
|
||||||
|
@ -602,11 +606,11 @@ instance PandocMonad PandocPure where
|
||||||
case infoFileContents <$> getFileInfo fp fps of
|
case infoFileContents <$> getFileInfo fp fps of
|
||||||
Just bs -> return bs
|
Just bs -> return bs
|
||||||
Nothing -> throwError $ PandocResourceNotFound fp
|
Nothing -> throwError $ PandocResourceNotFound fp
|
||||||
readDataFile Nothing "reference.docx" =
|
readDefaultDataFile "reference.docx" =
|
||||||
(B.concat . BL.toChunks . fromArchive) <$> getsPureState stReferenceDocx
|
(B.concat . BL.toChunks . fromArchive) <$> getsPureState stReferenceDocx
|
||||||
readDataFile Nothing "reference.odt" =
|
readDefaultDataFile "reference.odt" =
|
||||||
(B.concat . BL.toChunks . fromArchive) <$> getsPureState stReferenceODT
|
(B.concat . BL.toChunks . fromArchive) <$> getsPureState stReferenceODT
|
||||||
readDataFile Nothing fname = do
|
readDefaultDataFile fname = do
|
||||||
let fname' = if fname == "MANUAL.txt" then fname else "data" </> fname
|
let fname' = if fname == "MANUAL.txt" then fname else "data" </> fname
|
||||||
readFileStrict fname'
|
readFileStrict fname'
|
||||||
readDataFile (Just userDir) fname = do
|
readDataFile (Just userDir) fname = do
|
||||||
|
@ -614,6 +618,7 @@ instance PandocMonad PandocPure where
|
||||||
case infoFileContents <$> getFileInfo (userDir </> fname) userDirFiles of
|
case infoFileContents <$> getFileInfo (userDir </> fname) userDirFiles of
|
||||||
Just bs -> return bs
|
Just bs -> return bs
|
||||||
Nothing -> readDataFile Nothing fname
|
Nothing -> readDataFile Nothing fname
|
||||||
|
readDataFile Nothing fname = readDefaultDataFile fname
|
||||||
|
|
||||||
glob s = do
|
glob s = do
|
||||||
FileTree ftmap <- getsPureState stFiles
|
FileTree ftmap <- getsPureState stFiles
|
||||||
|
@ -640,6 +645,7 @@ instance PandocMonad m => PandocMonad (ParsecT s st m) where
|
||||||
openURL = lift . openURL
|
openURL = lift . openURL
|
||||||
readFileLazy = lift . readFileLazy
|
readFileLazy = lift . readFileLazy
|
||||||
readFileStrict = lift . readFileStrict
|
readFileStrict = lift . readFileStrict
|
||||||
|
readDefaultDataFile = lift . readDefaultDataFile
|
||||||
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
||||||
glob = lift . glob
|
glob = lift . glob
|
||||||
getModificationTime = lift . getModificationTime
|
getModificationTime = lift . getModificationTime
|
||||||
|
@ -668,6 +674,7 @@ instance PandocMonad m => PandocMonad (ReaderT r m) where
|
||||||
openURL = lift . openURL
|
openURL = lift . openURL
|
||||||
readFileLazy = lift . readFileLazy
|
readFileLazy = lift . readFileLazy
|
||||||
readFileStrict = lift . readFileStrict
|
readFileStrict = lift . readFileStrict
|
||||||
|
readDefaultDataFile = lift . readDefaultDataFile
|
||||||
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
||||||
glob = lift . glob
|
glob = lift . glob
|
||||||
getModificationTime = lift . getModificationTime
|
getModificationTime = lift . getModificationTime
|
||||||
|
@ -684,6 +691,7 @@ instance (PandocMonad m, Monoid w) => PandocMonad (WriterT w m) where
|
||||||
openURL = lift . openURL
|
openURL = lift . openURL
|
||||||
readFileLazy = lift . readFileLazy
|
readFileLazy = lift . readFileLazy
|
||||||
readFileStrict = lift . readFileStrict
|
readFileStrict = lift . readFileStrict
|
||||||
|
readDefaultDataFile = lift . readDefaultDataFile
|
||||||
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
||||||
glob = lift . glob
|
glob = lift . glob
|
||||||
getModificationTime = lift . getModificationTime
|
getModificationTime = lift . getModificationTime
|
||||||
|
@ -700,6 +708,7 @@ instance (PandocMonad m, Monoid w) => PandocMonad (RWST r w st m) where
|
||||||
openURL = lift . openURL
|
openURL = lift . openURL
|
||||||
readFileLazy = lift . readFileLazy
|
readFileLazy = lift . readFileLazy
|
||||||
readFileStrict = lift . readFileStrict
|
readFileStrict = lift . readFileStrict
|
||||||
|
readDefaultDataFile = lift . readDefaultDataFile
|
||||||
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
||||||
glob = lift . glob
|
glob = lift . glob
|
||||||
getModificationTime = lift . getModificationTime
|
getModificationTime = lift . getModificationTime
|
||||||
|
@ -716,6 +725,7 @@ instance PandocMonad m => PandocMonad (StateT st m) where
|
||||||
openURL = lift . openURL
|
openURL = lift . openURL
|
||||||
readFileLazy = lift . readFileLazy
|
readFileLazy = lift . readFileLazy
|
||||||
readFileStrict = lift . readFileStrict
|
readFileStrict = lift . readFileStrict
|
||||||
|
readDefaultDataFile = lift . readDefaultDataFile
|
||||||
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
readDataFile mbuserdir = lift . readDataFile mbuserdir
|
||||||
glob = lift . glob
|
glob = lift . glob
|
||||||
getModificationTime = lift . getModificationTime
|
getModificationTime = lift . getModificationTime
|
||||||
|
|
|
@ -78,6 +78,7 @@ module Text.Pandoc.Shared (
|
||||||
inDirectory,
|
inDirectory,
|
||||||
getDefaultReferenceDocx,
|
getDefaultReferenceDocx,
|
||||||
getDefaultReferenceODT,
|
getDefaultReferenceODT,
|
||||||
|
readDefaultDataFile,
|
||||||
readDataFile,
|
readDataFile,
|
||||||
readDataFileUTF8,
|
readDataFileUTF8,
|
||||||
openURL,
|
openURL,
|
||||||
|
|
|
@ -231,7 +231,7 @@ writeDocx opts doc@(Pandoc meta _) = do
|
||||||
username <- P.lookupEnv "USERNAME"
|
username <- P.lookupEnv "USERNAME"
|
||||||
utctime <- P.getCurrentTime
|
utctime <- P.getCurrentTime
|
||||||
distArchive <- (toArchive . BL.fromStrict) <$>
|
distArchive <- (toArchive . BL.fromStrict) <$>
|
||||||
P.readDataFile Nothing "reference.docx"
|
P.readDefaultDataFile "reference.docx"
|
||||||
refArchive <- case writerReferenceDoc opts of
|
refArchive <- case writerReferenceDoc opts of
|
||||||
Just f -> toArchive <$> P.readFileLazy f
|
Just f -> toArchive <$> P.readFileLazy f
|
||||||
Nothing -> (toArchive . BL.fromStrict) <$>
|
Nothing -> (toArchive . BL.fromStrict) <$>
|
||||||
|
|
Loading…
Add table
Reference in a new issue