whamlet embedding
This commit is contained in:
parent
2f4cbaa093
commit
dc737a397d
@ -44,7 +44,10 @@ getWhamletR = defaultLayout [$whamlet|
|
|||||||
<h1>Test
|
<h1>Test
|
||||||
<h2>@{WhamletR}
|
<h2>@{WhamletR}
|
||||||
<h3>_{Goodbye}
|
<h3>_{Goodbye}
|
||||||
|
^{embed}
|
||||||
|]
|
|]
|
||||||
|
where
|
||||||
|
embed = [$whamlet|<h4>Embed|]
|
||||||
|
|
||||||
widgetTest :: Test
|
widgetTest :: Test
|
||||||
widgetTest = testGroup "Test.Widget"
|
widgetTest = testGroup "Test.Widget"
|
||||||
@ -69,4 +72,4 @@ case_whamlet = runner $ do
|
|||||||
{ pathInfo = ["whamlet"]
|
{ pathInfo = ["whamlet"]
|
||||||
, requestHeaders = [("Accept-Language", "es")]
|
, requestHeaders = [("Accept-Language", "es")]
|
||||||
}
|
}
|
||||||
assertBody "<!DOCTYPE html>\n<html><head><title></title></head><body><h1>Test</h1><h2>http://test/whamlet</h2><h3>Adios</h3></body></html>" res
|
assertBody "<!DOCTYPE html>\n<html><head><title></title></head><body><h1>Test</h1><h2>http://test/whamlet</h2><h3>Adios</h3><h4>Embed</h4></body></html>" res
|
||||||
|
|||||||
@ -15,6 +15,7 @@ module Yesod.Widget
|
|||||||
, getMessageRender
|
, getMessageRender
|
||||||
, whamlet
|
, whamlet
|
||||||
, whamletFile
|
, whamletFile
|
||||||
|
, ihamletToRepHtml
|
||||||
-- * Creating
|
-- * Creating
|
||||||
-- ** Head of page
|
-- ** Head of page
|
||||||
, setTitle
|
, setTitle
|
||||||
@ -56,6 +57,7 @@ import Text.Lucius (Lucius)
|
|||||||
import Text.Julius
|
import Text.Julius
|
||||||
import Yesod.Handler
|
import Yesod.Handler
|
||||||
(Route, GHandler, GGHandler, YesodSubRoute(..), toMasterHandlerMaybe, getYesod)
|
(Route, GHandler, GGHandler, YesodSubRoute(..), toMasterHandlerMaybe, getYesod)
|
||||||
|
import Yesod.Content (RepHtml (..), toContent)
|
||||||
import Control.Applicative (Applicative)
|
import Control.Applicative (Applicative)
|
||||||
import Control.Monad.IO.Class (MonadIO)
|
import Control.Monad.IO.Class (MonadIO)
|
||||||
import Control.Monad.Trans.Class (MonadTrans (lift))
|
import Control.Monad.Trans.Class (MonadTrans (lift))
|
||||||
@ -217,6 +219,8 @@ data PageContent url = PageContent
|
|||||||
, pageBody :: Hamlet url
|
, 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
|
class YesodMessage sub master where
|
||||||
type Message sub master
|
type Message sub master
|
||||||
renderMessage :: sub
|
renderMessage :: sub
|
||||||
@ -253,4 +257,13 @@ rules = do
|
|||||||
(Just $ helper [|lift getUrlRenderParams|])
|
(Just $ helper [|lift getUrlRenderParams|])
|
||||||
(Just $ helper [|lift getMessageRender|])
|
(Just $ helper [|lift getMessageRender|])
|
||||||
f env
|
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
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
name: yesod-core
|
name: yesod-core
|
||||||
version: 0.8.1
|
version: 0.8.2
|
||||||
license: BSD3
|
license: BSD3
|
||||||
license-file: LICENSE
|
license-file: LICENSE
|
||||||
author: Michael Snoyman <michael@snoyman.com>
|
author: Michael Snoyman <michael@snoyman.com>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user