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 +5/−0
- library/Stagen/JsonFeed.hs +22/−18
- package.yaml +2/−1
- stagen.cabal +3/−2
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