Haskell Happstack,我可以使用带有html标签的字符串作为响应吗?

时间:2015-04-20 00:34:33

标签: haskell happstack

    module Main where

    import Happstack.Lite
    import Text.Html

    main :: IO ()
    main = serve Nothing $ msum [
              nullDir >> ok homePage
            , notFound page404  
        ]

    homePage :: Response
    homePage = toResponse $ do
        p (toHtml "hello") +++ 
            strong (toHtml "BOLD")

    page404 :: Response
    page404 = toResponse "<strong>How do I parse the tag STRONG?</strong>"

嗨,我是一个快乐的人。我想知道是否有一种方法可以显示带有html标签的字符串作为响应而不是使用html模板库?

在上面的代码中,页面404中的<strong>标记已转义,因此我得到了&#34; <strong>How do I pase the tag BOLD?</strong>&#34;作为回复,而一个主页呈现为&#34; 如何解析标签BOLD &#34;。

我必须先解析字符串吗?但是,如果html字符串很大,那会不会太慢?

提前致谢。

1 个答案:

答案 0 :(得分:2)

ToMessage String实例将响应类型设置为text / plain而不是text / html。

您可以为新的String编写自己的实例,该实例本质上是原始实例的副本,但响应类型设置为text / html,或者使用库中的不同工具来更改响应类型。

此外,您可能应该注意到,对404错误发送200 HTTP响应会让人感到困惑。