可用的標籤

下列主題說明每一種類型的標記︰

控制流程標籤

控制流程標籤決定哪一個程式碼區塊應執行,以及要轉譯的內容,根據指定的條件。 條件是使用可用的 Liquid 運算子建置,或單純根據條件

if

如果符合指定條件,則執行程式碼區塊。

{% if user.fullname == 'Dave Bowman' %}

Hello, Dave.

{% endif %}

unless

就像 if,但它是在符合指定條件時執行程式碼區塊。

{% unless page.title == 'Home' %}

This is not the Home page.

{% endunless %}

elsif/else

新增其他條件至 if 或 unless 區塊。

{% if user.fullname == 'Dave Bowman' %}

Hello, Dave.

{% elsif user.fullname == 'John Smith' %}

Hello, Mr. Smith.

{% else %}

Hello, stranger.

{% endif %}

case/when

switch 陳述式,用來比較變數與不同的值,並針對每個值執行不同的程式碼區塊。

{% case user.fullname %}

{% when 'Dave Bowman' %}

Hello, Dave.

{% when 'John Smith' %}

Hello, Mr. Smith.

{% else %}

Hello, stranger.

{% endcase %}

反覆項目標籤

反覆項目標籤是用來重複執行/轉譯程式碼區塊。

for

重複執行程式碼區塊。 最常用來反覆查詢陣列或字典中的項目。

在 for 標籤區塊內,forloop 可以使用。

代碼

{% for child_page in page.children %}

<a href="{{ child_page.url }}">{{ child_page.title }}</a>

{% endfor %}

輸出

<a href="/parent/child1/">Child 1</a>

<a href="/parent/child2/">Child 2</a>

<a href="/parent/child3/">Child 3</a>

參數

for 的這些參數可以單獨使用,也可以組合使用。

limit

在特定項目數之後結束迴圈。

代碼

{% for child_page in page.children limit:2 %}

<a href="{{ child_page.url }}">{{ child_page.title }}</a>

{% endfor %}

輸出

<a href="/parent/child1/">Child 1</a>

<a href="/parent/child2/">Child 2</a>

offset

從特定索引處開始迴圈。

代碼

{% for child_page in page.children offset:1 %}

<a href="{{ child_page.url }}">{{ child_page.title }}</a>

{% endfor %}

輸出

<a href="/parent/child2/">Child 2</a>

<a href="/parent/child3/">Child 3</a>

range

定義要循環的數字範圍。

代碼

{% assign n = 4 %}

{% for i in (2..n) %}

{{ i }}

{% endfor %}

{% for i in (10..14) %}

{{ i }}

{% endfor }}

輸出

2 3 4

10 11 12 14

reversed

反向逐一查詢迴圈,從最後一項開始。

代碼

{% for child_page in page.children reversed %}

<a href="{{ child_page.url }}">{{ child_page.title }}</a>

{% endfor %}

輸出

<a href="/parent/child3/">Child 3</a>

<a href="/parent/child2/">Child 2</a>

<a href="/parent/child1/">Child 1</a>

cycle

循環一組字串,並依字串傳遞做為參數的順序將其輸出。 每次呼叫 cycle 時,做為參數傳遞的下一個字串就會輸出。

代碼

{% for item in items %}

<div class="{% cycle 'red', 'green', 'blue' %}"> {{ item }} </div>

{% end %}

輸出

<div class="red"> Item one </div>

<div class="green"> Item two </div>

<div class="blue"> Item three </div>

<div class="red"> Item four </div>

<div class="green"> Item five</div>

tablerow

產生 HTML 表格。 必須包裝在開始 <table> 和結束 </table> HTML 標籤中。

在 tablerow 標籤區塊內,tablerowloop 可以使用。

代碼

<table>

{% tablerow child_page in page.children %}

{{ child_page.title }}

{% endtablerow %}

</table>

輸出

<table>

<tr class="row1">

<td class="col1">

Child Page 1

</td>

<td class="col2">

Child Page 2

</td>

<td class="col3">

Child Page 3

</td>

<td class="col4">

Child Page 4

</td>

</tr>

</table>

參數

tablerow 的這些參數可以單獨使用,也可以組合使用。

輸出

<table>

<tr class="row1">

<td class="col1">

Child Page 1

</td>

<td class="col2">

Child Page 2

</td>

</tr>

<tr class="row2">

<td class="col3">

Child Page 3

</td>

<td class="col4">

Child Page 4

</td>

</tr>

</table>

代碼

<table>

