X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FWiki%2FInterpreter%2FPageList.hs;h=2815bda638878a098715b57dd82d11988b445aa4;hb=bc8616eec0bcac3102860c76f93ebfd0da24c2d6;hp=69ff0e72ee9697f1a913c892f786bddcecf65381;hpb=859d4378c2e2a1ccc8028821a37eeaa43aaa23fb;p=Rakka.git diff --git a/Rakka/Wiki/Interpreter/PageList.hs b/Rakka/Wiki/Interpreter/PageList.hs index 69ff0e7..2815bda 100644 --- a/Rakka/Wiki/Interpreter/PageList.hs +++ b/Rakka/Wiki/Interpreter/PageList.hs @@ -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 @@ -39,7 +40,6 @@ recentUpdatesInterp cond <- newCondition setPhrase cond "[UVSET]" - addAttrCond cond "rakka:isBoring STREQ no" addAttrCond cond "rakka:summary STRNE" -- summary が空でない setOrder cond "@mdate NUMD" setMax cond items @@ -49,27 +49,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 (entityLastMod page) + return ( [ Inline ( PageLink { + linkPage = Just (pageName page) + , linkFragment = Nothing + , linkText = Nothing + } + ) + , Block ( Div [("class", "date")] + [Inline (Text (formatRFC1123DateTime lastMod))] + ) + ] + ++ + case entitySummary page of + Just s -> [ Block (Paragraph [Text s]) ] + Nothing -> [] + )