@@ -4,11 +4,17 @@
44--
55module Hakyll.Core.ResourceProvider
66 ( ResourceProvider (..)
7+ , resourceDigest
78 ) where
89
9−import Hakyll.Core.Identifier
10+import Control.Monad ((<=<))
11+import Data.Word (Word8)
1012
1113import qualified Data.ByteString.Lazy as LB
14+import OpenSSL.Digest.ByteString.Lazy (digest)
15+import OpenSSL.Digest (MessageDigest (MD5))
16+
17+import Hakyll.Core.Identifier
1218
1319-- | A value responsible for retrieving and listing resources
1420--
@@ -20,3 +26,8 @@ data ResourceProvider = ResourceProvider
2026 , -- | Retrieve a certain resource as lazy bytestring
2127 resourceLazyByteString :: Identifier -> IO LB.ByteString
2228 }
29+
30+-- | Retrieve a digest for a given resource
31+--
32+resourceDigest :: ResourceProvider -> Identifier -> IO [Word8]
33+resourceDigest provider = digest MD5 <=< resourceLazyByteString provider