الفرق بين المراجعتين لصفحة: «Liquid/template»
لا ملخص تعديل |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
== الوسوم Tags ذات النوع قالب Template == | == الوسوم Tags ذات النوع قالب Template == | ||
تخبر وسومُ القوالب لغةَ Liquid | تخبر وسومُ القوالب لغةَ Liquid بمكان تعطيل معالجة التعليقات أو الرموز التي ليست تابعة للغة Liquid، وكيفية إنشاء علاقات بين ملفات القوالب. | ||
=== comment === | === comment === | ||
يسمح لك بوضع شيفرة غير مُصيَّرة ضمن قالب Liquid، إذ لن يُطبَع أيّ نص موجود بين كتل فتح وإغلاق الوسم <code>comment</code>، ولن | يسمح لك هذا الوسم بوضع شيفرة غير مُصيَّرة ضمن قالب Liquid، إذ لن يُطبَع أيّ نص موجود بين كتل فتح وإغلاق الوسم <code>comment</code>، ولن تُنفَّذ شيفرة Liquid الموجودة ضمنها أيضًا. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!الدخل | !الدخل | ||
!الخرج | |||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
سطر 16: | سطر 17: | ||
is {{ verb }} into a comment. | is {{ verb }} into a comment. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| <code>Anything you put between tags</code> | |||
| | |||
<code>Anything you put between tags</code> | |||
<code>is turned into a comment.</code> | <code>is turned into a comment.</code> | ||
|} | |} | ||
=== raw === | === raw === | ||
يعطّل معالجة الوسوم مؤقتًا، وهذا مفيد لإنشاء محتوى معيّن يستخدم صيغة متضاربة conflicting syntax مثل [https://mustache.github.io/ Mustache] أو [https://handlebarsjs.com/ Handlebars]. | يعطّل معالجة الوسوم مؤقتًا، وهذا مفيد لإنشاء محتوى معيّن يستخدم صيغة متضاربة conflicting syntax مثل [https://mustache.github.io/ Mustache] أو [https://handlebarsjs.com/ Handlebars]. | ||
{| class="wikitable" | {| class="wikitable" | ||
!الدخل | !الدخل | ||
!الخرج | |||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
سطر 37: | سطر 32: | ||
{% endraw %} | {% endraw %} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
In Handlebars, {{ this }} will be HTML-escaped, but {{{ that }}} will not. | In Handlebars, {{ this }} will be HTML-escaped, but {{{ that }}} will not. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
=== liquid (خاص بالإصدار 5.0.0) === | === liquid (خاص بالإصدار 5.0.0) === | ||
يُستخدَم لإحاطة وسوم متعددة ضمن مجموعة واحدة من المحدّدات، للسماح بكتابة منطق لغة Liquid | يُستخدَم لإحاطة وسوم متعددة ضمن مجموعة واحدة من المحدّدات، للسماح بكتابة منطق لغة Liquid بإيجاز.<syntaxhighlight lang="liquid"> | ||
{% liquid | {% liquid | ||
case section.blocks.size | case section.blocks.size | ||
سطر 62: | سطر 54: | ||
=== echo (خاص بالإصدار 5.0.0) === | === echo (خاص بالإصدار 5.0.0) === | ||
يُستخدَم لإخراج تعبير في شيفرة HTML المصيَّرة، وهذا مماثل لتغليف التعبير بالرموز <code><nowiki>{{</nowiki></code> و <code><nowiki>}}</nowiki></code> ولكنه يعمل ضمن | يُستخدَم لإخراج تعبير في شيفرة HTML المصيَّرة، وهذا مماثل لتغليف التعبير بالرموز <code><nowiki>{{</nowiki></code> و <code><nowiki>}}</nowiki></code> ولكنه يعمل ضمن وسم <code>liquid</code> ويدعم [[Liquid/filters|المرشّحات filters]]. | ||
{| class="wikitable" | {| class="wikitable" | ||
!الدخل | !الدخل | ||
!الخرج | |||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
سطر 72: | سطر 65: | ||
endfor %} | endfor %} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|<code>Hat Shirt Pants</code> | |<code>Hat Shirt Pants</code> | ||
|} | |} | ||
=== render (خاص بالإصدار 5.0.0) === | === render (خاص بالإصدار 5.0.0) === | ||
يُستخدَم لإدخال المحتوى المُصيَّر لقالب آخر ضمن القالب الحالي.<syntaxhighlight lang="liquid"> | يُستخدَم لإدخال المحتوى المُصيَّر لقالب آخر ضمن القالب الحالي.<syntaxhighlight lang="liquid"> | ||
سطر 84: | سطر 72: | ||
</syntaxhighlight>لاحظ أنك لست بحاجة إلى كتابة لاحقة الملف <code>.liquid</code>. | </syntaxhighlight>لاحظ أنك لست بحاجة إلى كتابة لاحقة الملف <code>.liquid</code>. | ||
لا يمكن للشيفرة الموجود في القالب المُصيَّر الوصول تلقائيًا إلى المتغيرات المُسنَدة باستخدام [[الوسوم | لا يمكن للشيفرة الموجود في القالب المُصيَّر الوصول تلقائيًا إلى المتغيرات المُسنَدة باستخدام [[Liquid/variable|الوسوم ذات النوع المتغير variable tags]] في القالب الأب، ولا يمكن الوصول إلى المتغيرات المُسنَدة داخل القالب المُصيَّر عن طريق الشيفرة الموجودة في أي قالب آخر. | ||
=== | === عاملات render === | ||
يمكن تمرير المتغيرات المُسنَدة باستخدام الوسوم | يمكن تمرير المتغيرات المُسنَدة باستخدام الوسوم ذات النوع المتغير إلى قالب عن طريق إدراجها كعاملات للوسم <code>render</code>.<syntaxhighlight lang="liquid"> | ||
{% assign my_variable = "apples" %} | {% assign my_variable = "apples" %} | ||
{% render "name", my_variable: my_variable, my_other_variable: "oranges" %} | {% render "name", my_variable: my_variable, my_other_variable: "oranges" %} | ||
سطر 96: | سطر 84: | ||
==== with ==== | ==== with ==== | ||
يمكن تمرير كائن واحد إلى قالب باستخدام | يمكن تمرير كائن واحد إلى قالب باستخدام العامل <code>with</code> والعامل الاختياري <code>as</code>.<syntaxhighlight lang="liquid"> | ||
{% assign featured_product = all_products["product_handle"] %} | {% assign featured_product = all_products["product_handle"] %} | ||
{% render "product" with featured_product as product %} | {% render "product" with featured_product as product %} | ||
</syntaxhighlight>سيحتفظ | </syntaxhighlight>سيحتفظ المنتج <code>product</code> في القالب المصيَّر في المثال السابق بالقيمة <code>featured_product</code> من القالب الأب. | ||
==== for ==== | ==== for ==== | ||
يمكن تصيير قالب مرة واحدة لكل قيمة لكائن قابل للعدّ باستخدام | يمكن تصيير قالب مرة واحدة لكل قيمة لكائن قابل للعدّ باستخدام العامل <code>for</code> والعامل الاختياري <code>as</code>.<syntaxhighlight lang="liquid"> | ||
{% assign variants = product.variants %} | {% assign variants = product.variants %} | ||
{% render "product_variant" for variants as variant %} | {% render "product_variant" for variants as variant %} | ||
</syntaxhighlight>سيُصيَّر القالب مرة واحدة في المثال السابق لكل <code>product_variant</code>، وسيحتوي المتغير <code>variant</code> على كائن <code>product_variant</code> مختلف لكل تكرار. | </syntaxhighlight>سيُصيَّر القالب مرة واحدة في المثال السابق لكل <code>product_variant</code>، وسيحتوي المتغير <code>variant</code> على كائن <code>product_variant</code> مختلف لكل تكرار. | ||
يمكن الوصول إلى كائن <code>[https://shopify.dev/api/liquid/objects/for-loops forloop]</code> داخل القالب المُصيَّر عند استخدام | يمكن الوصول إلى كائن <code>[https://shopify.dev/api/liquid/objects/for-loops forloop]</code> داخل القالب المُصيَّر عند استخدام العامل <code>for</code>. | ||
=== include === | === include === | ||
<blockquote>'''ملاحظة''': أُلغِي الوسم <code>include</code>، لذلك استخدم الوسم <code>render</code> بدلًا منه.</blockquote>يُستخدَم لإدخال المحتوى المُصيَّر | <blockquote>'''ملاحظة''': أُلغِي الوسم <code>include</code>، لذلك استخدم الوسم <code>render</code> بدلًا منه.</blockquote>يُستخدَم لإدخال المحتوى المُصيَّر لقالبٍ ضمن القالب الحالي.<syntaxhighlight lang="liquid"> | ||
{% include "template-name" %} | {% include "template-name" %} | ||
</syntaxhighlight>يعمل الوسم <code>include</code> بطريقة مشابهة للوسم <code>render</code>، ولكنه يسمح للشيفرة الموجودة داخل القالب المُصيَّر بالوصول إلى المتغيرات واستبدالها ضمن القالب الأب. أُلغِي هذا الوسم بسبب الطريقة التي يتعامل بها مع المتغيرات التي تقلّل من الأداء وتصعّب قراءة شيفرة Liquid وصيانتها. | </syntaxhighlight>يعمل الوسم <code>include</code> بطريقة مشابهة للوسم <code>render</code>، ولكنه يسمح للشيفرة الموجودة داخل القالب المُصيَّر بالوصول إلى المتغيرات واستبدالها ضمن القالب الأب. أُلغِي هذا الوسم بسبب الطريقة التي يتعامل بها مع المتغيرات التي تقلّل من الأداء وتصعّب قراءة شيفرة Liquid وصيانتها. | ||
لاحظ أنه لا يمكن استخدام الوسم <code>include</code> | لاحظ أنه لا يمكن استخدام الوسم <code>include</code> ضمن القالب عند تصييره باستخدام الوسم <code>render</code>. | ||
== مصادر == | == مصادر == | ||
* [https://shopify.github.io/liquid/tags/template/ صفحة Template في توثيق Liquid الرسمي.] | * [https://shopify.github.io/liquid/tags/template/ صفحة Template في توثيق Liquid الرسمي.] |
مراجعة 16:13، 4 أغسطس 2021
الوسوم Tags ذات النوع قالب Template
تخبر وسومُ القوالب لغةَ 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
|
raw
يعطّل معالجة الوسوم مؤقتًا، وهذا مفيد لإنشاء محتوى معيّن يستخدم صيغة متضاربة conflicting syntax مثل 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 (خاص بالإصدار 5.0.0)
يُستخدَم لإحاطة وسوم متعددة ضمن مجموعة واحدة من المحدّدات، للسماح بكتابة منطق لغة 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 %}
استخدم الوسم echo
لإخراج البيانات، لأنه يجب إغلاق أي كتل وسوم مفتوحة ضمن الوسم liquid
بالوسم نفسه.
echo (خاص بالإصدار 5.0.0)
يُستخدَم لإخراج تعبير في شيفرة HTML المصيَّرة، وهذا مماثل لتغليف التعبير بالرموز {{
و }}
ولكنه يعمل ضمن وسم liquid
ويدعم المرشّحات filters.
الدخل | الخرج |
---|---|
{% liquid
for product in collection.products
echo product.title | capitalize
endfor %}
|
Hat Shirt Pants
|
render (خاص بالإصدار 5.0.0)
يُستخدَم لإدخال المحتوى المُصيَّر لقالب آخر ضمن القالب الحالي.
{% render "template-name" %}
لاحظ أنك لست بحاجة إلى كتابة لاحقة الملف .liquid
.
لا يمكن للشيفرة الموجود في القالب المُصيَّر الوصول تلقائيًا إلى المتغيرات المُسنَدة باستخدام الوسوم ذات النوع المتغير variable tags في القالب الأب، ولا يمكن الوصول إلى المتغيرات المُسنَدة داخل القالب المُصيَّر عن طريق الشيفرة الموجودة في أي قالب آخر.
عاملات render
يمكن تمرير المتغيرات المُسنَدة باستخدام الوسوم ذات النوع المتغير إلى قالب عن طريق إدراجها كعاملات للوسم render
.
{% assign my_variable = "apples" %}
{% render "name", my_variable: my_variable, my_other_variable: "oranges" %}
يمكن تمرير كائن واحد أو أكثر إلى قالب.
{% 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
.
{% assign variants = product.variants %}
{% render "product_variant" for variants as variant %}
سيُصيَّر القالب مرة واحدة في المثال السابق لكل product_variant
، وسيحتوي المتغير variant
على كائن product_variant
مختلف لكل تكرار.
يمكن الوصول إلى كائن forloop
داخل القالب المُصيَّر عند استخدام العامل for
.
include
ملاحظة: أُلغِي الوسم
include
، لذلك استخدم الوسمrender
بدلًا منه.
يُستخدَم لإدخال المحتوى المُصيَّر لقالبٍ ضمن القالب الحالي.
{% include "template-name" %}
يعمل الوسم include
بطريقة مشابهة للوسم render
، ولكنه يسمح للشيفرة الموجودة داخل القالب المُصيَّر بالوصول إلى المتغيرات واستبدالها ضمن القالب الأب. أُلغِي هذا الوسم بسبب الطريقة التي يتعامل بها مع المتغيرات التي تقلّل من الأداء وتصعّب قراءة شيفرة Liquid وصيانتها.
لاحظ أنه لا يمكن استخدام الوسم include
ضمن القالب عند تصييره باستخدام الوسم render
.