按照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);
}
}
}
对象。
我错过了什么?是否存在我应该使用的预先存在的命名空间,而不是自己创建一个?
答案 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 中的依赖项。