summaryrefslogtreecommitdiff
path: root/src/Hakyll
diff options
context:
space:
mode:
Diffstat (limited to 'src/Hakyll')
-rw-r--r--src/Hakyll/Web/Template/Context.hs15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/Hakyll/Web/Template/Context.hs b/src/Hakyll/Web/Template/Context.hs
index 43857ff..6879187 100644
--- a/src/Hakyll/Web/Template/Context.hs
+++ b/src/Hakyll/Web/Template/Context.hs
@@ -21,6 +21,7 @@ module Hakyll.Web.Template.Context
, dateField
, dateFieldWith
, getItemUTC
+ , getItemModificationTime
, modificationTimeField
, modificationTimeFieldWith
, teaserField
@@ -296,6 +297,17 @@ getItemUTC locale id' = do
--------------------------------------------------------------------------------
+-- | Get the time on which the actual file was last modified. This only works if
+-- there actually is an underlying file, of couse.
+getItemModificationTime
+ :: Identifier
+ -> Compiler UTCTime
+getItemModificationTime identifier = do
+ provider <- compilerProvider <$> compilerAsk
+ return $ resourceModificationTime provider identifier
+
+
+--------------------------------------------------------------------------------
modificationTimeField :: String -- ^ Key
-> String -- ^ Format
-> Context a -- ^ Resuting context
@@ -308,8 +320,7 @@ modificationTimeFieldWith :: TimeLocale -- ^ Time output locale
-> String -- ^ Format
-> Context a -- ^ Resulting context
modificationTimeFieldWith locale key fmt = field key $ \i -> do
- provider <- compilerProvider <$> compilerAsk
- let mtime = resourceModificationTime provider $ itemIdentifier i
+ mtime <- getItemModificationTime $ itemIdentifier i
return $ formatTime locale fmt mtime