【问题标题】:Generate Html List in Snap快速生成 Html 列表
【发布时间】:2012-08-04 23:27:39
【问题描述】:

我想通过构建一些 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?

【问题讨论】:

  • 看起来你的评论真的是关于将 blaze-html 集成到 Heist 库中,所以这就是我给出的答案。

标签: haskell haskell-snap-framework


【解决方案1】:

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

文档: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)

【讨论】:

  • 如果你能以他的例子并使用renderHtmlNodes做同样的事情,这个答案会更清楚。
  • 太好了,我完全在寻找其他地方,即 Heist 文档,我还检查了 snap-blaze 无济于事。谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-07-17
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多