hakyll 3.2.8.1 → 3.3.0.0
raw patch · 6 files changed
+28/−21 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Hakyll.Core.Resource: Resource :: String -> Resource
- Hakyll.Core.Resource: newtype Resource
+ Hakyll.Core.Resource: data Resource
+ Hakyll.Core.Resource: resource :: FilePath -> Resource
- Hakyll.Core.Resource: unResource :: Resource -> String
+ Hakyll.Core.Resource: unResource :: Resource -> FilePath
Files
- hakyll.cabal +1/−1
- src/Hakyll/Core/Compiler.hs +5/−5
- src/Hakyll/Core/Resource.hs +10/−3
- src/Hakyll/Core/Resource/Provider.hs +8/−8
- src/Hakyll/Core/Resource/Provider/Dummy.hs +1/−1
- src/Hakyll/Core/Resource/Provider/File.hs +3/−3
hakyll.cabal view
@@ -1,5 +1,5 @@ Name: hakyll-Version: 3.2.8.1+Version: 3.3.0.0 Synopsis: A static website compiler library Description:
src/Hakyll/Core/Compiler.hs view
@@ -211,12 +211,12 @@ -- getResourceWith :: (ResourceProvider -> Resource -> IO a) -> Compiler Resource a-getResourceWith reader = fromJob $ \resource -> CompilerM $ do- let identifier = unResource resource+getResourceWith reader = fromJob $ \r -> CompilerM $ do+ let filePath = unResource r provider <- compilerResourceProvider <$> ask- if resourceExists provider resource- then liftIO $ reader provider resource- else throwError $ error' identifier+ if resourceExists provider r+ then liftIO $ reader provider r+ else throwError $ error' filePath where error' id' = "Hakyll.Core.Compiler.getResourceWith: resource " ++ show id' ++ " not found"
src/Hakyll/Core/Resource.hs view
@@ -1,7 +1,9 @@ -- | Module exporting the simple 'Resource' type -- module Hakyll.Core.Resource- ( Resource (..)+ ( Resource+ , unResource+ , resource , fromIdentifier , toIdentifier ) where@@ -10,8 +12,13 @@ -- | A resource ---newtype Resource = Resource {unResource :: String}- deriving (Eq, Show, Ord)+newtype Resource = Resource {unResource :: FilePath}+ deriving (Eq, Show, Ord)++-- | Smart constructor to ensure we have @/@ as path separator+--+resource :: FilePath -> Resource+resource = fromIdentifier . parseIdentifier -- | Create a resource from an identifier --
src/Hakyll/Core/Resource/Provider.hs view
@@ -68,17 +68,17 @@ -- | Check if a resource was modified -- resourceModified :: ResourceProvider -> Store -> Resource -> IO Bool-resourceModified provider store resource = do+resourceModified provider store r = do cache <- readMVar mvar- case M.lookup resource cache of+ case M.lookup r cache of -- Already in the cache Just m -> return m -- Not yet in the cache, check digests (if it exists) Nothing -> do- m <- if resourceExists provider resource- then digestModified provider store resource+ m <- if resourceExists provider r+ then digestModified provider store r else return False- modifyMVar_ mvar (return . M.insert resource m)+ modifyMVar_ mvar (return . M.insert r m) return m where mvar = resourceModifiedCache provider@@ -86,11 +86,11 @@ -- | Check if a resource digest was modified -- digestModified :: ResourceProvider -> Store -> Resource -> IO Bool-digestModified provider store resource = do+digestModified provider store r = do -- Get the latest seen digest from the store lastDigest <- storeGet store itemName identifier -- Calculate the digest for the resource- newDigest <- resourceDigest provider resource+ newDigest <- resourceDigest provider r -- Check digests if Found newDigest == lastDigest -- All is fine, not modified@@ -99,5 +99,5 @@ else do storeSet store itemName identifier newDigest return True where- identifier = toIdentifier resource+ identifier = toIdentifier r itemName = "Hakyll.Core.ResourceProvider.digestModified"
src/Hakyll/Core/Resource/Provider/Dummy.hs view
@@ -19,7 +19,7 @@ -- dummyResourceProvider :: Map String ByteString -> IO ResourceProvider dummyResourceProvider vfs = makeResourceProvider- (map Resource (M.keys vfs))+ (map resource (M.keys vfs)) (return . TL.unpack . TL.decodeUtf8 . (vfs M.!) . unResource) (return . (vfs M.!) . unResource) (const getCurrentTime)
src/Hakyll/Core/Resource/Provider/File.hs view
@@ -22,13 +22,13 @@ fileResourceProvider :: HakyllConfiguration -> IO ResourceProvider fileResourceProvider configuration = do -- Retrieve a list of paths- list <- map Resource . filter (not . shouldIgnoreFile configuration) <$>+ list <- map resource . filter (not . shouldIgnoreFile configuration) <$> getRecursiveContents False "." makeResourceProvider list (readFile . unResource) (LB.readFile . unResource)- mtime+ (mtime . unResource) where- mtime (Resource r) = do+ mtime r = do ct <- toCalendarTime =<< getModificationTime r let str = formatCalendarTime defaultTimeLocale "%s" ct return $ readTime defaultTimeLocale "%s" str