{% tablerow child_page in page.children cols:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

描述產生的表格應有多少列。

cols

limit

在特定項目數之後結束迴圈。

代碼

<table>

{% tablerow child_page in page.children limit:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

輸出

<table>

<tr class="row1">

<td class="col1">

Child Page 1

</td>

<td class="col2">

Child Page 2

</td>

</tr>

</table>

offset

從特定索引處開始迴圈。

代碼

<table>

{% tablerow child_page in page.children offset:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

輸出

<table>

<tr class="row1">

<td class="col1">

Child Page 3

</td>

<td class="col2">

Child Page 4

</td>

</tr>

</table>

range

定義要循環的數字範圍。

代碼

<table>

{% tablerow i in (1..3) %}

{{ i }}

{% endtablerow %}

</table>

變數標籤

變數標籤用來建立新的 Liquid 變數。

assign

建立新變數。 指派也可以使用 Liquid 篩選來修改值。

代碼

{% assign is_valid = true %}

{% if is_valid %}

It is valid.

{% endif %}

{% assign name = "dave bowman' | upcase %}

{{ name }}

輸出

It is valid.

DAVE BOWMAN

capture

擷取其區塊內的內容,並將它指派給變數。 稍後就可使用輸出標籤轉譯此內容。

代碼

{% capture hello %}Hello, {{ user.fullname }}.{% endcapture %}

{{ hello }}

{{ hello }}

輸出

Hello, DAVE BOWMAN.

Hello, DAVE BOWMAN.

範本標籤

範本標籤負責控制各種方式的範本輸出,並允許結合多個範本進行單次輸出。

include

將某個範本的內容包含在另一個範本中 (依名稱)。 在 Dynamics 365 入口網站中,另一個範本的來源通常會是網站範本。 這允許在多個地方重複使用常用的範本片段。

當範本包括在另一個範本中時,被包括的範本將能存取上層範本中定義的任何變數。

{% include 'My Template' %}

另外也可以傳遞任意數目的具名參數至 include 標籤。 這些參數會定義為所包括範本中的變數。

{% include 'My Template' a:x, b:y %}

block

搭配 extends 用來提供範本繼承。 請參閱 extends 了解用法。

extends

搭配 block 標籤用來提供範本繼承。 這允許多個範本使用共用的配置,同時覆寫上層配置的特定區域。

在 Dynamics 365 入口網站中,提供給標籤的上層範本名稱通常是指網站範本的名稱。

使用 extends 時,它必須是範本中的第一項內容,而且後面只能接著一個或多個 block 標籤。

如果上層範本中定義的 block 未被覆寫,它在上層範本中的內容 (如果有) 將會呈現。

comment

可讓您在 Liquid 範本內留下未轉譯的程式碼。 block 內的任盒內容都不會轉譯,且內含的任何 Liquid 程式碼都不會執行。

代碼

Hello{% comment %}, {{ user.fullname }}{% endcomment %}. My name is Charles.

輸出

Hello. My name is Charles.

raw

允許在頁面上輸出 Liquid 程式碼,而不將它剖析和執行。

輸出

Hello, {{ user.fullname }}. My name is Charles.

Dynamics 365 實體標記

Dynamics 365 實體標籤用來載入和顯示 Dynamics 365 資料,或使用其他 Dynamics 365 入口網站架構服務。 這些標籤是 Liquid 語言的 Dynamics 365 專用擴充功能。

圖表

新增 Dynamics 365 圖表至網頁。 您可以在網頁的 [複製] 欄位或網站範本的 [來源] 欄位中新增圖表標籤。 如需新增 Dynamics 365 圖表至網頁的步驟,請參閱新增 Dynamics 365 圖表至入口網站中的網頁

{% chart id:"EE3C733D-5693-DE11-97D4-00155DA3B01E" viewid:"00000000-0000-0000-00AA-000010001006" %}

參數

圖表標籤提供的參數有兩個:chart id 和 viewid。

chart id

圖表的視覺效果識別碼。 您可以匯出圖表來取得此識別碼。

viewid

實體在檢視表編輯器中開啟時的識別碼。

editable

呈現指定 Dynamics 365 入口網站 CMS 物件為使用前端編輯引擎發佈內容,針對具有該物件的內容編輯權限的使用者。 可編輯物件包括頁面程式碼片段網頁連結

{% editable page 'adx_copy' type: 'html', title: 'Page Copy', escape: false, liquid: true %}

{% editable snippets "Header" type: 'html' %}

<!--

An editable web link set required a specific DOM structure, with

certain classes on the containing element, as demonstrated here.

-->

{% assign primary_nav = weblinks["Primary Navigation"] %}

{% if primary_nav %}

<div {% if primary_nav.editable %}class="xrm-entity xrm-editable-adx_weblinkset"{% endif %}>

<ul>

<!-- Render weblinks... -->

</ul>

{% editable primary_nav %}

</div>

{% endif %}

參數

第一個提供給 editable 的參數是可編輯物件。 例如,這可能是 Web 連結組、程式碼片段或目前頁面。 選擇性的第二個參數是用來指定該物件中要轉譯和編輯的屬性名稱或索引鍵。 例如,這可能是實體屬性的名稱,或程式碼片段名稱。

在這些初始參數的後面,標籤可支援多種選擇性的具名參數。

class

指定此標籤轉譯的根元素的 class 屬性值。

default

要轉譯的預設值,在可編輯項目沒有值的情況下。

escape

布林值,指出此標記轉譯的值是否要以 HTML 編碼。 預設為 false。

liquid

布林值,指出在此標籤轉譯的文字值中找到的任何 Liquid 範本程式碼是否會經過處理。 預設為 true。

tag

將由此標籤轉譯的容器 HTML 標籤的名稱。 此標籤預設會轉譯 div 元素。 一般建議您選擇 div 或 span 做為此參數的值。

title

指定內容編輯介面中這個可編輯項目的標籤。 如果未提供任何項目,會自動產生易讀的標籤。

type

字串值,指出要針對可編輯文字值呈現的可編輯介面的類型。 此參數的有效值為 html 或 text。 html 是預設值。

entitylist

依名稱或識別碼載入特定實體清單。 之後實體清單的屬性就可以使用標籤區塊中提供的 entitylist 存取。 若要轉譯實體清單的實際結果記錄,請使用區塊內的 entityview 標籤。

如果實體清單成功載入,則區塊內的內容將會轉譯。 如果找不到實體清單,則區塊內容不會轉譯。

{% entitylist name:"My Entity List" %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

根據預設,entitylist 物件將以變數名稱 entitylist 命名。 您也可以提供不同的變數名稱。

{% entitylist my_list = name:"My Entity List" %}

Loaded entity list {{ my_list.adx_name }}.

{% endentitylist %}

參數

只提供單獨一個 id、name 或 key,選取要載入的實體清單。

id

GUID 識別碼載入實體清單。 id 必須是可以剖析為 GUID 的字串。

{% entitylist id:"936DA01F-9ABD-4d9d-80C7-02AF85C822A8" %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

一般而言,不會使用常值 GUID 字串。 而是使用另一個變數的 GUID 屬性指定 id。

{% entitylist id:page.adx_entitylist.id %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

name

依名稱載入實體清單。

{% entitylist name:"My Entity List" %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

key

依識別碼名稱載入實體清單。 如果提供的索引鍵值可以剖析為 GUID,則實體清單將依識別碼載入。 否則會依名稱載入。

<!-- key_variable can hold an ID or name -->

{% entitylist key:key_variable %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

language_code

Dynamics 365 整數語言碼,用來選取要載入的實體清單當地語系化的標籤。 如果沒有提供 language_code,將會使用入口網站應用程式 Dynamics 365 連線的預設語言。

{% entitylist name:"My Entity List", language_code:1033 %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

entityview

依名稱或識別碼載入特定 Dynamics 365 檢視。 檢視表 ߝ 檢視欄中繼資料的屬性、分頁結果記錄等,可以使用標籤區塊中提供的 entityview 存取。

如果檢視表成功載入,則區塊內的內容將會轉譯。 如果找不到檢視表,則區塊內容不會轉譯。

{% entityview logical_name:'contact', name:"Active Contacts" %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

根據預設,entityview 物件將以變數名稱 entityview 命名。 您也可以提供不同的變數名稱。

{% entityview my_view = logical_name:'contact', name:"Active Contacts" %}

Loaded entity view with {{ my_view.total_records }} total records.

{% endentityview %}

如果 entityview 是 entitylist 區塊內的巢狀內容,它會繼承實體清單的預設設定 (結果頁面大小、篩選選項等)。 如果沒有檢視 id 或 name 參數對 entityview 提供,它將會從內含的 entitylist 載入預設檢視。

{% entitylist id:page.adx_entitylist.id %}

{% entityview %}

Loaded default view of the entity list associated with the current page, with {{ entityview.total_records }} total records.

{% endentityview %}

{% endentitylist %}

參數

提供 id logical_name 其中一項,選取要載入的 Dynamics 365 檢視。 如果都未提供,而且 entityview 標籤是 entitylist 標籤內的巢狀內容,則會載入內含的 entitylist 的預設檢視。

id

id 必須是可以剖析為 GUID 的字串。

{% entityview id:"936DA01F-9ABD-4d9d-80C7-02AF85C822A8" %}

Loaded entity view {{ entityview.name }}.

{% endentityview %}

一般而言,不會使用常值 GUID 字串。 而是使用另一個變數的 GUID 屬性指定 id。

{% entityview id:request.params.view %}

Loaded entity view {{ entityview.name }} using "view" query string request parameter.

{% endentityview %}

logical_name

要載入的檢視的 Dynamics 365 實體邏輯名稱。 必須搭配 name 使用。

{% entityview logical_name:'contact', name:"Active Contacts" %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

name

要載入的檢視的 Dynamics 365 名稱。 必須搭配 logical_name 使用。

{% entityview logical_name:'contact', name:"Active Contacts" %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

filter

指定要依使用者或帳戶篩選檢視結果。 必須是字串值「使用者」或「帳戶」。

{% entityview id:request.params.view, filter:'user' %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

常見的使用案例是根據 request 設定此參數。

{% entityview id:request.params.view, filter:request.params.filter %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

metafilter

指定實體清單中繼資料篩選運算式,做為篩選檢視結果的依據。 此參數只有在 entityview 搭配 entitylist 使用時才有效。 在大多數情況下,此參數是根據 request 設定。

{% entitylist id:page.adx_entitylist.id %}

{% entityview id:request.params.view, metafilter:request.params.mf %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

{% endentitylist %}

order

指定排序運算式,用於排序檢視結果。 排序運算式可包含一個或多個實體屬性邏輯名稱,後面接著 ASC 或 DESC 排序方向。

{% entityview id:request.params.view, order:'name ASC, createdon DESC' %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

常見的使用案例是根據 request 設定此參數。

{% entityview id:request.params.view, order:request.params.order %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

page

指定要載入的檢視結果頁面。 如果未指定此參數,將會載入第一頁結果。

必須對此參數傳遞整數值,或是可以剖析為整數的字串。 如果為此參數提供值,但值是 null 或無法剖析為整數的其他值,則會載入第一頁結果。

{% entityview id:request.params.view, page:2 %}

Loaded page {{ entityview.page }} of entity view with {{ entityview.total_records }} total records.

{% endentityview %}

常見的使用案例是根據 request 設定此參數。

{% entityview id:request.params.view, page:request.params.page %}

Loaded page {{ entityview.page }} of entity view with {{ entityview.total_records }} total records.

{% endentityview %}

page_size

指定要為目前結果頁面載入的結果數目。 如果未對此參數提供值,而且在 entitylist 區塊中使用 entityview,則會使用實體清單頁面大小。 如果不在 entitylist 區塊內,則會使用預設值 10。

必須對此參數傳遞整數值,或是可以剖析為整數的字串。 如果為此參數提供值,但值是 null 或無法剖析為整數的其他值,則會使用預設頁面大小。

{% entityview id:request.params.view, page_size:20 %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

常見的使用案例是根據 request 設定此參數。

{% entityview id:request.params.view, page_size:request.params.pagesize %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

search

指定搜尋運算式,做為篩選檢視結果的依據。 簡易關鍵字搜尋運算式將依據以關鍵字為開頭的屬性篩選。 萬用字元 * 也可以包含在運算式內。

{% entityview id:request.params.view, search:'John\*' %}

Loaded entity view with {{ entityview.total_records }} total matching records.

{% endentityview %}

常見的使用案例是根據 request 設定此參數,因此可以根據使用者輸入設定搜尋篩選。

{% entityview id:request.params.view, search:request.params.search %}

Loaded entity view with {{ entityview.total_records }} total matching records.

{% endentityview %}

enable_entity_permissions

指定是否要對檢視結果套用實體權限篩選。 根據預設,此參數會設定為 false。 如果在 entitylist 區塊內使用 entityview,則此參數的值會繼承自實體清單設定。

必須對此參數傳遞 Liquid 類型值,或是可以剖析為布林值的字串 ("true"、"false")。 如果為此參數提供值,但值是 null 或無法剖析為布林值的其他值,則會使用預設值 false。

{% entityview id:request.params.view, enable_entity_permissions:true %}

Loaded entity view with {{ entityview.total_records }} total records to which the user has read permission.

{% endentityview %}

language_code

Dynamics 365 整數語言碼,用來選取要載入的實體檢視當地語系化標籤 (欄標題標籤等) 如果沒有提供 language_code,將會使用入口網站應用程式 Dynamics 365 連線的預設語言。

如果 entitylist 區塊內使用 entityview,entityview 會從 entitylist 繼承其語言碼設定。

{% entityview logical_name:'contact', name:"Active Contacts", language_code:1033 %}

Loaded entity view {{ entityview.name }}.

{% endentitylist %}

searchindex

對入口網站搜尋索引執行查詢。 之後相符的結果就可以使用標籤區塊中提供的 searchindex 存取。

{% searchindex query: 'support', page: params.page, page_size: 10 %}

{% if searchindex.results.size > 0 %}

<p>Found about {{ searchindex.approximate_total_hits }} matches:</p>

<ul>

{% for result in searchindex.results %}

<li>

<h3><a href="{{ result.url | escape }}">{{ result.title | escape }}</a></h3>

<p>{{ result.fragment }}</p>

</li>

{% endfor %}

</ul>

{% else %}

<p>Your query returned no results.</p>

{% endif %}

{% endsearchindex %}

根據預設,搜尋索引物件將以變數名稱 searchindex 命名。 您也可以提供不同的變數名稱。

{% searchindex liquid_search = query: 'support', page: params.page, page_size: 10 %}

{% if liquid_search.results.size > 0 %}

...

{% endif %}

{% endsearchindex %}

參數

searchindex 標籤接受下列參數。

query

用來比對結果的查詢。 此參數主要用來接受使用者指定的索引查詢部分 (如果有的話)。

{% searchindex query: 'support' %}

...

{% endsearchindex %}

常見的使用案例是根據 request 設定此參數。

{% searchindex query: request.params.query %}

...

{% endsearchindex %}

此參數支援 Lucene 查詢剖析器語法

filter

用來比對結果的其他查詢。 此參數主要用來接受開發人員指定的結果篩選 (若需要的話)。

{% searchindex query: request.params.query, filter: '+statecode:0' %}

...

{% endsearchindex %}

此參數支援 Lucene 查詢剖析器語法

備註

filter 和 query 之間的差異在於,雖然兩者都接受 Lucene 查詢剖析器語法,但是 query 對於此語法剖析的方式較為寬容,因為預期大多數使用者不會注意到此語法。 因此,在根據此語法剖析 query 失敗的情況下,整個查詢將會逸出。並做為查詢文字送出。 而另一方面,filter 將會進行嚴格剖析,如果語法無效則會傳回錯誤。

logical_names

Dynamics 365 實體邏輯名稱,相符的結果將會受其限制,做為逗號分隔字串。 如果沒有提供,所有符合的實體都會傳回。

{% searchindex query: request.params.query, logical_names: 'kbarticle,incident' %}

...
>
{% endsearchindex %}

page

要傳回的搜尋結果頁面。 如果沒有提供,將會傳回第一頁 (1)。

{% searchindex query: request.params.query, page: 2 %}

...

{% endsearchindex %}

常見的使用案例是根據 request 設定此參數。

{% searchindex query: request.params.query, page: request.params.page %}

...

{% endsearchindex %}

page_size

要傳回的結果頁面大小。 如果沒有提供,將使用預設大小 10。

{% searchindex query: request.params.query, page_size: 20 %}

...

{% endsearchindex %}

provider

指定要使用的設定搜尋提供者名稱。 若未指定,將使用預設搜尋提供者。

具有多個搜尋提供者是進階設定,不會套用至大部分環境。 一般而言,不需要指定此參數。

{% searchindex query: request.params.query, provider: 'AlternateIndex' %}

...

{% endsearchindex %}

entityform

依名稱或識別碼完整轉譯 Dynamics 365 設定的 定義 Dynamics 365 入口網站內的實體表單和自訂邏輯

備註

entityform 標籤只能在網站範本為主的頁面範本內轉譯的內容中使用。 嘗試在重新寫入為主的頁面範本內使用標籤,將不會轉譯任何內容。 每頁只能轉譯單獨一個 entityform 或 webform 標籤。 第一個之後的 entityform 或 webform 標籤不會轉譯。

{% entityform name: 'My Entity Form' %}

參數

name

您想要載入的實體表單名稱。

{% entityform name:"My Entity Form" %}

{% webform name:"My Web Form" %}

您想要載入的網頁表單名稱。

name

參數

webform

完整轉譯 Dynamics 365 設定的網頁表單,依名稱或識別碼。 webform 標籤只能在網站範本為主的頁面範本內轉譯的內容中使用。 嘗試在重新寫入為主的頁面範本內使用標籤,將不會轉譯任何內容。 每頁只能轉譯單獨一個 entityform 或 webform 標籤。 第一個之後的 entityform 或 webform 標籤不會轉譯。
{% webform name: 'My Web Form' %}

請參閱

新增動態內容並建立自訂範本
Liquid 類型
Liquid 物件
Liquid 標籤
Liquid 篩選