使用html文件作为happstack中的模板



我可以找到很多关于使用happstack的blitz和其他compiletime模板库的文档,但我想知道如何使用html文件作为模板。

虽然有很多选项,但我最喜欢的是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]]
>

其可用于动态(在运行时加载)CCD_ 3模板:

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

要在happstack中使用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

相关内容

  • 没有找到相关文章

最新更新