2016-04-08 13 views
3

Handlebars.Netを使用して、キャリッジリターンと改行を<br>タグで置き換えるHandlebarsHelperを作成したいと思います。HandleBarsヘルパーのサーバーサイドを作成するための構文は何ですか?

string pattern = @"/(\r\n|\n|\r)/gm"; 
string replacement = "<br>"; 
Regex rgx = new Regex(pattern); 

Handlebars.RegisterHelper("link_to", (string text) => 
{ 
    text = rgx.Replace(text, replacement); 
}); 

コンパイラ(またはReSharperの)私はHandlebarsBlockHelperまたはHandlebarsHelperを使用しようとしている、と私はどちらの場合で、引数が不足していた場合、それは言うことができないことを私に語っている:それはこのようなものが見えるはずです。

  1. 2つの違いは何ですか?
  2. 私はこれについて多くの文書を見つけることができないようです。上記の2つのオブジェクト、HelperOptions、TextWriter、ダイナミックコンテキスト、および引数オブジェクトリストの使い方のドキュメントはありますか?

答えて

2

これは、C#の正規表現のクラスから少し助けを借りて、このように見てしまった:私の質問に答えるために

var newlineRegx = new Regex("(\\r\\n|\\n|\\r)",RegexOptions.Multiline); 

Handlebars.RegisterHelper("handleNewLines", (output, context, arguments) => 
{ 
    var str = newlineRegx.Replace((string)arguments[0], "<br>"); 
    output.Write(str); 
}); 

  1. HandleBarsBlockHelperがでヘルパーを呼び出すためのメカニズムを提供しますテンプレートのブロックブロックヘルパーは、選択したコンテキストでそのブロックを0回以上呼び出すことができます。詳細については、Helpersの説明を参照してください(下部に「詳細:ブロックヘルパー」というラベルのボタンが表示されます)。

    • TextWriter.Writeは、変換後のテキストの出力方法です。
    • コンテキストは本質的に、Handlebars.Compile()で作成したデリゲートに渡したJSONオブジェクトになります。
    • 引数オブジェクトリストは、それは、あなたがより良い引数オブジェクトのリストを理解するために、あなたのHTMLテンプレート

に使用します側面に沿って、あなたが定義しているヘルパーを表示される引数を、よ含んでいます私は私のHTMLテンプレートにこのヘルパーを使用する方法のヘルプは確認してください:「StringVariableは」私はHandlebars.Compile()で作成したデリゲートに渡されたJSONオブジェクトのメンバーである

<div> 
    <p>{{{handleNewLines StringVariable}}}</p> 
</div> 

関連する問題