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

Haskell Happstack, can I use a string with html tags as response?

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

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

在上面的代码中,page404中的<strong>标签被转义了,所以我得到了“<strong>How do I pase the tag BOLD?</strong>”作为响应,而一个主页被渲染为“怎么办我解析标签 BOLD".

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

提前致谢。

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

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

此外,您可能应该注意到,在出现 404 错误时发送 200 HTTP 响应令人困惑。