Использование HTML-файлов в качестве шаблонов в happstack - PullRequest
2 голосов
/ 23 июня 2011

Я могу найти много документации по использованию blitz и других библиотек шаблонов времени компиляции с happstack, но я хотел бы знать, как использовать html-файлы в качестве шаблонов.

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Хотя есть много вариантов, мой любимый вариант будет Heist, который позволит вам определить splice:

> factSplice :: (Monad m) => TemplateMonad m Template
> factSplice = do
>   input <- getParamNode
>   let text = T.unpack $ X.nodeText input
>       n    = read text :: Int
>   return [X.TextNode $ T.pack $ show $ product [1..n]]
>

, который можно использовать в динамическом (загруженном во время выполнения) HTML шаблоне:

<html>
  <head>
    <title>Factorial Page</title>
  </head>
  <body>
    <h1>Factorial Page</h1>
    <p>The factorial of 6 is <fact>6</fact></p>
  </body>
</html>

Чтобы использовать heist в happstack, вам понадобится пакет happstack-heist . Для получения более подробной информации и других параметров, см. Использование Heist .

0 голосов
/ 23 июня 2011

Пакет HStringTemplate предоставляет очень общую систему шаблонов во время выполнения не только для HTML, но и для любого вида текстового вывода:

http://hackage.haskell.org/packages/archive/HStringTemplate/0.6.6/doc/html/Text-StringTemplate.html

Пакет HStringTemplate прекрасно интегрируется с Happstack через несколько дополнительных экземпляров, предоставляемых дополнительным пакетом: http://hackage.haskell.org/package/happstack-hstringtemplate

...