diff options
| author | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2011-02-19 17:04:50 +0100 |
|---|---|---|
| committer | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2011-02-19 17:04:50 +0100 |
| commit | f04efbad3ed6f5cbc215f8aa72b1bd0203712768 (patch) | |
| tree | c32ff0981e158739ea1bca085f1e0f3d8a73c4e6 /src/Hakyll/Core | |
| parent | b89aad6178b151a859469a3ae5c6ed4e6f57cad6 (diff) | |
| download | hakyll-f04efbad3ed6f5cbc215f8aa72b1bd0203712768.tar.gz | |
Preview/INotify now works
Diffstat (limited to 'src/Hakyll/Core')
| -rw-r--r-- | src/Hakyll/Core/Configuration.hs | 25 | ||||
| -rw-r--r-- | src/Hakyll/Core/ResourceProvider/FileResourceProvider.hs | 8 | ||||
| -rw-r--r-- | src/Hakyll/Core/Run.hs | 2 |
3 files changed, 30 insertions, 5 deletions
diff --git a/src/Hakyll/Core/Configuration.hs b/src/Hakyll/Core/Configuration.hs index 3a7456f..242b68f 100644 --- a/src/Hakyll/Core/Configuration.hs +++ b/src/Hakyll/Core/Configuration.hs @@ -5,12 +5,26 @@ module Hakyll.Core.Configuration , defaultHakyllConfiguration ) where +import System.FilePath (takeFileName) +import Data.List (isPrefixOf, isSuffixOf) + data HakyllConfiguration = HakyllConfiguration { -- | Directory in which the output written destinationDirectory :: FilePath , -- | Directory where hakyll's internal store is kept storeDirectory :: FilePath - } deriving (Show) + , -- | Function to determine ignored files + -- + -- In 'defaultHakyllConfiguration', the following files are ignored: + -- + -- * files starting with a @.@ + -- + -- * files ending with a @~@ + -- + -- * files ending with @.swp@ + -- + ignoreFile :: FilePath -> Bool + } -- | Default configuration for a hakyll application -- @@ -18,4 +32,13 @@ defaultHakyllConfiguration :: HakyllConfiguration defaultHakyllConfiguration = HakyllConfiguration { destinationDirectory = "_site" , storeDirectory = "_cache" + , ignoreFile = ignoreFile' } + where + ignoreFile' path + | "." `isPrefixOf` fileName = True + | "~" `isSuffixOf` fileName = True + | ".swp" `isSuffixOf` fileName = True + | otherwise = False + where + fileName = takeFileName path diff --git a/src/Hakyll/Core/ResourceProvider/FileResourceProvider.hs b/src/Hakyll/Core/ResourceProvider/FileResourceProvider.hs index 2f040b3..0d89b21 100644 --- a/src/Hakyll/Core/ResourceProvider/FileResourceProvider.hs +++ b/src/Hakyll/Core/ResourceProvider/FileResourceProvider.hs @@ -11,13 +11,15 @@ import qualified Data.ByteString.Lazy as LB import Hakyll.Core.ResourceProvider import Hakyll.Core.Identifier import Hakyll.Core.Util.File +import Hakyll.Core.Configuration -- | Create a filesystem-based 'ResourceProvider' -- -fileResourceProvider :: IO ResourceProvider -fileResourceProvider = do +fileResourceProvider :: HakyllConfiguration -> IO ResourceProvider +fileResourceProvider configuration = do -- Retrieve a list of identifiers - list <- map parseIdentifier <$> getRecursiveContents False "." + list <- map parseIdentifier . filter (not . ignoreFile configuration) <$> + getRecursiveContents False "." -- Construct a resource provider return ResourceProvider diff --git a/src/Hakyll/Core/Run.hs b/src/Hakyll/Core/Run.hs index b59fdac..b4c69f1 100644 --- a/src/Hakyll/Core/Run.hs +++ b/src/Hakyll/Core/Run.hs @@ -37,7 +37,7 @@ import Hakyll.Core.Configuration run :: HakyllConfiguration -> Rules -> IO RuleSet run configuration rules = do store <- makeStore $ storeDirectory configuration - provider <- fileResourceProvider + provider <- fileResourceProvider configuration let ruleSet = runRules rules provider compilers = rulesCompilers ruleSet |
