51 lines
1.4 KiB
Haskell
51 lines
1.4 KiB
Haskell
-------------------------------------------------------------------------------
|
|
--
|
|
-- Module : Yesod.Helpers.Feed
|
|
-- Copyright : Patrick Brisbin
|
|
-- License : as-is
|
|
--
|
|
-- Maintainer : Patrick Brisbin <me@pbrisbin.com>
|
|
-- Stability : Stable
|
|
-- Portability : Portable
|
|
--
|
|
-- Generic Feed and Feed Entry data types that can be used as either an
|
|
-- Rss feed or an Atom feed (or both, or other).
|
|
--
|
|
-- Atom spec: <http://en.wikipedia.org/wiki/Atom_(standard)>
|
|
-- Rss spec: <http://www.rssboard.org/rss-specification>
|
|
--
|
|
-------------------------------------------------------------------------------
|
|
module Yesod.Helpers.Feed
|
|
( Feed(..)
|
|
, FeedEntry(..)
|
|
) where
|
|
|
|
import Text.Hamlet (Html)
|
|
import Data.Time.Clock (UTCTime)
|
|
|
|
-- | The overal feed
|
|
data Feed url = Feed
|
|
{ feedTitle :: String
|
|
, feedLinkSelf :: url
|
|
, feedLinkHome :: url
|
|
|
|
|
|
-- | note: currently only used for Rss
|
|
, feedDescription :: Html
|
|
|
|
-- | note: currently only used for Rss, possible values:
|
|
-- <http://www.rssboard.org/rss-language-codes>
|
|
, feedLanguage :: String
|
|
|
|
, feedUpdated :: UTCTime
|
|
, feedEntries :: [FeedEntry url]
|
|
}
|
|
|
|
-- | Each feed entry
|
|
data FeedEntry url = FeedEntry
|
|
{ feedEntryLink :: url
|
|
, feedEntryUpdated :: UTCTime
|
|
, feedEntryTitle :: String
|
|
, feedEntryContent :: Html
|
|
}
|