Handlebars 5分鐘快速入門
Handlebars 是 Asgard Template 模式中使用的模板引擎,讓您能以簡潔的語法產生 動態文字內容。
基本概念
Handlebars 使用大括號語法插入動態內容,有兩種不同的使用方式:
雙大括號 vs 三大括號的差異
雙大括號 {{}}
- HTML 轉義
三大括號 {{{}}}
- 非轉義輸出
語法 | 用途 | HTML 轉義 | 範例 |
---|---|---|---|
{{}} | 一般文字輸出 | ✅ 會轉義 | {{content}} → <script> |
{{{}}} | 原始內容輸出 | ❌ 不轉義 | {{{content}}} → <script> |
在 Asgard 中的使用建議
大部分情況下,在 Asgard 內應該使用三大括號 {{{}}}
語法,因為:
- 避免意外轉換:防止特殊字元被錯誤轉換(如
<
變成<
) - 保持資料完整性:確保變數內容按原樣輸出,不被修改
輸出結果:
Hello Alice!您的訂單編號是 ORD20240115001
📖 詳細語法學習
完整的 Handlebars 語法請參考 官方文檔
核心語法
變數插入
條件判斷
迴圈處理
Asgard 內建函數
Asgard 提供 8 個專用輔助函數:
實用範例
基本訊息模板
按鈕模板
{
"type": "BUTTON",
"title": "{{{user.name}}} 的資料",
"text": "會員資料:\n{{{toJson user}}}",
"buttons": [
{
"label": "查看歷史",
"action": {
"type": "MESSAGE",
"text": "顯示對話歷史"
}
}
]
}
API 查詢範例
Template 與 Expression 選擇
情境 | 建議使用 | 原因 |
---|---|---|
文字模板 | Template | 語法簡潔 |
複雜運算 | Expression | JavaScript 功能完整 |
條件判斷 | Template | 內建支援 |
數學計算 | Expression | 更靈活 |