テンプレート
テンプレートタグは、コメントや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
タグ処理を一時的に無効にします。これは、MustacheやHandlebarsなど、競合する構文を使用する特定のコンテンツを生成する場合に便利です。
入力
{% 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
タグを使用することはできません。