Использование HTML-файлов в качестве шаблонов в happstack

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

2 ответа

Решение

Хотя есть много вариантов, мой любимый будет 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Вам понадобится пакет " Хейстстак-Хейст". Для более подробной информации и других опций смотрите Использование Heist.

Пакет 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

Другие вопросы по тегам