2011-12-20 1 views
2

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

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)] 

Это не работает должным образом, поскольку привязка выводит строку HTML непосредственно на сгенерированную страницу. Как получить привязку для рендеринга сгенерированного HTML-кода?

+0

Похоже, ваш комментарий действительно об интеграции blaze- html в библиотеку Heist, так что это ответ, который я дал. –

ответ

3

Если вы хотите придерживаться Heist сращивания, функции renderHtmlNodes из Text.Blaze.Renderer.XmlHtml модуля в xmlhtml пакета должен помочь много в этом случае.

Docs: 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) 
+0

Если вы можете взять его пример и использовать 'renderHtmlNodes', чтобы сделать то же самое, этот ответ будет намного яснее. –

+0

Отлично, я искал где-то еще целиком, а именно документы Heist, и я тоже проверил оснастку безрезультатно. Спасибо. – ExternalReality