Handlebars は、期待されるデータ要素のプレースホルダーを持つテンプレートを定義する機能を提供するテンプレート化メカニズムです。実行時に、これらのデータ要素の実際の値がテンプレートに代入され、出力が作成される。
Handlebarsは、ロジックのないテンプレートエンジンであるMustacheを利用しています。 Mustacheはもともと、よりダイナミックなHTMLページを作成するために作成されましたが、テンプレートから作成できるテキストベースの出力であれば、どのようなものにも使用できます。
使用例
ハンドルバーは、以下を含む様々なニーズに応えることができる:
- 書式設定メールの生成
- HTTP POSTリクエストの本文など、要求された書式設定のファイルやテキストの作成
- 入れ子配列などの複雑なJSONペイロードの処理
ハンドルバーコマンド
Handlebarsコネクターには、2つのコマンド がある:
- レンダリングファイルテンプレート :このコマンドは大きな(32k文字以上)出力を作成するために使用する。これは、ファイル入力を必要とする後続のチェーンコマンドで使用できる物理ファイルを生成する。Workivaにファイルテンプレートを保存するオプションとして、ファイルリソースがあります。
- テキストテンプレートのレンダリング :このコマンドは小~中程度の出力作成に使用する。これはテキストベースの出力を生成し、物理ファイルを必要とする後続のコマンドでは使用できない。
これらのコマンドには、2つのプライマリがあります:
- テンプレート: コマンド実行時に更新されるテキスト。テキストは、インデントやキャリッジリターンを含めて、指定されたとおりに表示される。
- 変数:コマンド実行時にテンプレート内で置換される値。advanced query のようなコマンドの行数出力のように、個々の変数を指定することができる。
構成例
以下はレンダーテキストテンプレートを使用した構成サンプルです:
コマンドのテンプレートセクションでは、いくつかメモしておくべきことがある:
このテンプレートはプレーン変数とjson変数をレンダリングする。
- このテキストはインデントされ、行数をレンダリングする:以下は、JSONオブジェクトの優先順位のリストです {{#各優先順位 + {{/each{{rows}}
}}
{{Priority}}
}}
- テンプレートの最初の行は純粋なテキストで、変数は使っていない。
- 2行目はインデントされ、rows 変数を使用している。
- 3行目はキャリッジリターンのため空白です。
- 4~6行目は、priorities というJSON変数のプロセスに使用されている。
- 線4は、prioritiesというJSON変数を通るループの始まりです。
- 5行目は、Priority というキーのJSONキーと値のペアの値を返却する。キー名称は大文字と小文字を区別することに注意。プレーンテキストと変数値が通常どのように結合できるかを表示するために、行にプラス記号(+)を追加した。
- 6行目は、priorities JSONオブジェクトを通してループを閉じる。
コマンドの変数セクションにおいて:
- rowsという名称の変数が、以前のコマンドから出力されたレコード数として定義されます。
- prioritiesという名称のJSON変数は、以前のコマンドのJSONファイル出力として定義されます。
この例では、JSONオブジェクトは以下のようになります:
[
{"Priority": "Medium"},
{"Priority": "High"},
{"Priority": "Low"}
]。
Handlebarsコマンドでレンダリングされたテキストは以下の通り:
注: ハンドルバー関数の追加情報と、テンプレートを構築するためにどのように使用できるかは、ハンドル関数の記事で検索できます。
知っておくべきこと
変数のプレースホルダーは、二重中括弧 ({{Variable_Name}}) または三重中括弧 ({{{Variable_Name}}}) で定義します。三重中括弧は、変数値にHTMLの特殊文字が含まれていて、その文字に関連するHTMLコードではなく、その文字としてレンダリングする必要がある場合に使用します。
例えば、大なり文字(>)はHTMLの特殊文字です。二重中括弧の場合、この文字を含む変数値はHTMLコード(>)を表示し、三重中括弧の場合は大文字(>)を表示します。