Создать HTML-список в Snap

Я хочу интегрировать шаблоны Snap и конструктор HTML Blaze, создав HTML-код и привязав его к тегу для использования в шаблоне Heist. Вот что я пытался.

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, сгенерированного blaze?


person ExternalReality    schedule 20.12.2011    source источник
comment
Похоже, ваш комментарий действительно касается интеграции blaze-html в библиотеку Heist, поэтому я дал такой ответ.   -  person Antoine Latter    schedule 21.12.2011


Ответы (1)


Если вы хотите придерживаться соединения Heist, функция renderHtmlNodes из модуля Text.Blaze.Renderer.XmlHtml в пакете 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)
person Antoine Latter    schedule 20.12.2011
comment
Если вы возьмете его пример и сделаете то же самое с помощью renderHtmlNodes, этот ответ будет намного яснее. - person Tikhon Jelvis; 21.12.2011
comment
Отлично, я искал совсем другое место, а именно документы Heist, а также безрезультатно проверял snap-blaze. Спасибо. - person ExternalReality; 21.12.2011