-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Helper functions and data types for producing News feeds.
--   
--   API docs and the README are available at
--   <a>http://www.stackage.org/package/yesod-newsfeed</a>
@package yesod-newsfeed
@version 1.7.0.0


-- | Generation of Atom newsfeeds.
module Yesod.AtomFeed
atomFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m RepAtom

-- | Same as <tt><a>atomFeed</a></tt> but for <tt>'Feed Text'</tt>. Useful
--   for cases where you are generating a feed of external links.
atomFeedText :: MonadHandler m => Feed Text -> m RepAtom

-- | Generates a link tag in the head of a widget.
atomLink :: MonadWidget m => Route (HandlerSite m) -> Text -> m ()
newtype RepAtom
RepAtom :: Content -> RepAtom

-- | The overall feed
data Feed url
Feed :: Text -> url -> url -> Text -> Html -> Text -> UTCTime -> Maybe (url, Text) -> [FeedEntry url] -> Feed url
[feedTitle] :: Feed url -> Text
[feedLinkSelf] :: Feed url -> url
[feedLinkHome] :: Feed url -> url
[feedAuthor] :: Feed url -> Text

-- | note: currently only used for Rss
[feedDescription] :: Feed url -> Html

-- | note: currently only used for Rss, possible values:
--   <a>http://www.rssboard.org/rss-language-codes</a>
[feedLanguage] :: Feed url -> Text
[feedUpdated] :: Feed url -> UTCTime
[feedLogo] :: Feed url -> Maybe (url, Text)
[feedEntries] :: Feed url -> [FeedEntry url]

-- | Each feed entry
data FeedEntry url
FeedEntry :: url -> UTCTime -> Text -> Html -> Maybe (EntryEnclosure url) -> [EntryCategory] -> FeedEntry url
[feedEntryLink] :: FeedEntry url -> url
[feedEntryUpdated] :: FeedEntry url -> UTCTime
[feedEntryTitle] :: FeedEntry url -> Text
[feedEntryContent] :: FeedEntry url -> Html

-- | Allows enclosed data: RSS &lt;enclosure&gt; or Atom &lt;link
--   rel=enclosure&gt;
[feedEntryEnclosure] :: FeedEntry url -> Maybe (EntryEnclosure url)

-- | Allows categories data: RSS &lt;category&gt; or Atom &lt;link
--   term=category&gt;
[feedEntryCategories] :: FeedEntry url -> [EntryCategory]

-- | RSS and Atom allow for linked content to be enclosed in a feed entry.
--   This represents the enclosed content.
--   
--   Atom feeds ignore <a>enclosedSize</a> and <a>enclosedMimeType</a>.
data EntryEnclosure url
EntryEnclosure :: url -> Int -> Text -> EntryEnclosure url
[enclosedUrl] :: EntryEnclosure url -> url

-- | Specified in bytes
[enclosedSize] :: EntryEnclosure url -> Int
[enclosedMimeType] :: EntryEnclosure url -> Text

-- | RSS 2.0 and Atom allow category in a feed entry.
--   
--   <ul>
--   <li><a>RSS category</a></li>
--   <li><a>Atom category</a></li>
--   </ul>
--   
--   RSS feeds ignore <a>categoryLabel</a>
data EntryCategory
EntryCategory :: Maybe Text -> Maybe Text -> Text -> EntryCategory

-- | category identifier
[categoryDomain] :: EntryCategory -> Maybe Text

-- | Human-readable label Atom only
[categoryLabel] :: EntryCategory -> Maybe Text

-- | identified categorization scheme via URI
[categoryValue] :: EntryCategory -> Text
instance Yesod.Core.Content.ToContent Yesod.AtomFeed.RepAtom
instance Yesod.Core.Content.HasContentType Yesod.AtomFeed.RepAtom
instance Yesod.Core.Content.ToTypedContent Yesod.AtomFeed.RepAtom

module Yesod.RssFeed

-- | Generate the feed
rssFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m RepRss

-- | Same as <tt><a>rssFeed</a></tt> but for <tt>'Feed Text'</tt>. Useful
--   for cases where you are generating a feed of external links.
rssFeedText :: MonadHandler m => Feed Text -> m RepRss

-- | Generates a link tag in the head of a widget.
rssLink :: MonadWidget m => Route (HandlerSite m) -> Text -> m ()
newtype RepRss
RepRss :: Content -> RepRss

-- | The overall feed
data Feed url
Feed :: Text -> url -> url -> Text -> Html -> Text -> UTCTime -> Maybe (url, Text) -> [FeedEntry url] -> Feed url
[feedTitle] :: Feed url -> Text
[feedLinkSelf] :: Feed url -> url
[feedLinkHome] :: Feed url -> url
[feedAuthor] :: Feed url -> Text

-- | note: currently only used for Rss
[feedDescription] :: Feed url -> Html

-- | note: currently only used for Rss, possible values:
--   <a>http://www.rssboard.org/rss-language-codes</a>
[feedLanguage] :: Feed url -> Text
[feedUpdated] :: Feed url -> UTCTime
[feedLogo] :: Feed url -> Maybe (url, Text)
[feedEntries] :: Feed url -> [FeedEntry url]

