在 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.
中的依赖项
按照 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.
中的依赖项