Hamlet 0.7 fixes

This commit is contained in:
Michael Snoyman 2011-02-03 22:10:57 +02:00
parent f4817dcfd8
commit b246471efb
3 changed files with 37 additions and 33 deletions

View File

@ -26,6 +26,8 @@ import Yesod.Content
import Yesod.Handler
import Yesod.Widget
import Yesod.Helpers.Feed
import Text.Hamlet (Hamlet, xhamlet, hamlet, cdata)
import qualified Data.ByteString.Char8 as S8
newtype RepAtom = RepAtom Content
instance HasReps RepAtom where
@ -42,14 +44,14 @@ template arg =
[$xhamlet|
#endif
\<?xml version="1.0" encoding="utf-8"?>
%feed!xmlns="http://www.w3.org/2005/Atom"
%title $feedTitle.arg$
%link!rel=self!href=@feedLinkSelf.arg@
%link!href=@feedLinkHome.arg@
%updated $formatW3.feedUpdated.arg$
%id @feedLinkHome.arg@
$forall feedEntries.arg entry
^entryTemplate.entry^
<feed xmlns="http://www.w3.org/2005/Atom"
<title>#{feedTitle arg}
<link rel=self href=@{feedLinkSelf arg}
<link href=@{feedLinkHome arg}
<updated>#{formatW3 $ feedUpdated arg}
<id>@{feedLinkHome arg}
$forall entry <- feedEntries arg
^{entryTemplate entry}
|]
entryTemplate :: FeedEntry url -> Hamlet url
@ -59,12 +61,12 @@ entryTemplate arg =
#else
[$xhamlet|
#endif
%entry
%id @feedEntryLink.arg@
%link!href=@feedEntryLink.arg@
%updated $formatW3.feedEntryUpdated.arg$
%title $feedEntryTitle.arg$
%content!type=html $cdata.feedEntryContent.arg$
<entry
<id>@{feedEntryLink arg}
<link href=@{feedEntryLink arg}
<updated>#{formatW3 $ feedEntryUpdated arg}
<title>#{feedEntryTitle arg}
<content type=html>#{cdata $ feedEntryContent arg}
|]
-- | Generates a link tag in the head of a widget.
@ -77,5 +79,5 @@ atomLink u title = addHamletHead
#else
[$hamlet|
#endif
%link!href=@u@!type=$typeAtom$!rel="alternate"!title=$title$
<link href=@{u} type=#{S8.unpack typeAtom} rel="alternate" title=#{title}
|]

View File

@ -22,6 +22,8 @@ import Yesod.Handler
import Yesod.Content
import Yesod.Widget
import Yesod.Helpers.Feed
import Text.Hamlet (Hamlet, xhamlet, hamlet)
import qualified Data.ByteString.Char8 as S8
newtype RepRss = RepRss Content
instance HasReps RepRss where
@ -39,18 +41,17 @@ template arg =
[$xhamlet|
#endif
\<?xml version="1.0" encoding="utf-8"?>
%rss!version="2.0"!xmlns:atom="http://www.w3.org/2005/Atom"
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"
<channel
<atom:link href=@{feedLinkSelf arg} rel="self" type=#{S8.unpack typeRss}
<title> #{feedTitle arg}
<link> @{feedLinkHome arg}
<description> #{feedDescription arg}
<lastBuildDate>#{formatRFC822 $ feedUpdated arg}
<language> #{feedLanguage arg}
%channel
%atom:link!href=@feedLinkSelf.arg@!rel="self"!type=$typeRss$
%title $feedTitle.arg$
%link @feedLinkHome.arg@
%description $feedDescription.arg$
%lastBuildDate $formatRFC822.feedUpdated.arg$
%language $feedLanguage.arg$
$forall feedEntries.arg entry
^entryTemplate.entry^
$forall entry <- feedEntries arg
^{entryTemplate entry}
|]
entryTemplate :: FeedEntry url -> Hamlet url
@ -60,12 +61,12 @@ entryTemplate arg =
#else
[$xhamlet|
#endif
%item
%title $feedEntryTitle.arg$
%link @feedEntryLink.arg@
%guid @feedEntryLink.arg@
%pubDate $formatRFC822.feedEntryUpdated.arg$
%description $feedEntryContent.arg$
<item
<title> #{feedEntryTitle arg}
<link> @{feedEntryLink arg}
<guid> @{feedEntryLink arg}
<pubDate> #{formatRFC822 $ feedEntryUpdated arg}
<description>#{feedEntryContent arg}
|]
-- | Generates a link tag in the head of a widget.
@ -78,5 +79,5 @@ rssLink u title = addHamletHead
#else
[$hamlet|
#endif
%link!href=@u@!type=$typeRss$!rel="alternate"!title=$title$
<link href=@{u} type=#{S8.unpack typeRss} rel="alternate" title=#{title}
|]

View File

@ -16,6 +16,7 @@ library
, yesod-core >= 0.7 && < 0.8
, time >= 1.1.4 && < 1.3
, hamlet >= 0.7 && < 0.8
, bytestring >= 0.9 && < 0.10
exposed-modules: Yesod.Helpers.AtomFeed
, Yesod.Helpers.RssFeed
, Yesod.Helpers.Feed