-- | Each feed entry
data FeedEntry url
FeedEntry :: url -> UTCTime -> Text -> Html -> Maybe (EntryEnclosure url) -> [EntryCategory] -> FeedEntry url
[feedEntryLink] :: FeedEntry url -> url
[feedEntryUpdated] :: FeedEntry url -> UTCTime
[feedEntryTitle] :: FeedEntry url -> Text
[feedEntryContent] :: FeedEntry url -> Html

-- | Allows enclosed data: RSS &lt;enclosure&gt; or Atom &lt;link
--   rel=enclosure&gt;
[feedEntryEnclosure] :: FeedEntry url -> Maybe (EntryEnclosure url)

-- | Allows categories data: RSS &lt;category&gt; or Atom &lt;link
--   term=category&gt;
[feedEntryCategories] :: FeedEntry url -> [EntryCategory]

-- | RSS and Atom allow for linked content to be enclosed in a feed entry.
--   This represents the enclosed content.
--   
--   Atom feeds ignore <a>enclosedSize</a> and <a>enclosedMimeType</a>.
data EntryEnclosure url
EntryEnclosure :: url -> Int -> Text -> EntryEnclosure url
[enclosedUrl] :: EntryEnclosure url -> url

-- | Specified in bytes
[enclosedSize] :: EntryEnclosure url -> Int
[enclosedMimeType] :: EntryEnclosure url -> Text

-- | RSS 2.0 and Atom allow category in a feed entry.
--   
--   <ul>
--   <li><a>RSS category</a></li>
--   <li><a>Atom category</a></li>
--   </ul>
--   
--   RSS feeds ignore <a>categoryLabel</a>
data EntryCategory
EntryCategory :: Maybe Text -> Maybe Text -> Text -> EntryCategory

-- | category identifier
[categoryDomain] :: EntryCategory -> Maybe Text

-- | Human-readable label Atom only
[categoryLabel] :: EntryCategory -> Maybe Text

-- | identified categorization scheme via URI
[categoryValue] :: EntryCategory -> Text
instance Yesod.Core.Content.ToContent Yesod.RssFeed.RepRss
instance Yesod.Core.Content.HasContentType Yesod.RssFeed.RepRss
instance Yesod.Core.Content.ToTypedContent Yesod.RssFeed.RepRss

module Yesod.Feed
newsFeed :: MonadHandler m => Feed (Route (HandlerSite m)) -> m TypedContent

-- | Same as <tt><a>newsFeed</a></tt> but for <tt>'Feed Text'</tt>. Useful
--   for cases where you are generating a feed of external links.
newsFeedText :: MonadHandler m => Feed Text -> m TypedContent

-- | The overall feed
data Feed url
Feed :: Text -> url -> url -> Text -> Html -> Text -> UTCTime -> Maybe (url, Text) -> [FeedEntry url] -> Feed url
[feedTitle] :: Feed url -> Text
[feedLinkSelf] :: Feed url -> url
[feedLinkHome] :: Feed url -> url
[feedAuthor] :: Feed url -> Text

-- | note: currently only used for Rss
[feedDescription] :: Feed url -> Html

-- | note: currently only used for Rss, possible values:
--   <a>http://www.rssboard.org/rss-language-codes</a>
[feedLanguage] :: Feed url -> Text
[feedUpdated] :: Feed url -> UTCTime
[feedLogo] :: Feed url -> Maybe (url, Text)
[feedEntries] :: Feed url -> [FeedEntry url]

-- | Each feed entry
data FeedEntry url
FeedEntry :: url -> UTCTime -> Text -> Html -> Maybe (EntryEnclosure url) -> [EntryCategory] -> FeedEntry url
[feedEntryLink] :: FeedEntry url -> url
[feedEntryUpdated] :: FeedEntry url -> UTCTime
[feedEntryTitle] :: FeedEntry url -> Text
[feedEntryContent] :: FeedEntry url -> Html

-- | Allows enclosed data: RSS &lt;enclosure&gt; or Atom &lt;link
--   rel=enclosure&gt;
[feedEntryEnclosure] :: FeedEntry url -> Maybe (EntryEnclosure url)

-- | Allows categories data: RSS &lt;category&gt; or Atom &lt;link
--   term=category&gt;
[feedEntryCategories] :: FeedEntry url -> [EntryCategory]

-- | RSS and Atom allow for linked content to be enclosed in a feed entry.
--   This represents the enclosed content.
--   
--   Atom feeds ignore <a>enclosedSize</a> and <a>enclosedMimeType</a>.
data EntryEnclosure url
EntryEnclosure :: url -> Int -> Text -> EntryEnclosure url
[enclosedUrl] :: EntryEnclosure url -> url

-- | Specified in bytes
[enclosedSize] :: EntryEnclosure url -> Int
[enclosedMimeType] :: EntryEnclosure url -> Text

-- | RSS 2.0 and Atom allow category in a feed entry.
--   
--   <ul>
--   <li><a>RSS category</a></li>
--   <li><a>Atom category</a></li>
--   </ul>
--   
--   RSS feeds ignore <a>categoryLabel</a>
data EntryCategory
EntryCategory :: Maybe Text -> Maybe Text -> Text -> EntryCategory

-- | category identifier
[categoryDomain] :: EntryCategory -> Maybe Text

-- | Human-readable label Atom only
[categoryLabel] :: EntryCategory -> Maybe Text

-- | identified categorization scheme via URI
[categoryValue] :: EntryCategory -> Text
