在Kitura中使用自定义Stencil标签

时间:2016-11-14 18:26:00

标签: kitura

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

render

但是我无法看到如何将命名空间传递给response.render,因为Context只需要一个字典,而不是实际的string ln = string.Empty; int c = 0; using (StreamWriter odd = new StreamWriter(@"C:\Users\rdaniel\Desktop\odd.txt")) using (StreamWriter even = new StreamWriter(@"C:\Users\rdaniel\Desktop\even.txt")) using (StreamReader dr = new StreamReader(@"C:\Users\rdaniel\Desktop\example.txt")) { while (ln != null) { ln = dr.ReadLine(); c += 1; if (c % 2 == 0) { even.WriteLine(ln); } else { odd.WriteLine(ln); } } } 对象。

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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