diff options
Diffstat (limited to 'src/Hakyll/Core/Configuration.hs')
-rw-r--r-- | src/Hakyll/Core/Configuration.hs | 25 |
1 files changed, 24 insertions, 1 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 |