]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Wiki/Interpreter/PageList.hs
Exodus to GHC 6.8.1
[Rakka.git] / Rakka / Wiki / Interpreter / PageList.hs
index 69ff0e72ee9697f1a913c892f786bddcecf65381..234ce7d007498d9f3b66893a2c02ae69b3d46bca 100644 (file)
@@ -4,6 +4,7 @@ module Rakka.Wiki.Interpreter.PageList
     where
 
 import           Data.Maybe
+import           Data.Time
 import           Network.HTTP.Lucu.RFC1123DateTime
 import           Rakka.Page
 import           Rakka.Storage
@@ -49,27 +50,30 @@ recentUpdatesInterp
                                      -> 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 -> []
+                      )