diff --git a/Test/Widget.hs b/Test/Widget.hs
index dd65f220..704a1a43 100644
--- a/Test/Widget.hs
+++ b/Test/Widget.hs
@@ -44,7 +44,10 @@ getWhamletR = defaultLayout [$whamlet|
Test
@{WhamletR}
_{Goodbye}
+^{embed}
|]
+ where
+ embed = [$whamlet|Embed|]
widgetTest :: Test
widgetTest = testGroup "Test.Widget"
@@ -69,4 +72,4 @@ case_whamlet = runner $ do
{ pathInfo = ["whamlet"]
, requestHeaders = [("Accept-Language", "es")]
}
- assertBody "\nTest
http://test/whamlet
Adios
" res
+ assertBody "\nTest
http://test/whamlet
Adios
Embed
" res
diff --git a/Yesod/Widget.hs b/Yesod/Widget.hs
index 6b52eb4d..2bc35f8f 100644
--- a/Yesod/Widget.hs
+++ b/Yesod/Widget.hs
@@ -15,6 +15,7 @@ module Yesod.Widget
, getMessageRender
, whamlet
, whamletFile
+ , ihamletToRepHtml
-- * Creating
-- ** Head of page
, setTitle
@@ -56,6 +57,7 @@ import Text.Lucius (Lucius)
import Text.Julius
import Yesod.Handler
(Route, GHandler, GGHandler, YesodSubRoute(..), toMasterHandlerMaybe, getYesod)
+import Yesod.Content (RepHtml (..), toContent)
import Control.Applicative (Applicative)
import Control.Monad.IO.Class (MonadIO)
import Control.Monad.Trans.Class (MonadTrans (lift))
@@ -217,6 +219,8 @@ data PageContent url = PageContent
, pageBody :: Hamlet url
}
+-- see if it's possible to get rid of sub here. Problem was yesod-auth, but maybe we can do something like:
+-- instance YesodAuth m => YesodMessage m ...
class YesodMessage sub master where
type Message sub master
renderMessage :: sub
@@ -253,4 +257,13 @@ rules = do
(Just $ helper [|lift getUrlRenderParams|])
(Just $ helper [|lift getMessageRender|])
f env
- return $ NP.HamletRules ah ur
+ return $ NP.HamletRules ah ur $ \_ b -> return b
+
+-- | Wraps the 'Content' generated by 'hamletToContent' in a 'RepHtml'.
+ihamletToRepHtml :: (Monad mo, YesodMessage sub master)
+ => NP.IHamlet (Message sub master) (Route master)
+ -> GGHandler sub master mo RepHtml
+ihamletToRepHtml ih = do
+ urender <- getUrlRenderParams
+ mrender <- getMessageRender
+ return $ RepHtml $ toContent $ ih mrender urender
diff --git a/yesod-core.cabal b/yesod-core.cabal
index f4b1b1bb..3c88a41a 100644
--- a/yesod-core.cabal
+++ b/yesod-core.cabal
@@ -1,5 +1,5 @@
name: yesod-core
-version: 0.8.1
+version: 0.8.2
license: BSD3
license-file: LICENSE
author: Michael Snoyman