git.iko.soy/typeable/pandoc
on master help sign in
Add getFileName to PandocMonad.
6c5952eJohn MacFarlane
src/Text/Pandoc/Class.hs+16−2
@@ -142,7 +142,7 @@ import qualified Debug.Trace
142#ifdef EMBED_DATA_FILES
142#ifdef EMBED_DATA_FILES
143import Text.Pandoc.Data (dataFiles)
143import Text.Pandoc.Data (dataFiles)
144#else
144#else
145−import Paths_pandoc (getDataFileName)
145+import qualified Paths_pandoc as Paths
146#endif
146#endif
147
147
148-- | The PandocMonad typeclass contains all the potentially
148-- | The PandocMonad typeclass contains all the potentially
@@ -177,6 +177,8 @@ class (Functor m, Applicative m, Monad m, MonadError PandocError m)
177 glob :: String -> m [FilePath]
177 glob :: String -> m [FilePath]
178 -- | Returns True if file exists.
178 -- | Returns True if file exists.
179 fileExists :: FilePath -> m Bool
179 fileExists :: FilePath -> m Bool
180+ -- | Returns the path of data file.
181+ getDataFileName :: FilePath -> m FilePath
180 -- | Return the modification time of a file.
182 -- | Return the modification time of a file.
181 getModificationTime :: FilePath -> m UTCTime
183 getModificationTime :: FilePath -> m UTCTime
182 -- | Get the value of the 'CommonState' used by all instances
184 -- | Get the value of the 'CommonState' used by all instances
@@ -419,7 +421,12 @@ instance PandocMonad PandocIO where
419
421
420 glob = liftIOError IO.glob
422 glob = liftIOError IO.glob
421 fileExists = liftIOError Directory.doesFileExist
423 fileExists = liftIOError Directory.doesFileExist
424+#ifdef EMBED_DATA_FILES
425+ getDataFileName = return
426+#else
427+ getDataFileName = liftIOError Paths.getDataFileName
428+#endif
422− getModificationTime fp = liftIOError IO.getModificationTime fp
429+ getModificationTime = liftIOError IO.getModificationTime
423 getCommonState = PandocIO $ lift get
430 getCommonState = PandocIO $ lift get
424 putCommonState x = PandocIO $ lift $ put x
431 putCommonState x = PandocIO $ lift $ put x
425 logOutput msg = liftIO $ do
432 logOutput msg = liftIO $ do
@@ -817,6 +824,8 @@ instance PandocMonad PandocPure where
817 Nothing -> return False
824 Nothing -> return False
818 Just _ -> return True
825 Just _ -> return True
819
826
827+ getDataFileName fp = return $ "data/" ++ fp
828+
820 getModificationTime fp = do
829 getModificationTime fp = do
821 fps <- getsPureState stFiles
830 fps <- getsPureState stFiles
822 case infoFileMTime <$> getFileInfo fp fps of
831 case infoFileMTime <$> getFileInfo fp fps of
@@ -840,6 +849,7 @@ instance PandocMonad m => PandocMonad (ParsecT s st m) where
840 readFileStrict = lift . readFileStrict
849 readFileStrict = lift . readFileStrict
841 glob = lift . glob
850 glob = lift . glob
842 fileExists = lift . fileExists
851 fileExists = lift . fileExists
852+ getDataFileName = lift . getDataFileName
843 getModificationTime = lift . getModificationTime
853 getModificationTime = lift . getModificationTime
844 getCommonState = lift getCommonState
854 getCommonState = lift getCommonState
845 putCommonState = lift . putCommonState
855 putCommonState = lift . putCommonState
@@ -868,6 +878,7 @@ instance PandocMonad m => PandocMonad (ReaderT r m) where
868 readFileStrict = lift . readFileStrict
878 readFileStrict = lift . readFileStrict
869 glob = lift . glob
879 glob = lift . glob
870 fileExists = lift . fileExists
880 fileExists = lift . fileExists
881+ getDataFileName = lift . getDataFileName
871 getModificationTime = lift . getModificationTime
882 getModificationTime = lift . getModificationTime
872 getCommonState = lift getCommonState
883 getCommonState = lift getCommonState
873 putCommonState = lift . putCommonState
884 putCommonState = lift . putCommonState
@@ -884,6 +895,7 @@ instance (PandocMonad m, Monoid w) => PandocMonad (WriterT w m) where
884 readFileStrict = lift . readFileStrict
895 readFileStrict = lift . readFileStrict
885 glob = lift . glob
896 glob = lift . glob
886 fileExists = lift . fileExists
897 fileExists = lift . fileExists
898+ getDataFileName = lift . getDataFileName
887 getModificationTime = lift . getModificationTime
899 getModificationTime = lift . getModificationTime
888 getCommonState = lift getCommonState
900 getCommonState = lift getCommonState
889 putCommonState = lift . putCommonState
901 putCommonState = lift . putCommonState
@@ -900,6 +912,7 @@ instance (PandocMonad m, Monoid w) => PandocMonad (RWST r w st m) where
900 readFileStrict = lift . readFileStrict
912 readFileStrict = lift . readFileStrict
901 glob = lift . glob
913 glob = lift . glob
902 fileExists = lift . fileExists
914 fileExists = lift . fileExists
915+ getDataFileName = lift . getDataFileName
903 getModificationTime = lift . getModificationTime
916 getModificationTime = lift . getModificationTime
904 getCommonState = lift getCommonState
917 getCommonState = lift getCommonState
905 putCommonState = lift . putCommonState
918 putCommonState = lift . putCommonState
@@ -916,6 +929,7 @@ instance PandocMonad m => PandocMonad (StateT st m) where
916 readFileStrict = lift . readFileStrict
929 readFileStrict = lift . readFileStrict
917 glob = lift . glob
930 glob = lift . glob
918 fileExists = lift . fileExists
931 fileExists = lift . fileExists
932+ getDataFileName = lift . getDataFileName
919 getModificationTime = lift . getModificationTime
933 getModificationTime = lift . getModificationTime
920 getCommonState = lift getCommonState
934 getCommonState = lift getCommonState
921 putCommonState = lift . putCommonState
935 putCommonState = lift . putCommonState