我可以找到大量使用blitz和其他编译时模板库和happstack的文档,但我想知道如何使用html文件作为模板。
发布于 2011-06-23 21:38:37
虽然有很多选项,但我最喜欢的是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>要在happstack中使用heist,您需要happstack-heist包。有关更多详细信息和其他选项,请参见。
发布于 2011-06-23 22:00:06
HStringTemplate包提供了一个非常通用的运行时模板系统,不仅适用于HTML,而且适用于任何类型的文本输出:
http://hackage.haskell.org/packages/archive/HStringTemplate/0.6.6/doc/html/Text-StringTemplate.html
通过可选程序包http://hackage.haskell.org/package/happstack-hstringtemplate提供的一些额外实例,HStringTemplate程序包可以很好地与Happstack集成
https://stackoverflow.com/questions/6452837
复制相似问题