Handlebars是一种模板机制,它提供了定义模板的功能 ,模板中可以包含预期数据元素的占位符。运行时,这些数据元素的实际值会被代入模板以生成输出。
Handlebars 使用了 Mustache,这是一个无逻辑模板引擎。Mustache 最初是为了构建更动态的 HTML 页面而创建的,但它也可以用于任何可以从模板创建的基于文本的输出。
用例
车把可以满足多种需求,包括:
- 生成格式化电子邮件
- 创建所需格式的文件或文本,例如 HTTP POST 请求的正文。
- 处理复杂的 JSON 有效负载,例如包含嵌套数组的 JSON 有效负载
Handlebars 命令
Handlebars 连接器有两个 命令 :
- 渲染文件模板: 此命令用于创建大型(>32k 字符)输出。它会生成一个物理文件,该文件可供后续需要文件输入的链式命令使用。在 Workiva 中存储文件模板的一种方法是使用文件资源。
- 渲染文本模板: 此命令用于创建小型到中型输出。它会生成基于文本的输出,该输出不能用于后续需要物理文件的命令。
反过来,这些命令中的每一个都包含两个主要组成部分:
- 模板: 命令运行时更新的文本。文本将完全按照指定方式呈现,包括任何缩进或回车符。
- 变量: 命令运行时将在模板中替换的值。可以指定单个变量,例如 高级查询的命令的行计数输出。
示例配置
以下是使用渲染文本模板的示例配置:
该命令的模板部分有几点值得注意:
此模板可渲染纯文本变量和 JSON 变量。
- 此文本已缩进并显示行数:{{rows}}
以下是 JSON 对象中的优先级列表
{{#each prioritys}}
+{{Priority}}
{{/each}}
- 模板的第一行纯属文本,未使用任何变量。
- 第二行缩进并使用了 rows 变量。
- 第三行空白,因为有回车符。
- 第 4-6 行用于处理名为 priority的 JSON 变量。
- 第 4 行是遍历名为 priority的 JSON 变量的循环的开始。
- 第 5 行返回 JSON 键值对中键名为 Priority的值。请注意,键名区分大小写——行中添加了一个加号(+),以显示纯文本和变量值通常如何组合。
- 第 6 行通过 priority JSON 对象完成循环。
在命令的变量部分:
- 名为 rows 的变量定义为先前命令输出的 记录计数 。
- 一个名为 priority 的 JSON 变量被定义为先前命令的 JSON 文件 输出。
在这个例子中,JSON 对象如下:
[
{"优先级":"中"},
{"优先级":"高"},
{"优先级":"低"}
]
Handlebars 命令渲染后的文本如下所示:
注: 有关 Handlebars 函数以及如何使用它们构建模板的更多信息,请参阅我们的 Handlebars 函数文章。
你需要知道的事
变量占位符由双花括号 ({{Variable_Name}}) 或三花括号 ({{{Variable_Name}}}) 定义。当变量值包含需要渲染为字符本身而不是与该字符关联的 HTML 代码的 HTML 特殊字符时,会使用三个花括号。
例如,大于号(>)是 HTML 特殊字符。使用双花括号时,包含此字符的变量值将呈现 HTML 代码 (>),而使用三花括号时,将呈现大于号 (>) 字符。