简介

这是模板API v2文档。看到从模板API v1升级

每个帮助中心主题由一个集合组成可编辑的页面模板定义“帮助中心”中不同类型页面的布局。例如,知识库文章有一个模板,请求列表有一个模板,等等。亚博官方app

Help Center模板只是一个文本文件,当从浏览器接收到对页面的请求时,它将在服务器上呈现为HTML页面。每个模板都混合了HTML标记和用双花括号标识的表达式。表达式在呈现时修改页面内容。

帮助中心模板语言名为Curlybars,并实现了控件的一个大子集车把语言。本页描述该语言。

有关更详细的指南,请参见使用帮助中心模板语言在Zendes亚博k支持帮助中心。

文档的其余部分提供了关于可以在模板中使用的属性、帮助程序和表单的详细信息。

第一次看到下面的示例使用模板语言生成在页面上留下评论的用户列表。的每一个Helper迭代每一个评论对象中的评论数组中。的值对于每个注释author.avatar_url,author.name属性在HTML中呈现。

             
{{#每个评论}}<><divcomment-avatar><imgsrc{{author.avatar_url}}alt《阿凡达》/>div><div评论作者>{{author.name}}div>>{{/每个}}

表达式

模板通常包含表达式在呈现时修改页面内容的。表达式由双花括号标识。例子:{{author.name}}.表达式可以包含文字、帮助中心属性、帮助程序或代码注释:

  • 一个文字字符串、数字或布尔值。字符串必须用单引号或双引号括起来。一个数字可以是任何正整数或负整数。布尔值是真正的

    <李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-eKYRIR sc-gsWcmt jwhztf bMtobU">

    一个帮助中心属性指定帮助中心中的某些数据。例如,author.name属性指定用户请求的文章的作者。该值仅在呈现项目时提供。详细信息请参见帮助中心属性

    <李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-eKYRIR sc-gsWcmt jwhztf bMtobU">

    一个助手执行特定的操作。详细信息请参见有条件的助手数组迭代器帮助器,定制的助手

    <李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-eKYRIR sc-gsWcmt jwhztf bMtobU">

    一个代码注释允许您向自己和稍后可能使用该模板的其他开发人员添加注释。详细信息请参见代码注释

不允许嵌套双花括号。例如,{{{{…}}}}导致错误。但是,您可以使用子表达式计算表达式中的表达式。

子表达式

子表达式允许您在单个表达式中调用多个helper,并将内部helper调用的结果作为参数传递给外部helper。子表达式由括号分隔。

下面的例子显示了表达式中的子表达式:

             
{{搜索占位符=(dc "search_text")}}

子表达式可以嵌套:

             
{{搜索占位符=(摘录(dc "search_text"))}}

子表达式可用于有条件的助手

             
{{#if(比较集合。长度"==" 0)}}<div>空集合。div>{{其他}}<div>您的集合有{{集合。长度}}项目div>{{/如果}}

子表达式可用于数组迭代器助手

             
{{#each (slice(过滤用户。徽章="category_slug" ="成就")0 4)}}<部分><h3>{{名称}}h3><div>{{描述}}div>部分>{{/每个}}

帮助中心属性

模板可以访问帮助中心的各种属性。例如,Article Page模板可以访问一个名为文章具有描述用户所请求的项目的属性。您可以使用点表示法从对象中提取信息。例子:

             
<h1>{{article.title}}h1><p>作者:{{article.author.name}}p>{{article.body}}

属性的完全限定名有时称为路径.例如,名字属性在作者对象,但是article.author.name是它的路径。

根据属性的不同,值可以是字符串、整数、布尔值(true或false)、具有自己属性集的对象或对象数组。例如,评论属性返回所请求页面上所有评论的数组。

单击左侧侧栏中的页面链接,查看所有可用属性。

数组长度

每个数组都有一个隐式数组长度属性,该属性提供数组中的元素数。例子:

             
<p>本文有{{个注释。长度}}评论。p>

上下文

您可以通过为属性设置上下文来减少代码中的混乱。例如,下面的代码段使用了完整的属性路径:

             
<p>作者:{{article.author.name}}p><imgsrc{{article.author.avatar_url}}>

的上下文article.author对于此代码段,使用助手,然后才使用名字而且avatar_url渲染属性。例子:

             
{{#与article.author}}<p>作者:{{名称}}p><imgsrc{{avatar_url}}>{{和}}

假设你也想渲染article.title,它不在article.author上下文。它将在块中被求值为article.author.article.title,一个不存在的属性。

要转义上下文,请添加. . /对该属性,如下:

             
{{#与article.author}}{{. . / article.title}}<p>作者:{{名称}}p><imgsrc{{avatar_url}}>{{和}}

使用额外的. . /转义一个额外的上下文。例子:

             
{{#条}}{{#与作者}}{{. . / . . / article.title}}{{和}}{{和}}

你可以使用其他的构造,如果上下文是falsy.假值是在布尔上下文中计算时转换为false的值。看到如何评估条件

例子:

             
{{#与article.author}}...{{其他}}本文没有作者!{{和}}

请注意:在“帮助中心”,article.author从来都不是真的假的。这里仅用于演示目的。

助手助手在模板中执行操作。例如,资产助手插入资产的相对路径。例子:

             
<imgsrc{{资产background_image.png}}/>

帮助中心模板支持句柄条件帮助和迭代器帮助,以及专门为帮助中心页面设计的自定义帮助。本节涵盖的主题:

有条件的助手

一个有条件的是一个基于指定条件是真还是假而呈现的块。你可以使用内置的车把助手设置如果而且除非构造。您还可以使用自定义条件帮助器创造平等的条件。

如果,if - else

如果条件为真,渲染一个块:

             
{{#如果条件}}块,如果条件为真则呈现{{/如果}}

例子:

             
{{#如果article.internal}}<p>这篇文章是内部的。p>{{/如果}}

如果条件为false,渲染一个备用块:

             
{{#如果条件}}块,如果条件为真则呈现{{其他}}块,如果条件为假则呈现{{/如果}}
除非

如果条件为false,则呈现一个块:

             
{{#除非条件}}块,如果条件为假则呈现{{/除非}}
是,是

当一个值与另一个值相等时,呈现一个块:

             
value1 value2块来渲染如果值是相等的/

例子:

             
文章作者名字“约翰Venturini”<p>很酷的约翰Venturini作者文章p>/

如果值不相等,则呈现一个备用块:

             
value1 value2块来渲染如果值是相等的其他的块来渲染如果值不相等/
如何评估条件

条件通常是帮助中心属性,例如article.internal,其布尔值为真正的.有些属性没有布尔值。这些属性的评估如下:

  • 如果值为数字,则0为假,任何其他数字为真

    <李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-eKYRIR sc-gsWcmt jwhztf bMtobU">

    如果值为字符串,空字符串为假,其他字符串为真

    <李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-eKYRIR sc-gsWcmt jwhztf bMtobU">

    如果该值是对象的集合,空集合为假,其他集合为真

    <李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-eKYRIR sc-gsWcmt jwhztf bMtobU">

    如果值为空,则表达式为假

数组迭代器帮助器

某些帮助中心属性返回一个对象数组,每个对象都有自己的属性值集。例如,评论属性返回在所请求的项目上留下的所有注释。

您可以使用每一个Helper迭代数组并呈现每个项的值。例子:

             
{{#每个评论}}<>{{author.name}}注释了{{created_at}}。>{{/每个}}

该代码片段创建了一个列表,其中包含与文章中的评论数量相同的条目。每个条目都有特定于该注释的数据,比如它的author.name而且created_at值。

每一个Helper将块的上下文设置为数组中的对象,在上面的代码段中是评论对象。换句话说,不要使用{{comment.author.name}}每一个块以上。要访问外部上下文,请使用. . /符号。看到上下文

定制的助手

自定义helper执行帮助中心特有的操作。有关自定义帮助程序的完整列表,请参见全球助手共享的助手,先进的助手

例如,下面的代码段使用名为摘录截断一个字符串:

             
<h1>{{摘录的文章。标题字符= 50}}h1>

字符属性指定要保留的字符数,是可选的。如果不指定,则使用默认值。有关此帮助程序的详细信息,请参见摘录助手

调用helper的语法如下:

             
助手参数...关键价值...

唯一必须的元素是助手名称。参数和键值属性因帮助器而异。

您可以使用类中的助手传递当前根上下文块。假设helper接受一个文章对象作为参数。在一个{{#条}}Block,你可以将对象传递给helper,如下所示:

             
{{#条}}{{my_helper这}}{{和}}

代码注释

要注释模板代码,请使用{{!...}}.例子:

             
{{!测试一下

若要在测试和调试时注释掉另一个表达式,请使用{{!--...——}}.例子:

             
{{!--现在不要渲染这个名字{{author.name}}——}}