Feed.hs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. -------------------------------------------------------------------------------
  2. --
  3. -- Module : Yesod.Feed
  4. -- Copyright : Patrick Brisbin
  5. -- License : as-is
  6. --
  7. -- Maintainer : Patrick Brisbin <me@pbrisbin.com>
  8. -- Stability : Stable
  9. -- Portability : Portable
  10. --
  11. -- Generic Feed and Feed Entry data types that can be used as either an
  12. -- Rss feed or an Atom feed (or both, or other).
  13. --
  14. -- Atom spec: <http://en.wikipedia.org/wiki/Atom_(standard)>
  15. -- Rss spec: <http://www.rssboard.org/rss-specification>
  16. --
  17. -------------------------------------------------------------------------------
  18. module Yesod.Feed
  19. ( newsFeed
  20. , newsFeedText
  21. , module Yesod.FeedTypes
  22. ) where
  23. import Yesod.FeedTypes
  24. import Yesod.AtomFeed
  25. import Yesod.RssFeed
  26. import Yesod.Core
  27. import Data.Text
  28. newsFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m TypedContent
  29. newsFeed f = selectRep $ do
  30. provideRep $ atomFeed f
  31. provideRep $ rssFeed f
  32. -- | Same as @'newsFeed'@ but for @'Feed Text'@. Useful for cases where you are
  33. -- generating a feed of external links.
  34. newsFeedText :: MonadHandler m => Feed Text -> m TypedContent
  35. newsFeedText f = selectRep $ do
  36. provideRep $ atomFeedText f
  37. provideRep $ rssFeedText f