Handlebars 是一個模板機制,提供了為預期的資料元素定義模板佔位符的能力。在執行時,這些資料元素的實際值會被代入範本來建立輸出。
Handlebars 使用 Mustache,這是一個無邏輯的範本引擎。 Mustache 原本是用來建立更多的動態 HTML 頁面,但它也可以用來建立任何基於文字的輸出範本。
用例:
Handlebars 可以滿足多種需求,包括:
- 產生格式化的電子郵件
- 以要求的格式建立檔案或文字,例如 HTTP POST 請求的正文
- 處理複雜的 JSON 有效負載,例如具有巢狀陣列的有效負載
Handlebars 指令
Handlebars 連接器有兩個指令 :
- 渲染檔案範本 :此指令用於建立大型 (>32k 字元) 輸出。它會產生一個實體檔案,可供後續需要檔案輸入的連鎖指令使用。在 Workiva 中儲存檔案範本的一個選項是檔案資源。
- 渲染文本模板 :此指令用於建立中小型輸出。它會產生一個以文字為基礎的輸出,無法用於需要實體檔案的後續指令。
反過來,這些命令都有兩個主要元件:
- 範本: 命令執行時更新的文字。文字會完全按照指定的方式呈現,包括任何縮排或回車。
- 變數:當命令執行時,模板中將被取代的值。可以指定個別變數,例如advanced query 之類命令的行數輸出。
配置範例
以下是使用呈現文字範本的配置範例:
在命令的模板部分,有幾點值得注意:
此範本會呈現原始與 json 變數。
- 此文字以縮排方式渲染 Row Count:{{rows}}
以下是 JSON 物件中的優先順序清單
{{#each priorities}}
+{{Priority}}
{{/each}}
- 範本的第一行是純文字,沒有使用任何變數。
- 第二行為縮排,並使用行 變數。
- 第三行因回車而為空白。
- 第 4-6 行用於處理名為priorities 的 JSON 變數。
- 第 4 行是名為priorities 的 JSON 變數循環的開始。
- 第 5 行傳回名為Priority 的關鍵的 JSON 關鍵值對的值。請注意,關鍵名是區分大小寫的 -- 在該行加上了一個加號 (+),以顯示純文字和變量值通常可以如何結合。
- 第 6 行透過priorities JSON 物件閉合循環。
在指令的變數部分:
- 名為 rows 的變數定義為先前命令的Record Count 輸出。
- 一個名為 priorities 的 JSON 變數被定義為先前命令的JSON File 輸出。
在這個範例中,JSON 物件如下:
[
{"Priority":"Medium"},
{"Priority":"High"},
{"Priority":"Low"}
]
Handlebars 指令產生的渲染文字如下:
注意: 有關手搖桿函數以及如何使用它們來建構範本的其他資訊,可以在我們的Handlebars 函數文章 中找到。
須知事項
變數占位符由雙重 ({{Variable_Name}}) 或三重 ({{{Variable_Name}}}) 大彎括弧定義。三個大括弧用於變量值包含 HTML 特殊字符時,這些特殊字符需要以字元的形式顯示,而不是以與該字元相關的 HTML 代碼的形式顯示。
例如,大於符號 (>) 是 HTML 特殊符號。使用雙括號時,包含此字元的變數值會顯示 HTML 代碼 (>),而使用三括號時則會顯示大於 (>) 字元。