packages feed

yesod-newsfeed 1.0.0.2 → 1.1.0

raw patch · 4 files changed

+40/−51 lines, 4 filesdep +containersdep ~blaze-htmldep ~hamletdep ~xml-conduit

Dependencies added: containers

Dependency ranges changed: blaze-html, hamlet, xml-conduit, yesod-core

Files

Yesod/AtomFeed.hs view
@@ -31,11 +31,8 @@ import Data.Text (Text) import Data.Text.Lazy (toStrict) import Text.XML-#if MIN_VERSION_blaze_html(0, 5, 0) import Text.Blaze.Html.Renderer.Text (renderHtml)-#else-import Text.Blaze.Renderer.Text (renderHtml)-#endif+import qualified Data.Map as Map  newtype RepAtom = RepAtom Content instance HasReps RepAtom where@@ -55,21 +52,22 @@     addNS' n = n     namespace = "http://www.w3.org/2005/Atom" -    root = Element "feed" [] $ map NodeElement-        $ Element "title" [] [NodeContent feedTitle]-        : Element "link" [("rel", "self"), ("href", render feedLinkSelf)] []-        : Element "link" [("href", render feedLinkHome)] []-        : Element "updated" [] [NodeContent $ formatW3 feedUpdated]-        : Element "id" [] [NodeContent $ render feedLinkHome]+    root = Element "feed" Map.empty $ map NodeElement+        $ Element "title" Map.empty [NodeContent feedTitle]+        : Element "link" (Map.fromList [("rel", "self"), ("href", render feedLinkSelf)]) []+        : Element "link" (Map.singleton "href" $ render feedLinkHome) []+        : Element "updated" Map.empty [NodeContent $ formatW3 feedUpdated]+        : Element "id" Map.empty [NodeContent $ render feedLinkHome]+        : Element "author" Map.empty [NodeContent feedAuthor]         : map (flip entryTemplate render) feedEntries  entryTemplate :: FeedEntry url -> (url -> Text) -> Element-entryTemplate FeedEntry {..} render = Element "entry" [] $ map NodeElement-    [ Element "id" [] [NodeContent $ render feedEntryLink]-    , Element "link" [("href", render feedEntryLink)] []-    , Element "updated" [] [NodeContent $ formatW3 feedEntryUpdated]-    , Element "title" [] [NodeContent feedEntryTitle]-    , Element "content" [("type", "html")] [NodeContent $ toStrict $ renderHtml feedEntryContent]+entryTemplate FeedEntry {..} render = Element "entry" Map.empty $ map NodeElement+    [ Element "id" Map.empty [NodeContent $ render feedEntryLink]+    , Element "link" (Map.singleton "href" $ render feedEntryLink) []+    , Element "updated" Map.empty [NodeContent $ formatW3 feedEntryUpdated]+    , Element "title" Map.empty [NodeContent feedEntryTitle]+    , Element "content" (Map.singleton "type" "html") [NodeContent $ toStrict $ renderHtml feedEntryContent]     ]  -- | Generates a link tag in the head of a widget.@@ -77,5 +75,6 @@          -> Text -- ^ title          -> GWidget s m () atomLink r title = toWidgetHead [hamlet|+$newline never <link href=@{r} type=#{S8.unpack typeAtom} rel="alternate" title=#{title}> |]
Yesod/FeedTypes.hs view
@@ -7,11 +7,12 @@ import Data.Time.Clock  (UTCTime) import Data.Text        (Text) --- | The overal feed+-- | The overall feed data Feed url = Feed     { feedTitle       :: Text     , feedLinkSelf    :: url     , feedLinkHome    :: url+    , feedAuthor      :: Text       -- | note: currently only used for Rss
Yesod/RssFeed.hs view
@@ -27,11 +27,8 @@ import Data.Text (Text, pack) import Data.Text.Lazy (toStrict) import Text.XML-#if MIN_VERSION_blaze_html(0, 5, 0) import Text.Blaze.Html.Renderer.Text (renderHtml)-#else-import Text.Blaze.Renderer.Text (renderHtml)-#endif+import qualified Data.Map as Map  newtype RepRss = RepRss Content instance HasReps RepRss where@@ -47,26 +44,26 @@ template Feed {..} render =     Document (Prologue [] Nothing []) root []   where-    root = Element "rss" [("version", "2.0")] $ return $ NodeElement $ Element "channel" [] $ map NodeElement-        $ Element "{http://www.w3.org/2005/Atom}link"+    root = Element "rss" (Map.singleton "version" "2.0") $ return $ NodeElement $ Element "channel" Map.empty $ map NodeElement+        $ Element "{http://www.w3.org/2005/Atom}link" (Map.fromList             [ ("href", render feedLinkSelf)             , ("rel", "self")             , ("type", pack $ S8.unpack typeRss)-            ] []-        : Element "title" [] [NodeContent feedTitle]-        : Element "link" [] [NodeContent $ render feedLinkHome]-        : Element "description" [] [NodeContent $ toStrict $ renderHtml feedDescription]-        : Element "lastBuildDate" [] [NodeContent $ formatRFC822 feedUpdated]-        : Element "language" [] [NodeContent feedLanguage]+            ]) []+        : Element "title" Map.empty [NodeContent feedTitle]+        : Element "link" Map.empty [NodeContent $ render feedLinkHome]+        : Element "description" Map.empty [NodeContent $ toStrict $ renderHtml feedDescription]+        : Element "lastBuildDate" Map.empty [NodeContent $ formatRFC822 feedUpdated]+        : Element "language" Map.empty [NodeContent feedLanguage]         : map (flip entryTemplate render) feedEntries  entryTemplate :: FeedEntry url -> (url -> Text) -> Element-entryTemplate FeedEntry {..} render = Element "item" [] $ map NodeElement-    [ Element "title" [] [NodeContent feedEntryTitle]-    , Element "link" [] [NodeContent $ render feedEntryLink]-    , Element "guid" [] [NodeContent $ render feedEntryLink]-    , Element "pubDate" [] [NodeContent $ formatRFC822 feedEntryUpdated]-    , Element "description" [] [NodeContent $ toStrict $ renderHtml feedEntryContent]+entryTemplate FeedEntry {..} render = Element "item" Map.empty $ map NodeElement+    [ Element "title" Map.empty [NodeContent feedEntryTitle]+    , Element "link" Map.empty [NodeContent $ render feedEntryLink]+    , Element "guid" Map.empty [NodeContent $ render feedEntryLink]+    , Element "pubDate" Map.empty [NodeContent $ formatRFC822 feedEntryUpdated]+    , Element "description" Map.empty [NodeContent $ toStrict $ renderHtml feedEntryContent]     ]  -- | Generates a link tag in the head of a widget.@@ -74,5 +71,6 @@         -> Text -- ^ title         -> GWidget s m () rssLink r title = toWidgetHead [hamlet|+$newline never     <link href=@{r} type=#{S8.unpack typeRss} rel="alternate" title=#{title}>     |]
yesod-newsfeed.cabal view
@@ -1,5 +1,5 @@ name:            yesod-newsfeed-version:         1.0.0.2+version:         1.1.0 license:         MIT license-file:    LICENSE author:          Michael Snoyman, Patrick Brisbin@@ -12,26 +12,17 @@ homepage:        http://www.yesodweb.com/ description:     Helper functions and data types for producing News feeds. -flag blaze_html_0_5-    description: use blaze-html 0.5 and blaze-markup 0.5-    default: True- library     build-depends:   base                 >= 4        && < 5-                   , yesod-core           >= 1.0      && < 1.1+                   , yesod-core           >= 1.1      && < 1.2                    , time                 >= 1.1.4-                   , hamlet               >= 1.0      && < 1.1+                   , hamlet               >= 1.1      && < 1.2                    , bytestring           >= 0.9.1.4                    , text                 >= 0.9      && < 0.12-                   , xml-conduit          >= 0.7      && < 0.8--    if flag(blaze_html_0_5)-        build-depends:-                     blaze-html               >= 0.5     && < 0.6-                   , blaze-markup             >= 0.5.1   && < 0.6-    else-        build-depends:-                     blaze-html               >= 0.4     && < 0.5+                   , xml-conduit          >= 1.0      && < 1.1+                   , blaze-html           >= 0.5      && < 0.6+                   , blaze-markup         >= 0.5.1    && < 0.6+                   , containers      exposed-modules: Yesod.AtomFeed                    , Yesod.RssFeed