如何使用拼接渲染抢劫模板?

时间:2016-12-13 16:22:56

标签: haskell haskell-snap-framework heist

我试图使用renderWithSplices - http://hackage.haskell.org/package/snap-1.0.0.0/docs/Snap-Snaplet-Heist.html#v:renderWithSplices

获取Splices s类型的值的惯用方法是什么(第二个参数为renderWithSplices)?

1 个答案:

答案 0 :(得分:1)

heist tutorial有两个定义Splices类型的示例。

如果您点击上面链接的黑线鳕链中的Splices链接,我们会看到Splices的定义如下:

type Splices s = MapSyntax Text s

如果您再点击MapSyntax链接,则会转到map-syntax包的文档。这是一个小包,定义了一些更方便的创建地图的语法。顶部有一个例子,但一般模式如下:

mySplices = do
    k1 ## v1
    k2 ## v2

由于前面的定义告诉我们键是文本,我们可以执行以下操作来找出值的类型需要:

someFunc = do
    ...
    renderWithSplices "my-template" mySplices
    ...

mySplices = do
    "foo" ## I.textSplice "bar"

如果你有一个最近的GHC(我认为7.8或更高),最后一行的下划线将创建一个类型漏洞,并使编译器告诉你该位置的东西应该是什么类型。然后你可以写出那种类型的适当的东西,从那里开始应该更明显。