Document feed entry enclosures
This commit is contained in:
parent
7ea1e004c9
commit
4d48ba71be
@ -28,7 +28,6 @@ module Yesod.AtomFeed
|
||||
|
||||
import Yesod.Core
|
||||
import Yesod.FeedTypes
|
||||
import Text.Hamlet (hamlet)
|
||||
import qualified Data.ByteString.Char8 as S8
|
||||
import Data.Text (Text)
|
||||
import Data.Text.Lazy (toStrict)
|
||||
@ -86,7 +85,9 @@ entryTemplate FeedEntry {..} render = Element "entry" Map.empty $ map NodeElemen
|
||||
++
|
||||
case feedEntryEnclosure of
|
||||
Nothing -> []
|
||||
Just (route, _, _) -> [Element "link" (Map.fromList [("rel", "enclosure"), ("href", render route)]) []]
|
||||
Just (EntryEnclosure{..}) ->
|
||||
[Element "link" (Map.fromList [("rel", "enclosure")
|
||||
,("href", render enclosedUrl)]) []]
|
||||
|
||||
-- | Generates a link tag in the head of a widget.
|
||||
atomLink :: MonadWidget m
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
module Yesod.FeedTypes
|
||||
( Feed (..)
|
||||
, FeedEntry (..)
|
||||
, EntryEnclosure (..)
|
||||
) where
|
||||
|
||||
import Text.Hamlet (Html)
|
||||
@ -27,11 +28,19 @@ data Feed url = Feed
|
||||
, feedEntries :: [FeedEntry url]
|
||||
}
|
||||
|
||||
data EntryEnclosure url = EntryEnclosure
|
||||
{ enclosedUrl :: url
|
||||
, enclosedSize :: Int -- ^ Specified in bytes
|
||||
, enclosedMimeType :: Text
|
||||
}
|
||||
|
||||
-- | Each feed entry
|
||||
data FeedEntry url = FeedEntry
|
||||
{ feedEntryLink :: url
|
||||
, feedEntryUpdated :: UTCTime
|
||||
, feedEntryTitle :: Text
|
||||
, feedEntryContent :: Html
|
||||
, feedEntryEnclosure :: Maybe (url, Int, Text)
|
||||
, feedEntryEnclosure :: Maybe (EntryEnclosure url)
|
||||
-- ^ Allows enclosed data: RSS \<enclosure> or Atom \<link
|
||||
-- rel=enclosure>
|
||||
}
|
||||
|
||||
@ -24,7 +24,6 @@ module Yesod.RssFeed
|
||||
|
||||
import Yesod.Core
|
||||
import Yesod.FeedTypes
|
||||
import Text.Hamlet (hamlet)
|
||||
import qualified Data.ByteString.Char8 as S8
|
||||
import Data.Text (Text, pack)
|
||||
import Data.Text.Lazy (toStrict)
|
||||
@ -87,7 +86,11 @@ entryTemplate FeedEntry {..} render = Element "item" Map.empty $ map NodeElement
|
||||
++
|
||||
case feedEntryEnclosure of
|
||||
Nothing -> []
|
||||
Just (route, length, mime) -> [Element "enclosure" (Map.fromList [("type", mime), ("length", pack $ show length), ("url", render route)]) []]
|
||||
Just (EntryEnclosure{..}) -> [
|
||||
Element "enclosure"
|
||||
(Map.fromList [("type", enclosedMimeType)
|
||||
,("length", pack $ show enclosedSize)
|
||||
,("url", render enclosedUrl)]) []]
|
||||
|
||||
-- | Generates a link tag in the head of a widget.
|
||||
rssLink :: MonadWidget m
|
||||
|
||||
Loading…
Reference in New Issue
Block a user