Liquid オブジェクトは 6 つの型のいずれかになります

assign タグまたはcapture タグを使用すると、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」ではありません

Nil は if ブロックや、ステートメントの真実性をチェックするその他の Liquid タグの条件では 偽として処理されます

次の例では、ユーザーが存在しない場合(つまり、usernil を返す場合)、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_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 を返します。