where
import Data.Maybe
+import Data.Time
import Network.HTTP.Lucu.RFC1123DateTime
import Rakka.Page
import Rakka.Storage
-> getPage sto name (Just rev) >>= return . fromJust
) result
- return $ mkPageList pages
+ mkPageList pages
}
where
- mkPageList :: [Page] -> BlockElement
+ mkPageList :: [Page] -> IO BlockElement
mkPageList pages
- = Div [("class", "recentUpdates")]
- [ Block (List Bullet (map mkListItem pages)) ]
+ = do items <- mapM mkListItem pages
+ return (Div [("class", "recentUpdates")]
+ [ Block (List Bullet items) ])
- mkListItem :: Page -> ListItem
+ mkListItem :: Page -> IO ListItem
mkListItem page
- = [ Inline ( PageLink {
- linkPage = Just (pageName page)
- , linkFragment = Nothing
- , linkText = Nothing
- }
- )
- , Block ( Div [("class", "date")]
- [Inline (Text (formatRFC1123DateTime (pageLastMod page)))]
- )
- ]
- ++
- case pageSummary page of
- Just s -> [ Block (Paragraph [Text s]) ]
- Nothing -> []
+ = do lastMod <- utcToLocalZonedTime (pageLastMod page)
+ return ( [ Inline ( PageLink {
+ linkPage = Just (pageName page)
+ , linkFragment = Nothing
+ , linkText = Nothing
+ }
+ )
+ , Block ( Div [("class", "date")]
+ [Inline (Text (formatRFC1123DateTime lastMod))]
+ )
+ ]
+ ++
+ case pageSummary page of
+ Just s -> [ Block (Paragraph [Text s]) ]
+ Nothing -> []
+ )