類型

Liquid 物件可以是六種型別之一

您可以使用 assigncapture 標籤來初始化 Liquid 變數。

字串

字串是包含在單引號或雙引號中的字元序列

{% assign my_string = "Hello World!" %}

Liquid 不會將跳脫序列轉換為特殊字元。

數字

數字包含浮點數和整數

{% assign my_int = 25 %}
{% assign my_float = -39.756 %}

布林值

布林值是 truefalse。宣告布林值時不需要使用引號

{% assign foo = true %}
{% assign bar = false %}

空值 (Nil)

空值 (Nil) 是一種特殊的空值,當 Liquid 程式碼沒有結果時會傳回。它**不是**包含字元「nil」的字串。

if 區塊和其他檢查陳述式真值的 Liquid 標籤的條件中,空值 (Nil) 會被視為假值

在以下範例中,如果使用者不存在(也就是 user 傳回 nil),Liquid 將不會列印問候語

{% if user %}
  Hello {{ user.name }}!
{% endif %}

傳回 nil 的標籤或輸出將不會在頁面上列印任何內容。

輸入

The current user is {{ user.name }}

輸出

The current user is

陣列

陣列會保留任何型別的變數清單。

存取陣列中的項目

若要存取陣列中的所有項目,您可以使用迭代標籤來迴圈遍歷陣列中的每個項目。

輸入

<!-- if site.users = "Tobi", "Laura", "Tetsuro", "Adam" -->
{% for user in site.users %}
  {{ user }}
{% endfor %}

輸出

  Tobi Laura Tetsuro Adam

存取陣列中的特定項目

您可以使用方括號 [ ] 表示法來存取陣列中的特定項目。陣列索引從零開始。負索引會從陣列的結尾開始計數。

輸入

<!-- if site.users = "Tobi", "Laura", "Tetsuro", "Adam" -->
{{ site.users[0] }}
{{ site.users[1] }}
{{ site.users[-1] }}

輸出

Tobi
Laura
Adam

初始化陣列

您無法僅使用 Liquid 來初始化陣列。

但是,您可以使用split 篩選器將字串分割成子字串的陣列。

EmptyDrop

如果您嘗試存取已刪除的物件,則會傳回 EmptyDrop 物件。在以下範例中,page_1page_2page_3 都是 EmptyDrop 物件

{% assign variable = "hello" %}
{% assign page_1 = pages[variable] %}
{% assign page_2 = pages["does-not-exist"] %}
{% assign page_3 = pages.this-handle-does-not-exist %}

檢查是否為空

您可以在存取物件的任何屬性之前,檢查物件是否存在。

{% unless pages == empty %}
  <h1>{{ pages.frontpage.title }}</h1>
  <div>{{ pages.frontpage.content }}</div>
{% endunless %}

如果檢查空字串和空陣列是否與 empty 相等,則兩者都會傳回 true