readmeには、ヘルパーの書き方の例が示されています。
Handlebars.RegisterHelper("link_to", (writer, context, parameters) => {
writer.WriteSafeString("<a href='" + context.url + "'>" + context.text + "</a>");
});
string source = @"Click here: {{link_to}}";
var template = Handlebars.Compile(source);
var data = new {
url = "https://github.com/rexm/handlebars.net",
text = "Handlebars.Net"
};
var result = template(data);
/* Would render:
Click here: <a href='https://github.com/rexm/handlebars.net'>Handlebars.Net</a>
*/
最も重要な違いは .NET であり、ヘルパーは値を返しません。むしろ、TextWriter
テンプレート出力を生成している への参照が与えられます。したがって、ヘルパーは、そのライターを介してテンプレートに直接必要なものを書き込むことができます。.WriteSafeString()
デフォルトのエンコーディングをバイパスするためのヘルパーが含まれています。その際、文字列が実際に安全にエンコードされていないことを確認してください。