我想使用Yesod的莎士比亚模板(Licius + Hamlet + Julius)。但我对此有些困难。 enter link description here中的以下代码有效:
type TestAPI
= "tests" :> Get '[JSON] [Test]
:<|> "test" :> Get '[JSON] Test
:<|> "TestHTML.html" :> Get '[HTML] Page_TestHTML
serverTestAPI :: ServerT TestAPI AppM
serverTestAPI = tests
:<|> test
:<|> testHtml
data Page_TestHTML = Page_TestHTML
instance ToMarkup Page_TestHTML where
toMarkup Page_TestHTML = builderHtml
testHtml = return Page_TestHTML
builderHtml = [shamlet|
$doctype 5
<html>
<head>
<title>Greeting2
<body>
<h2> Hello world HTML Qqqqq |]
但是下一个代码无效:
data Page_TestHTML_2 = Page_TestHTML_2
instance ToMarkup Page_TestHTML_2 where
toMarkup Page_TestHTML_2 = builderHtml_2
testHtml_2 = return Page_TestHTML_2
builderHtml_2 = do
$(luciusFile "templates/test/TestHTML2.lucius")
$(shamletFile "templates/test/TestHTML2.hamlet")
我如何一起构建Licius + Hamlet + Julius for Servant(没有整个Yesod)?
答案 0 :(得分:2)
我能够解决这个问题。 以下代码有效!
data Page_LoginHTML = Page_LoginHTML
instance H.ToMarkup Page_LoginHTML where
toMarkup Page_LoginHTML = builderHtml
loginHtml = return Page_LoginHTML
cssStyle :: Html
cssStyle = toHtml $ renderCssUrl undefined
[cassius|
.q-test-2
color: green
|]
htmlBody :: Html
htmlBody =
[shamlet|
<h1> Hamlet Login Render
|]
builderHtml = H.docTypeHtml $ do
H.head $ do
H.title "Login"
H.style cssStyle
H.body htmlBody
也许这对某些人有用。