在仆人中使用Licius + Hamlet + Julius [英] Using Licius + Hamlet + Julius in Servant

查看:132
本文介绍了在仆人中使用Licius + Hamlet + Julius的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Yesod的Shakespearean模板(Licius + Hamlet + Julius),但我对此有些困难。以下的代码在这里输入链接描述的作品:

I would like to use Shakespearean Templates (Licius + Hamlet + Julius) from the Yesod.But I have some difficulty with this. The following code from enter link description here works:

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 |]

但是下一个代码不起作用:

But next code is not working:

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(没有整个Yesod)?

How I can constructing together Licius + Hamlet + Julius for Servant (without whole Yesod)?

推荐答案

我能解决这个问题。
以下代码有效!

I was able to solve the question. The following code works!

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

也许这会对某人有用。

这篇关于在仆人中使用Licius + Hamlet + Julius的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