我想通过构建一些 HTML 并将其绑定(bind)到用于 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?
最佳答案
如果您想坚持使用 Heist 拼接,请使用 xmlhtml 中 Text.Blaze.Renderer.XmlHtml
模块中的 renderHtmlNodes
函数在这种情况下,包应该会有很大帮助。
我不完全理解你的例子,但我将如何修改它以纳入我的建议:
numbers :: Int -> Splice AppHandler
numbers n = return $ renderHtmlNodes $ do
p "A list of natural numbers"
ul $ forM_ [1 .. n] (li .toHtml)
关于haskell - 在 Snap 中生成 Html 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8582696/