packages feed

stagen 0.2.0 → 0.2.1

raw patch · 4 files changed

+32/−21 lines, 4 filesdep +time

Dependencies added: time

Files

library/Stagen/Date.hs view
@@ -1,6 +1,8 @@ module Stagen.Date where  import Data.Functor (void)+import Data.Time.Clock+import Data.Time.Calendar import Text.Parsec import Text.Parsec.String @@ -26,3 +28,6 @@ showTwoDigits n     | n < 10 = '0' : show n     | otherwise = show n++dateToUTCTime :: Date -> UTCTime+dateToUTCTime Date{dateYear,dateMonth,dateDay} = UTCTime (fromGregorian (fromIntegral dateYear) dateMonth dateDay) 0
library/Stagen/JsonFeed.hs view
@@ -6,13 +6,15 @@ import Data.Text.Conversions (fromText, toText) import Network.URI import JsonFeed+import Data.Maybe  import Stagen.Page+import Stagen.Date  createJsonFeed :: String -> String -> [Page] -> BL.ByteString createJsonFeed title baseUrl pages = let   feed = mkFeed (toText title) (toText baseUrl)-  feed' = feed { feedItems = map toItem pages }+  feed' = feed { feedItems = catMaybes $ map toItem pages }   in renderFeed feed'  mkFeed :: Text -> Text -> Feed@@ -34,20 +36,22 @@   where     baseUri = parseURI (fromText baseUrl) -toItem :: Page -> Item-toItem page = Item-  { itemAttachments = Nothing-  , itemAuthor = Nothing-  , itemBannerImage = Nothing-  , itemContentHtml = Nothing-  , itemContentText = Nothing-  , itemDateModified = Nothing-  , itemDatePublished = Nothing-  , itemExternalUrl = Nothing-  , itemId = String (toText (pageAbsoluteUrl page))-  , itemImage = Nothing-  , itemSummary = Nothing-  , itemTags = Nothing-  , itemTitle = Just (toText (pageTitle page))-  , itemUrl = fmap Url $ parseURI (fromText $ toText (pageAbsoluteUrl page))-  }+toItem :: Page -> Maybe Item+toItem page = case pageDate page of+  Nothing -> Nothing+  Just date -> Just Item+    { itemAttachments = Nothing+    , itemAuthor = Nothing+    , itemBannerImage = Nothing+    , itemContentHtml = Nothing+    , itemContentText = Nothing+    , itemDateModified = Nothing+    , itemDatePublished = Just $ dateToUTCTime date+    , itemExternalUrl = Nothing+    , itemId = String (toText (pageAbsoluteUrl page))+    , itemImage = Nothing+    , itemSummary = Nothing+    , itemTags = Nothing+    , itemTitle = Just (toText (pageTitle page))+    , itemUrl = fmap Url $ parseURI (fromText $ toText (pageAbsoluteUrl page))+    }
package.yaml view
@@ -1,5 +1,5 @@ name: stagen-version: '0.2.0'+version: '0.2.1' category: Web synopsis: Static site generator description: Low dependency static site generator using markdown@@ -32,6 +32,7 @@   - parallel   - parsec   - json-feed+  - time   - text   - text-conversions   - feed
stagen.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: badead40d64f903a9c62f6a773f8e419930b97d6e7c489d699eec49dcdf7f9e7+-- hash: 02d6be748e505bc4264d2d3006b237c92612b2273a12733cc1c2089d71199062  name:           stagen-version:        0.2.0+version:        0.2.1 synopsis:       Static site generator description:    Low dependency static site generator using markdown category:       Web@@ -44,6 +44,7 @@     , parsec     , text     , text-conversions+    , time     , xml     , xml-conduit     , xml-types