1-- | A concrete 'ResourceProvider' that gets it's resources from the filesystem
3module Hakyll.Core.Resource.Provider.File
7import Control.Applicative ((<$>))
9import Data.Time (readTime)
10import System.Directory (getModificationTime)
11import System.Locale (defaultTimeLocale)
12import System.Time (formatCalendarTime, toCalendarTime)
13import qualified Data.ByteString.Lazy as LB
15import Hakyll.Core.Resource
16import Hakyll.Core.Resource.Provider
17import Hakyll.Core.Util.File
18import Hakyll.Core.Configuration
20-- | Create a filesystem-based 'ResourceProvider'
22fileResourceProvider :: HakyllConfiguration -> IO ResourceProvider
23fileResourceProvider configuration = do
24 -- Retrieve a list of paths
25 list <- map Resource . filter (not . shouldIgnoreFile configuration) <$>
26 getRecursiveContents False "."
27 makeResourceProvider list (readFile . unResource)
28 (LB.readFile . unResource)
31 mtime (Resource r) = do
32 ct <- toCalendarTime =<< getModificationTime r
33 let str = formatCalendarTime defaultTimeLocale "%s" ct
34 return $ readTime defaultTimeLocale "%s" str
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list