テンプレート

テンプレートタグは、コメントやLiquid以外のマークアップの処理を無効にする場所、およびテンプレートファイル間の関係を確立する方法をLiquidに指示します。

comment

Liquidテンプレート内にレンダリングされないコードを残しておくことができます。commentブロックの開始タグと終了タグの間のテキストは出力されず、内部のLiquidコードも実行されません。

入力

{% assign verb = "turned" %}
{% comment %}
{% assign verb = "converted" %}
{% endcomment %}
Anything you put between {% comment %} and {% endcomment %} tags
is {{ verb }} into a comment.

出力



Anything you put between  tags
is turned into a comment.

インラインコメント

インラインコメントを使用して、式がレンダリングまたは出力されないようにすることができます。タグ内のテキストもレンダリングまたは出力されません。

複数行のインラインコメントを作成できます。ただし、各行は#で始める必要があります。

入力

{% # for i in (1..3) -%}
  {{ i }}
{% # endfor %}

{%
  ###############################
  # This is a comment
  # across multiple lines
  ###############################
%}

出力



liquidタグ内のインラインコメント

liquidタグ内でインラインコメントタグを使用できます。コメントする各行にタグを使用する必要があります。

入力

{% liquid
  # this is a comment
  assign topic = 'Learning about comments!'
  echo topic
%}

出力

Learning about comments!

raw

タグ処理を一時的に無効にします。これは、MustacheHandlebarsなど、競合する構文を使用する特定のコンテンツを生成する場合に便利です。

入力

{% raw %}
In Handlebars, {{ this }} will be HTML-escaped, but {{{ that }}} will not.
{% endraw %}

出力


In Handlebars, {{ this }} will be HTML-escaped, but {{{ that }}} will not.

liquid

複数のタグを1組のデリミタで囲み、Liquidロジックをより簡潔に記述できるようにします。

{% liquid
case section.blocks.size
when 1
  assign column_size = ''
when 2
  assign column_size = 'one-half'
when 3
  assign column_size = 'one-third'
else
  assign column_size = 'one-quarter'
endcase %}

liquidタグ内で開始されたタグブロックは同じタグ内で閉じなければならないため、データをechoを使用して出力します。

echo

レンダリングされたHTMLに出力を出力します。これは、式を{{}}で囲むことと同じですが、liquidタグ内で機能し、フィルタをサポートします。

入力

{% liquid
for product in collection.products
  echo product.title | capitalize
endfor %}

出力

Hat Shirt Pants

render

現在のテンプレート内に別のテンプレートのレンダリングされたコンテンツを挿入します。

{% render "template-name" %}

ファイルの.liquid拡張子を記述する必要はありません。

レンダリングされたテンプレート内のコードは、親テンプレート内の変数タグを使用して割り当てられた変数に自動的にアクセスできません。同様に、レンダリングされたテンプレート内で割り当てられた変数には、他のテンプレートのコードからアクセスできません。

render (パラメータ)

変数タグを使用して割り当てられた変数は、renderタグにパラメータとしてリストすることで、テンプレートに渡すことができます。

{% assign my_variable = "apples" %}
{% render "name", my_variable: my_variable, my_other_variable: "oranges" %}

1つ以上のオブジェクトをテンプレートに渡すことができます。

{% assign featured_product = all_products["product_handle"] %}
{% render "product", product: featured_product %}

with

withおよびオプションのasパラメータを使用して、単一のオブジェクトをテンプレートに渡すことができます。

{% assign featured_product = all_products["product_handle"] %}
{% render "product" with featured_product as product %}

上記の例では、レンダリングされたテンプレートのproduct変数には、親テンプレートのfeatured_productの値が保持されます。

for

forおよびオプションのasパラメータを使用して、列挙可能なオブジェクトの各値に対してテンプレートを1回レンダリングできます。

{% assign variants = product.variants %}
{% render "product_variant" for variants as variant %}

上記の例では、製品の各バリエーションに対してテンプレートが1回レンダリングされ、variant変数には、各反復で異なる製品バリエーションオブジェクトが保持されます。

forパラメータを使用する場合、レンダリングされたテンプレート内ではforloopオブジェクトにアクセスできます。

include

includeタグは非推奨です。代わりにrenderを使用してください。

現在のテンプレート内に別のテンプレートのレンダリングされたコンテンツを挿入します。

{% include "template-name" %}

includeタグはrenderタグと同様に機能しますが、レンダリングされたテンプレート内のコードが親テンプレート内の変数にアクセスして上書きすることを許可します。変数の処理方法がパフォーマンスを低下させ、Liquidコードの可読性と保守性を低下させるため、非推奨になりました。

renderタグを使用してテンプレートがレンダリングされる場合、テンプレート内でincludeタグを使用することはできません。