0

按照 Stencil 文档中的说明,我注册了一个简单的自定义标签:

let ns = Namespace()

ns.registerSimpleTag("contact") { context in
  return "<a href=\"/contact\">contact us</a>"
}

但我看不到如何将命名空间传递给render,因为response.render只需要一个字典,而不是一个实际的Context对象。

我错过了什么?我应该在某个地方使用而不是自己创建一个预先存在的命名空间吗?

4

1 回答 1

1

您可以分叉https://github.com/IBM-Swift/Kitura-StencilTemplateEngine并更改KituraStencilTemplateEngine.swift

StencilTemplateEngine.render()中定义您的ns命名空间并将返回代码行更改为:

return try template.render(Context(dictionary: context), namespace: ns)

然后在你的 fork 中添加一个标签,并在Package.swift中使用你的 fork 作为依赖项。

于 2016-11-14T19:39:58.053 回答