使用模板格式化字符串

任何接受或创建字符串的步骤也可以包含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.
{{其他}}
4
url{{[检查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.combing.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.
{{/平等}}

的格式平等的在你的工件中声明:

  1. 取代<变量>占位符,将所需的InsightConnect步骤变量格式化为没有花括号的,例如[Stepname]。(变量)
  2. 取代<常数>使用字符串或整数占位符与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”消息在嵌套对象中objobj是父对象密钥的值支安打{“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将在创建工件或内容时捕获新行。如果您想从变量中删除新行,请添加到你逻辑陈述的开头。例如:

         
车把
1
line1
2
{{~ #如果[API触发]。[myvariable]}}
3.
4
{{〜/ if}}
5
line3

将出现为原稿

         
文本
1
line1line2line3

         
车把
1
line1
2
{{#如果[API触发]。[myvariable]}}
3.
4
{{/如果}}
5
line3

将出现为原稿

         
文本
1
第1行
2
第2行
3.
第3行

显示长度

若要显示数组中有多少项或字符串中有多少字符,请使用{{$长度(“step_name”。(变量))}}.取代step_name变量使用您自己的工作流中的步骤变量。例如,如果需要,您还可以输入一个标准的非变量字符串{{$length "Some Text Here"}}