@@ -172,18 +172,23 @@ renderDateFieldWith locale key format defaultValue page =
172172getUTCMaybe :: TimeLocale -- ^ Output time locale
173173 -> Page a -- ^ Input page
174174 -> Maybe UTCTime -- ^ Parsed UTCTime
175−getUTCMaybe locale page = msum
176− [ fromPublished "%a, %d %b %Y %H:%M:%S UT"
177− , fromPublished "%Y-%m-%dT%H:%M:%SZ"
178− , fromPublished "%Y-%m-%d %H:%M:%S"
179− , fromPublished "%B %e, %Y %l:%M %p"
180− , fromPublished "%B %e, %Y"
181− , getFieldMaybe "path" page >>= parseTime' "%Y-%m-%d" .
175+getUTCMaybe locale page = msum $
176+ [fromField "published" fmt | fmt <- formats] ++
177+ [fromField "date" fmt | fmt <- formats] ++
178+ [ getFieldMaybe "path" page >>= parseTime' "%Y-%m-%d" .
182179 intercalate "-" . take 3 . splitAll "-" . takeFileName
183180 ]
184181 where
185− fromPublished f = getFieldMaybe "published" page >>= parseTime' f
186182 parseTime' f str = parseTime locale f str
183+ fromField k fmt = getFieldMaybe k page >>= parseTime' fmt
184+
185+ formats =
186+ [ "%a, %d %b %Y %H:%M:%S UT"
187+ , "%Y-%m-%dT%H:%M:%SZ"
188+ , "%Y-%m-%d %H:%M:%S"
189+ , "%B %e, %Y %l:%M %p"
190+ , "%B %e, %Y"
191+ ]
187192
188193-- | Set the modification time as a field in the page
189194renderModificationTime :: String