@@ -4,11 +4,17 @@
5module Hakyll.Core.ResourceProvider
5module Hakyll.Core.ResourceProvider
6 ( ResourceProvider (..)
6 ( ResourceProvider (..)
9−import Hakyll.Core.Identifier
10+import Control.Monad ((<=<))
11+import Data.Word (Word8)
11import qualified Data.ByteString.Lazy as LB
13import qualified Data.ByteString.Lazy as LB
14+import OpenSSL.Digest.ByteString.Lazy (digest)
15+import OpenSSL.Digest (MessageDigest (MD5))
17+import Hakyll.Core.Identifier
13-- | A value responsible for retrieving and listing resources
19-- | A value responsible for retrieving and listing resources
@@ -20,3 +26,8 @@ data ResourceProvider = ResourceProvider
20 , -- | Retrieve a certain resource as lazy bytestring
26 , -- | Retrieve a certain resource as lazy bytestring
21 resourceLazyByteString :: Identifier -> IO LB.ByteString
27 resourceLazyByteString :: Identifier -> IO LB.ByteString
30+-- | Retrieve a digest for a given resource
32+resourceDigest :: ResourceProvider -> Identifier -> IO [Word8]
33+resourceDigest provider = digest MD5 <=< resourceLazyByteString provider