2

我想通过构建一些 HTML 并将其绑定到标签以在 Heist 模板中使用来集成 Snap 的模板和 Blaze HTML 构建器。这是我尝试过的。

numbers :: Int -> Splice AppHandler
numbers n = return $ [TextNode $ T.concat.toChunks.renderHtml $ do
                    p "A list of natural numbers"
                    ul $ forM_ [1 .. n] (li .toHtml)]

这不能按预期工作,因为 snap 将 HTML 字符串直接呈现到生成的页面。如何快速渲染 blaze 生成的 HTML?

4

1 回答 1

3

如果您想坚持使用 Heist 拼接,则xmlhtml包中renderHtmlNodesText.Blaze.Renderer.XmlHtml模块中的函数在这种情况下应该有很大帮助。

文档:http ://hackage.haskell.org/packages/archive/xmlhtml/0.1.5.2/doc/html/Text-Blaze-Renderer-XmlHtml.html

我不完全理解您的示例,但这就是我将如何修改它以纳入我的建议:

numbers :: Int -> Splice AppHandler
numbers n = return $ renderHtmlNodes $ do
                    p "A list of natural numbers"
                    ul $ forM_ [1 .. n] (li .toHtml)
于 2011-12-20T22:56:13.377 回答