@@ -5,6 +5,7 @@
55{-# LANGUAGE DeriveDataTypeable #-}
66module Hakyll.Web.Page
77 ( Page (..)
8+ , getField
89 , addField
910 , toMap
1011 , pageRead
@@ -15,6 +16,7 @@ import Prelude hiding (id)
1516import Control.Category (id)
1617import Control.Arrow ((>>^), (&&&), (>>>))
1718import System.FilePath (takeBaseName, takeDirectory)
19+import Data.Maybe (fromMaybe)
1820import Data.Map (Map)
1921import qualified Data.Map as M
2022
@@ -24,6 +26,14 @@ import Hakyll.Web.Page.Internal
2426import Hakyll.Web.Page.Read
2527import Hakyll.Web.Util.String
2628
29+-- | Get a metadata field. If the field does not exist, the empty string is
30+-- returned.
31+--
32+getField :: String -- ^ Key
33+ -> Page a -- ^ Page
34+ -> String -- ^ Value
35+getField key = fromMaybe "" . M.lookup key . pageMetadata
36+
2737-- | Add a metadata field. If the field already exists, it is not overwritten.
2838--
2939addField :: String -- ^ Key