使用模板格式化字符串
任何接受或创建字符串的步骤也可以包含InsightConnect变量。这些模板帮助您格式化插件和工件卡的字符串内容。
车把101
InsightConnect的模板语法是基于Handlebars语言的。了解更多关于车把的信息,请访问https://handlebarsjs.com/guide
块
Handlebars语言以“块”的形式结构内容,“块”以以{{# <块类型>}}
和结束{{/ <块类型>}}
.在块标签之间输入你的内容,然后替换<块类型>
使用您打算使用的块的名称。您可以在其他块中嵌套块。
在句柄块中格式化变量
所有触发器和操作步骤都会创建基于json的输出。使用步骤的输出变量作为以下步骤的输入。
要快速格式化前面步骤的输出变量,请使用以下格式{{{[stepname]。[variableName]}}
,更换StepName
使用创建输出并替换的步骤的名称variablename
使用您为该变量配置的名称。
或者,您可以单击蓝色+签入任何支持变量的字符串字段以搜索所需的变量。根据创建变量的步骤对变量进行排序。
如果你添加任何变量+登录基于把手的基于把手的模板,删除变量的两侧上的卷曲括号。单个HandlesBars语句应该只有一组四个卷曲括号。例如,{{#每个[StepName]。(变量)}}
是正确的,{{#每个{{[StepName]。(变量)}}}}
是不正确的。
有条件的显示
如果您想要只显示某些变量信息而不是其他信息,请使用条件逻辑和语句来切换您的工件或插件可以发布的变量内容。
条件逻辑使用条件在选项之间切换某些行为。为了让InsightConnect选择一个选项,它必须满足给定的条件。如果不满足条件,则InsightConnect选择第二个选项。
在InsightConnect中,使用“if语句”来指定导致显示第一个选项的条件。按照提供的模板和示例内容配置符合您需要的条件语句。
模板:条件显示
车把
1{{#if <条件检查>}}2满足条件时显示的内容3.{{其他}}4不满足条件时显示的内容5{{/如果}}
示例:条件显示
以下示例根据搜索提供的URL的步骤检查条件(检查URL.URL.)在数据库中。如果该步骤在数据库中找到URL,则变量检查url.wasfound.将被设置为真的
- 如果没有发现URL,则值检查url.wasfound.将假
.
车把
1{{{#if [检查URL]。[wasfound]}}2找到URL {{[检查URL] .URL}}。3.{{其他}}4url{{[检查url]。Url}}未找到。5{{/如果}}
此字符串模板示例检查值检查url.wasfound..如果步骤检查URLgoogle.com
,模板将显示“URL google.com已找到”或“URL google.com未找到”。
显示阵列内容
把手语言允许您迭代数组型输入变量。数组输入和输出保存数据集,以及以下操作的任何后续工作流程,都可以在该数据上运行完整数组的操作。
循环访问内容
由循环创建的输出存储在变量[循环名]中。[$outputs],这是一个对象数组。要从循环后的步骤中访问数据,可以使用以下方法#每一个
模板要在数组中提取每个迭代(对象)的数据。
模板:显示阵列内容
车把
1{{#每个<要检查的项的集合>}}2为数组中的一项显示的内容3.{{/每个}}
例如:显示数组内容
为了说明如何显示阵列内容,我们将构建在为条件显示提供的示例上。而不是在一个上运作检查URL.URL.值,此示例在多个URL字符串数组上运行,该阵列存储在变量中检查URL。美元输出.
车把
1{{#每个[检查URL]。[]数组。$输出}}2{{#如果[检查URL] .in_database}}3.找到了URL {{url}}。4{{其他}}5找不到URL {{url}}。6{{/如果}}7{{/每个}}
对于这个示例,检查URL。美元输出包含URLgoogle.com
,bing.com
, 和askjeeves.com
.如果在数据库中发现了所有三个url,将显示生成的工件。
显示触发器的数组内容
如果触发器摄取阵列类型输入,则[triggername]。[ArrayVariable]。$输出
格式不能工作,因为输出美元
后缀用于在工作流期间添加的数组项。
要显示触发器的数组输入中的数组项,将字符串内容格式化如下:
车把
1{{#ach [triggername]。[ArrayVariable]}}2{{这个}}3.{{/每个}}
的这
变量是指阵列中的当前项。
显示JSON对象内容
您可以在工件中显示所有JSON对象内容,或者通过使用键名只打印特定的项。
模板:打印所有JSON对象项
您可以使用此模板打印JSON对象中所有项目的列表。
车把
1{{#每个[StepName]。[JSON object variable]}}2{{#。}}3.{{@key}} = {{。}}4{{/每个}}5{{/每个}}
这段时间.
指在JSON对象中映射的项目值。的{{@key}} = {{。}}
语句打印键引用和相应的值。例如,JSON项{“狗”:“fido”}
将显示为=狗狗
.
模板:按键名打印JSON对象项目
您还可以通过键名引用JSON对象值来打印JSON对象值。添加您想要的内容之间每个
标签。
车把
1{{#每个[StepName]。[JSON object variable]}}2你的内容{{firstkeyname}}3.{{nextkeyname}},更多的内容4{{等keyname}}5{{/每个}}
为了说明如何使用键名引用打印JSON对象,请考虑此示例对象:
json
1[{“名字”:u 'Line6amp b52400瓦特橱柜','has_image':真的,“url”:u 'https://peoria.craigslist.org/msg/d/line-6-ampwatt-cabinet/6305140213.html', 'has_map': True, 'price': u'$400', 'geotag': None, 'where': Peoria, 'id': u'6305140213', 'datetime': u'2017-09-13 20:34'}2{“名字”:u 'Crate多维数据集40GX吉他音箱的,'has_image':真的,“url”:u 'https://springfieldil.craigslist.org/msg/d/crate-cube-40-gx-guitar-amp/6305483242.html', 'has_map': True, 'price': u'$135', 'geotag': None, 'where': Springfield, 'id': u'6305483242', 'datetime': u'2017-09-14 08:12'}]
基于键名模板的字符串格式可以是:
车把
1{{#each [Search For Sale].[sale_post]}}2{{name}} - {{price}} in {{where}}3.{{/每个}}
示例对象的字符串格式化的最终结果是:
文本
1线路6放大器b 52 400瓦机柜- 400美元在皮奥里亚2箱子立方体40 GX吉他AMP - 斯普林菲尔德135美元
匹配的变量
您还可以通过将字符串或整数与把手进行比较来确定要显示的内容。您的内容仅显示如果平等的
语句找到一个成功的字符串匹配。
模板:匹配变量
车把
1{{# = <变量> <常数>}}2内容显示3.{{/平等}}
的格式平等的
在你的工件中声明:
- 取代
<变量>
占位符,将所需的InsightConnect步骤变量格式化为没有花括号的,例如[Stepname]。(变量)
. - 取代
<常数>
使用字符串或整数占位符与InsightConnect变量值进行比较。字符串必须用双引号格式化(“字符串”
),且整数格式必须不带引号(0
).
例子:匹配变量
在下面的示例中,如果“countposts . conf”的值为。变量count”匹配整数0,工件将显示文本“今天没有发帖”。
车把
1{{#equal [count postings]。[count] 0}}2今天没有发帖3.{{/平等}}
提取嵌套信息
如果您的工作流使用嵌套数组(数组中的阵列)或对象,请使用嵌套与
块抓住嵌套结构中的信息。
模板:提取嵌套信息
车把
1{{#ECH <父结构>}}2{{#with]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} 3.{{<项目提取>}}4{{和}}5{{/每个}}
示例:提取嵌套信息
考虑此嵌套的JSON对象:{“hits”:[{“obj”:{“消息”:“hi”}}]}
.以下轮栏内容将为密钥打印值“HI”消息
在嵌套对象中obj
.obj
是父对象密钥的值支安打
.{“hits”:[{“obj”:{“消息”:“hi”}}]}
.
车把
1{{#ach [hits]}}2{{#with [obj]}}3.消息是{{message}}4{{和}}5{{/每个}}
其他的格式化选项
使用这些选项来使用Handlebars格式化工件内容。
时间变量
InsightConnect还可以用把手显示时间值。
{{$ time.now}}
:以RFC 3339日期格式显示当前时间。
例如,2018-03-14 00:45:49.654049875 +0000 UTC
{{$。Format
:将时间变量格式化为另一种字符串格式。时间变量可以为{{$ time.now}}
或前一步变量。取代<格式字符串>
值,根据您的需要使用下表中的一个选项。
时间格式字符串选项
格式字符串 | 描述 | 示例输出 |
---|---|---|
ANSIC | ANSI-C日期/时间格式,不带时区 | "一月二日星期一15:04:05 2006" |
UnixDate | 带有字符串时区的标准Unix日期/时间格式 | "Mon Jan 2 15:04:05 UTC 2006" |
rubydate. | 带有数字时区偏移量的Ruby标准日期/时间格式 | Mon Jan 02 15:04:05 -0700 2006" |
RFC822 | 短的RFC822日期/时间格式,带有字符串时区 | “02年1月06日15:04 UTC” |
RFC822Z | 短RFC822日期/时间,具有数字时区偏移量 | "02 Jan 06 15:04 -0700" |
RFC850. | 长日期/时间格式与星期名称 | "周一,02- 1月6日15:04:05 UTC" |
RFC1123 | 长日期/时间格式,短工作日 | "Mon, 02 Jan 2006 15:04:05 UTC" |
RFC1123Z | 带有数字时区偏移的长日期/时间格式 | "星期一,2006年1月2日15:04:05 -0700" |
RFC3339 | 短日期/时间格式,带有T分隔符和数字时区偏移 | “2006 - 01 - 02 t15:04:05z07:00” |
RFC3339Nano | 短日期/时间格式,带有T分隔符和十进制时间 | “2006 - 01 - 02 t15:04:05.999999999z07:00” |
厨房 | 短时间格式,12h时间 | “3:04PM” |
邮票 | 短的日期/时间戳 | “1月2 15:04:05” |
Stampmilli. | 短日期/时间戳,精确到小数点后3位 | “1月2 15:04:05.000” |
StampMicro | 短日期/时间戳与6位小数点精度 | “1月2日15:04:05.000000” |
StampNano | 短日期/时间戳与9位小数的准确性 | “1月2 15:04:05.000000000” |
例如:{{$。格式(time.now美元)“根据RFC822”以}}
会显示:02年1月06日15:04 UTC
删除换行
如果将Handlebars语句与内容的其余部分分开,InsightConnect将在创建工件或内容时捕获新行。如果您想从变量中删除新行,请添加~
到你逻辑陈述的开头。例如:
车把
1line12{{~ #如果[API触发]。[myvariable]}}3.么4{{〜/ if}}5line3
将出现为原稿
文本
1line1line2line3
而
车把
1line12{{#如果[API触发]。[myvariable]}}3.么4{{/如果}}5line3
将出现为原稿
文本
1第1行2第2行3.第3行
显示长度
若要显示数组中有多少项或字符串中有多少字符,请使用{{$长度(“step_name”。(变量))}}
.取代step_name
和变量
使用您自己的工作流中的步骤变量。例如,如果需要,您还可以输入一个标准的非变量字符串{{$length "Some Text Here"}}