型
Liquid オブジェクトは 6 つの型のいずれかになります
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」ではありません。
Nil は if
ブロックや、ステートメントの真実性をチェックするその他の Liquid タグの条件では 偽として処理されます。
次の例では、ユーザーが存在しない場合(つまり、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
を返します。