@@ -4,6 +4,7 @@ module Hakyll.Web.Page.Metadata
44 ( getField
55 , getFieldMaybe
66 , setField
7+ , trySetField
78 , setFieldA
89 , renderField
910 , changeField
@@ -41,13 +42,21 @@ getFieldMaybe :: String -- ^ Key
4142 -> Maybe String -- ^ Value, if found
4243getFieldMaybe key = M.lookup key . pageMetadata
4344
44−-- | Add a metadata field. If the field already exists, it is not overwritten.
45+-- | Version of 'trySetField' which overrides any previous value
4546--
4647setField :: String -- ^ Key
4748 -> String -- ^ Value
4849 -> Page a -- ^ Page to add it to
4950 -> Page a -- ^ Resulting page
50−setField k v (Page m b) = Page (M.insertWith (flip const) k v m) b
51+setField k v (Page m b) = Page (M.insert k v m) b
52+
53+-- | Add a metadata field. If the field already exists, it is not overwritten.
54+--
55+trySetField :: String -- ^ Key
56+ -> String -- ^ Value
57+ -> Page a -- ^ Page to add it to
58+ -> Page a -- ^ Resulting page
59+trySetField k v (Page m b) = Page (M.insertWith (flip const) k v m) b
5160
5261-- | Arrow-based variant of 'setField'. Because of it's type, this function is
5362-- very usable together with the different 'require' functions.