2

いくつかのHTMLを作成し、Heistテンプレートで使用するためにタグにバインドすることにより、SnapのテンプレートとBlazeHTMLビルダーを統合したいと思います。これが私が試みたものです。

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文字列を生成されたページに直接レンダリングするため、これは意図したとおりに機能しません。ブレイズで生成されたHTMLをレンダリングするためにスナップを取得するにはどうすればよいですか?

4

1 に答える 1

3

Heistスプライスを使い続けたい場合は、 xmlhtmlrenderHtmlNodesパッケージのText.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 に答える