類型
Liquid 物件可以是六種型別之一
您可以使用 assign
或 capture
標籤來初始化 Liquid 變數。
字串
字串是包含在單引號或雙引號中的字元序列
{% assign my_string = "Hello World!" %}
Liquid 不會將跳脫序列轉換為特殊字元。
數字
數字包含浮點數和整數
{% assign my_int = 25 %}
{% assign my_float = -39.756 %}
布林值
布林值是 true
或 false
。宣告布林值時不需要使用引號
{% 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_1
、page_2
和 page_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
。