我可以找到大量关于使用 blitz 和其他带有 happstack 的编译时模板库的文档,但我想知道如何使用 html 文件作为模板。
user181351
问问题
351 次
2 回答
1
虽然有很多选项,但我最喜欢的是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包。有关更多详细信息和其他选项,请参阅使用抢劫。
于 2011-06-23T13:38:36.533 回答
0
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
于 2011-06-23T14:00:05.913 回答