@@ -6,6 +6,8 @@ module Hakyll.Core.Compiler
66 , getIdentifier
77 , getRoute
88 , getRouteFor
9+ , getMetadata
10+ , getMetadataFor
911 , getResourceBody
1012 , getResourceString
1113 , getResourceLBS
@@ -20,22 +22,24 @@ module Hakyll.Core.Compiler
2022
2123
2224--------------------------------------------------------------------------------
23−import Control.Applicative ((<$>))
24−import Data.Binary (Binary)
25−import Data.ByteString.Lazy (ByteString)
26−import Data.Typeable (Typeable)
27−import Prelude hiding (id, (.))
28−import System.Environment (getProgName)
25+import Control.Applicative ((<$>))
26+import Data.Binary (Binary)
27+import Data.ByteString.Lazy (ByteString)
28+import Data.Typeable (Typeable)
29+import Prelude hiding (id, (.))
30+import System.Environment (getProgName)
2931
3032
3133--------------------------------------------------------------------------------
3234import Hakyll.Core.Compiler.Internal
3335import Hakyll.Core.Compiler.Require
36+import Hakyll.Core.Dependencies
3437import Hakyll.Core.Identifier
3538import Hakyll.Core.Logger
39+import Hakyll.Core.Metadata
3640import Hakyll.Core.ResourceProvider
3741import Hakyll.Core.Routes
38−import qualified Hakyll.Core.Store as Store
42+import qualified Hakyll.Core.Store as Store
3943import Hakyll.Core.Writable
4044
4145
@@ -59,6 +63,19 @@ getRouteFor identifier = do
5963 return $ runRoutes routes identifier
6064
6165
66+--------------------------------------------------------------------------------
67+getMetadata :: Compiler Metadata
68+getMetadata = getIdentifier >>= getMetadataFor
69+
70+
71+--------------------------------------------------------------------------------
72+getMetadataFor :: Identifier -> Compiler Metadata
73+getMetadataFor identifier = do
74+ provider <- compilerProvider <$> compilerAsk
75+ compilerTell [IdentifierDependency identifier]
76+ compilerUnsafeIO $ resourceMetadata provider identifier
77+
78+
6279--------------------------------------------------------------------------------
6380-- | Get the body of the underlying resource
6481getResourceBody :: Compiler String