在 Kitura 中使用自定义 Stencil 标签

Using custom Stencil tag in Kitura

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

let ns = Namespace()

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

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

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

你可以分叉 https://github.com/IBM-Swift/Kitura-StencilTemplateEngine and change KituraStencilTemplateEngine.swift

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

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

然后将标签添加到您的分叉,并将您的分叉用作 Package.swift.

中的依赖项