الفرق بين المراجعتين لصفحة: «Liquid/types»
أنشأ الصفحة ب'== الأنواع في لغة Liquid == لكائنات لغة ليكود أحد الأنواع الستة التالية: * سلسلة نصية String. * عدد Number....' |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
== الأنواع في لغة Liquid == | == الأنواع في لغة Liquid == | ||
لكائنات لغة | لكائنات لغة Liquid أحد الأنواع الستة التالية: | ||
* سلسلة نصية String. | * سلسلة نصية String. | ||
سطر 7: | سطر 7: | ||
* القيمة Nil. | * القيمة Nil. | ||
* مصفوفة Array. | * مصفوفة Array. | ||
* EmptyDrop. | * القيمة EmptyDrop. | ||
يمكنك تهيئة المتغيرات في لغة | يمكنك تهيئة المتغيرات في لغة Liquid باستخدام [[Liquid/variable|الوسم <code>assign</code> أو الوسم <code>capture</code>]]. | ||
=== السلسلة النصية String === | === السلسلة النصية String === | ||
السلاسل النصية هي عبارة عن تسلسلات من المحارف مُغلَّفة | السلاسل النصية هي عبارة عن تسلسلات من المحارف مُغلَّفة ضمن علامات اقتباس مفردة أو مزدوجة:<syntaxhighlight lang="liquid"> | ||
{% assign my_string = "Hello World!" %} | {% assign my_string = "Hello World!" %} | ||
</syntaxhighlight>لا تحوّل لغة | </syntaxhighlight>لا تحوّل لغة Liquid تسلسلات الهروب escape sequences إلى محارف خاصة. | ||
=== العدد Number === | === العدد Number === | ||
سطر 23: | سطر 23: | ||
=== القيمة المنطقية Boolean === | === القيمة المنطقية Boolean === | ||
القيم المنطقية إما <code>true</code> أو | القيم المنطقية إما <code>true</code> أو <code>false</code>، ولا حاجة لاستخدام علامات الاقتباس عند التصريح عن قيمة منطقية:<syntaxhighlight lang="liquid"> | ||
{% assign foo = true %} | {% assign foo = true %} | ||
{% assign bar = false %} | {% assign bar = false %} | ||
سطر 29: | سطر 29: | ||
=== القيمة Nil === | === القيمة Nil === | ||
Nil هي قيمة فارغة خاصة تعاد عندما لا يكون لشيفرة Liquid أيّ نتائج، وهي ليست سلسلة نصية مؤلفة مع الأحرف "nil". يجري التعامل مع القيمة Nil على أنها | القيمة Nil هي قيمة فارغة خاصة تعاد عندما لا يكون لشيفرة Liquid أيّ نتائج، وهي ليست سلسلة نصية مؤلفة مع الأحرف "nil". يجري التعامل مع القيمة Nil على أنها القيمة false ضمن شروط كتل <code>if</code> ووسوم لغة Liquid الأخرى التي تتحقق من صحة شرطٍ ما. | ||
إن لم يكن المستخدم موجودًا في المثال التالي (أي أعاد المستخدم <code>user</code> القيمة <code>nil</code>)، فلن تطبع لغة Liquid التحية:<syntaxhighlight lang="liquid"> | إن لم يكن المستخدم موجودًا في المثال التالي (أي أعاد المستخدم <code>user</code> القيمة <code>nil</code>)، فلن تطبع لغة Liquid التحية:<syntaxhighlight lang="liquid"> | ||
سطر 35: | سطر 35: | ||
Hello {{ user.name }}! | Hello {{ user.name }}! | ||
{% endif %} | {% endif %} | ||
</syntaxhighlight>لن تطبع الوسوم | </syntaxhighlight>لن تطبع الوسوم التي تعيد القيمة <code>nil</code> أيّ شيء على الصفحة. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!الدخل | !الدخل | ||
!الخرج | |||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
The current user is {{ user.name }} | The current user is {{ user.name }} | ||
</syntaxhighlight> | |||
|<syntaxhighlight lang="liquid"> | |||
The current user is | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
=== المصفوفة Array === | === المصفوفة Array === | ||
المصفوفات تحتوي على قوائم من المتغيرات التي تكون من أيّ نوع. | المصفوفات تحتوي على قوائم من المتغيرات التي تكون من أيّ نوع. | ||
==== الوصول إلى عناصر المصفوفة ==== | ==== الوصول إلى عناصر المصفوفة ==== | ||
يمكنك الوصول إلى جميع عناصر المصفوفة من خلال المرور على كل عنصر في المصفوفة باستخدام [[ | يمكنك الوصول إلى جميع عناصر المصفوفة من خلال المرور على كل عنصر في المصفوفة باستخدام [[Liquid/iteration|الوسوم ذات النوع التكراري iteration tag]]. | ||
{| class="wikitable" | {| class="wikitable" | ||
!الدخل | !الدخل | ||
!الخرج | |||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
سطر 63: | سطر 62: | ||
{{ user }} | {{ user }} | ||
{% endfor %} | {% endfor %} | ||
</syntaxhighlight> | |||
|<syntaxhighlight lang="liquid"> | |||
Tobi Laura Tetsuro Adam | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
==== الوصول إلى عناصر محددة في المصفوفات ==== | ==== الوصول إلى عناصر محددة في المصفوفات ==== | ||
يمكنك استخدام صيغة <code>[</code> <code>]</code> الأقواس المربعة للوصول إلى عنصر محدّد في المصفوفة. تبدأ أدلة عناصر المصفوفة من الصفر، ويُحسَب الدليل السالب من نهاية المصفوفة. | يمكنك استخدام صيغة <code>[</code> <code>]</code> الأقواس المربعة للوصول إلى عنصر محدّد في المصفوفة. تبدأ أدلة عناصر المصفوفة من الصفر، ويُحسَب الدليل السالب من نهاية المصفوفة. | ||
{| class="wikitable" | {| class="wikitable" | ||
!الدخل | !الدخل | ||
!الخرج | |||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
سطر 81: | سطر 78: | ||
{{ site.users[1] }} | {{ site.users[1] }} | ||
{{ site.users[-1] }} | {{ site.users[-1] }} | ||
</syntaxhighlight> | |||
|<syntaxhighlight lang="liquid"> | |||
Tobi | |||
Laura | |||
Adam | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
==== تهيئة المصفوفات ==== | ==== تهيئة المصفوفات ==== | ||
لا يمكنك تهيئة المصفوفات باستخدام لغة Liquid فقط، ولكن يمكنك استخدام مرشّح الانقسام <code>[[split]]</code> لتقسيم سلسلة نصية إلى مصفوفة من السلاسل النصية الفرعية. | لا يمكنك تهيئة المصفوفات باستخدام لغة Liquid فقط، ولكن يمكنك استخدام مرشّح الانقسام <code>[[Liquid/filters|split]]</code> لتقسيم سلسلة نصية إلى مصفوفة من السلاسل النصية الفرعية. | ||
=== EmptyDrop === | === EmptyDrop === | ||
سطر 105: | سطر 97: | ||
==== التحقق من الفراغ ==== | ==== التحقق من الفراغ ==== | ||
يمكنك التحقق لمعرفة ما إذا كان الكائن موجودًا أم لا قبل الوصول إلى أيٍّ من سماته attributes | يمكنك التحقق لمعرفة ما إذا كان الكائن موجودًا أم لا قبل الوصول إلى أيٍّ من سماته attributes كما يلي:<syntaxhighlight lang="liquid"> | ||
{% unless pages == empty %} | {% unless pages == empty %} | ||
<h1>{{ pages.frontpage.title }}</h1> | <h1>{{ pages.frontpage.title }}</h1> | ||
<div>{{ pages.frontpage.content }}</div> | <div>{{ pages.frontpage.content }}</div> | ||
{% endunless %} | {% endunless %} | ||
</syntaxhighlight>ستعيد كلٌّ من السلاسل النصية الفارغة والمصفوفات الفارغة القيمة <code>true</code> إذا جرى التحقق منها | </syntaxhighlight>ستعيد كلٌّ من السلاسل النصية الفارغة والمصفوفات الفارغة القيمة <code>true</code> إذا جرى التحقق منها بالمساواة مع <code>empty</code>. | ||
== مصادر == | == مصادر == | ||
* [https://shopify.github.io/liquid/basics/types/ صفحة Types في توثيق Liquid الرسمي.] | * [https://shopify.github.io/liquid/basics/types/ صفحة Types في توثيق Liquid الرسمي.] |
مراجعة 02:51، 4 أغسطس 2021
الأنواع في لغة Liquid
لكائنات لغة Liquid أحد الأنواع الستة التالية:
- سلسلة نصية String.
- عدد Number.
- قيمة منطقية Boolean.
- القيمة Nil.
- مصفوفة Array.
- القيمة EmptyDrop.
يمكنك تهيئة المتغيرات في لغة Liquid باستخدام الوسم assign
أو الوسم capture
.
السلسلة النصية String
السلاسل النصية هي عبارة عن تسلسلات من المحارف مُغلَّفة ضمن علامات اقتباس مفردة أو مزدوجة:
{% assign my_string = "Hello World!" %}
لا تحوّل لغة Liquid تسلسلات الهروب escape sequences إلى محارف خاصة.
العدد Number
يتضمن الأعداد العشرية floats والأعداد الصحيحة integers:
{% assign my_int = 25 %}
{% assign my_float = -39.756 %}
القيمة المنطقية Boolean
القيم المنطقية إما true
أو false
، ولا حاجة لاستخدام علامات الاقتباس عند التصريح عن قيمة منطقية:
{% assign foo = true %}
{% assign bar = false %}
القيمة Nil
القيمة Nil هي قيمة فارغة خاصة تعاد عندما لا يكون لشيفرة Liquid أيّ نتائج، وهي ليست سلسلة نصية مؤلفة مع الأحرف "nil". يجري التعامل مع القيمة Nil على أنها القيمة false ضمن شروط كتل if
ووسوم لغة Liquid الأخرى التي تتحقق من صحة شرطٍ ما.
إن لم يكن المستخدم موجودًا في المثال التالي (أي أعاد المستخدم user
القيمة nil
)، فلن تطبع لغة Liquid التحية:
{% if user %}
Hello {{ user.name }}!
{% endif %}
لن تطبع الوسوم التي تعيد القيمة nil
أيّ شيء على الصفحة.
الدخل | الخرج |
---|---|
The current user is {{ user.name }}
|
The current user is
|
المصفوفة Array
المصفوفات تحتوي على قوائم من المتغيرات التي تكون من أيّ نوع.
الوصول إلى عناصر المصفوفة
يمكنك الوصول إلى جميع عناصر المصفوفة من خلال المرور على كل عنصر في المصفوفة باستخدام الوسوم ذات النوع التكراري iteration tag.
الدخل | الخرج |
---|---|
<!-- 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 %}
التحقق من الفراغ
يمكنك التحقق لمعرفة ما إذا كان الكائن موجودًا أم لا قبل الوصول إلى أيٍّ من سماته attributes كما يلي:
{% unless pages == empty %}
<h1>{{ pages.frontpage.title }}</h1>
<div>{{ pages.frontpage.content }}</div>
{% endunless %}
ستعيد كلٌّ من السلاسل النصية الفارغة والمصفوفات الفارغة القيمة true
إذا جرى التحقق منها بالمساواة مع empty
.