الفرق بين المراجعتين لصفحة: «Liquid/types»

من موسوعة حسوب
أنشأ الصفحة ب'== الأنواع في لغة Liquid == لكائنات لغة ليكود أحد الأنواع الستة التالية: * سلسلة نصية String. * عدد Number....'
 
ط مراجعة
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
== الأنواع في لغة Liquid ==
<noinclude>{{DISPLAYTITLE: أنواع البيانات في لغة Liquid}}</noinclude>
لكائنات لغة ليكود أحد الأنواع الستة التالية:
لكائنات لغة Liquid أحد الأنواع الستة التالية:


* سلسلة نصية String.
* سلسلة نصية String
* عدد Number.
* عدد Number
* قيمة منطقية Boolean.
* قيمة منطقية Boolean
* القيمة Nil.
* القيمة Nil
* مصفوفة Array.
* مصفوفة Array
* EmptyDrop.
* القيمة EmptyDrop


يمكنك تهيئة المتغيرات في لغة ليكود باستخدام وسوم <code>[[assign]]</code> أو <code>[[capture]]</code>.
يمكنك تهيئة المتغيرات في لغة Liquid باستخدام [[Liquid/variable|الوسم <code>assign</code> أو الوسم <code>capture</code>]].


=== السلسلة النصية String ===
== السلسلة النصية String ==
السلاسل النصية هي عبارة عن تسلسلات من المحارف مُغلَّفة في علامات اقتباس مفردة أو مزدوجة:<syntaxhighlight lang="liquid">
 
السلاسل النصية هي عبارة عن تسلسلات من المحارف مُغلَّفة ضمن علامات اقتباس مفردة أو مزدوجة:<syntaxhighlight lang="liquid">
{% assign my_string = "Hello World!" %}
{% assign my_string = "Hello World!" %}
</syntaxhighlight>لا تحوّل لغة ليكود تسلسلات الهروب escape sequences إلى محارف خاصة.
</syntaxhighlight>لا تحوّل لغة Liquid سلاسل الهروب escape sequences إلى محارف خاصة.
 
== العدد Number ==


=== العدد Number ===
يتضمن الأعداد العشرية floats والأعداد الصحيحة integers:<syntaxhighlight lang="liquid">
يتضمن الأعداد العشرية floats والأعداد الصحيحة integers:<syntaxhighlight lang="liquid">
{% assign my_int = 25 %}
{% assign my_int = 25 %}
سطر 22: سطر 24:
</syntaxhighlight>
</syntaxhighlight>


=== القيمة المنطقية Boolean ===
== القيمة المنطقية Boolean ==
القيم المنطقية إما <code>true</code> أو false، ولا حاجة لعللامات اقتباس عند الإعلان عن قيمة منطقية:<syntaxhighlight lang="liquid">
 
القيم المنطقية إما <code>true</code> أو <code>false</code>، ولا حاجة لاستخدام علامات الاقتباس عند التصريح عن قيمة منطقية:<syntaxhighlight lang="liquid">
{% assign foo = true %}
{% assign foo = true %}
{% assign bar = false %}
{% assign bar = false %}
</syntaxhighlight>
</syntaxhighlight>


=== القيمة Nil ===
== القيمة الفارغة Nil ==
Nil هي قيمة فارغة خاصة تعاد عندما لا يكون لشيفرة Liquid أيّ نتائج، وهي ليست سلسلة نصية مؤلفة مع الأحرف "nil". يجري التعامل مع القيمة Nil على أنها [[القيمة false]] ضمن شروط كتل <code>if</code> ووسوم لغة Liquid الأخرى التي تتحقق من صحة شرطٍ ما.
القيمة <code>nil</code> هي قيمة فارغة خاصة تعاد عندما لا يكون لشيفرة Liquid أيّ نتائج، وهي ليست سلسلة نصية مؤلفة مع الأحرف "nil". يجري التعامل مع القيمة <code>Nil</code> على أنها القيمة <code>false</code> ضمن شروط كتل <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: سطر 38:
   Hello {{ user.name }}!
   Hello {{ user.name }}!
{% endif %}
{% endif %}
</syntaxhighlight>لن تطبع الوسوم أو الخرج الذي يعيد القيمة <code>nil</code> أيّ شيء على الصفحة.
</syntaxhighlight>لن تطبع الوسوم التي تعيد القيمة <code>nil</code> أيّ شيء على الصفحة.<syntaxhighlight lang="liquid">
{| class="wikitable"
|+
!الدخل
|-
|<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 ==
{| class="wikitable"
!الخرج
|-
|<code>The current user is</code>
|}
 
=== المصفوفة Array ===
المصفوفات تحتوي على قوائم من المتغيرات التي تكون من أيّ نوع.
المصفوفات تحتوي على قوائم من المتغيرات التي تكون من أيّ نوع.


==== الوصول إلى عناصر المصفوفة ====
=== الوصول إلى عناصر المصفوفة ===
يمكنك الوصول إلى جميع عناصر المصفوفة من خلال المرور على كل عنصر في المصفوفة باستخدام [[وسم التكرار iteration tag]].
يمكنك الوصول إلى جميع عناصر المصفوفة من خلال المرور على كل عنصر في المصفوفة باستخدام [[Liquid/iteration|الوسوم ذات النوع التكراري iteration tag]].<syntaxhighlight lang="liquid">
{| class="wikitable"
!الدخل
|-
|<syntaxhighlight lang="liquid">
<!-- if site.users = "Tobi", "Laura", "Tetsuro", "Adam" -->
<!-- if site.users = "Tobi", "Laura", "Tetsuro", "Adam" -->
{% for user in site.users %}
{% for user in site.users %}
   {{ user }}
   {{ user }}
{% endfor %}
{% endfor %}
</syntaxhighlight>الخرج:<syntaxhighlight lang="liquid">
  Tobi Laura Tetsuro Adam
</syntaxhighlight>
</syntaxhighlight>
|}
=== الوصول إلى عناصر محددة في المصفوفات ===
{| class="wikitable"
يمكنك استخدام صيغة <code>[</code> <code>]</code> الأقواس المربعة للوصول إلى عنصر محدّد في المصفوفة. تبدأ أدلة عناصر المصفوفة من الصفر، ويُحسَب الدليل السالب من نهاية المصفوفة.<syntaxhighlight lang="liquid">
!الخرج
|-
|<code>Tobi Laura Tetsuro Adam</code>
|}
 
==== الوصول إلى عناصر محددة في المصفوفات ====
يمكنك استخدام صيغة <code>[</code> <code>]</code> الأقواس المربعة للوصول إلى عنصر محدّد في المصفوفة. تبدأ أدلة عناصر المصفوفة من الصفر، ويُحسَب الدليل السالب من نهاية المصفوفة.
{| class="wikitable"
!الدخل
|-
|<syntaxhighlight lang="liquid">
<!-- if site.users = "Tobi", "Laura", "Tetsuro", "Adam" -->
<!-- if site.users = "Tobi", "Laura", "Tetsuro", "Adam" -->
{{ site.users[0] }}
{{ site.users[0] }}
{{ site.users[1] }}
{{ site.users[1] }}
{{ site.users[-1] }}
{{ site.users[-1] }}
</syntaxhighlight>الخرج:<syntaxhighlight lang="liquid">
Tobi
Laura
Adam
</syntaxhighlight>
</syntaxhighlight>
|}
=== تهيئة المصفوفات ===
{| class="wikitable"
لا يمكنك تهيئة المصفوفات باستخدام لغة Liquid فقط، ولكن يمكنك استخدام مرشّح التقسيم <code>[[Liquid/filters|split]]</code> لتقسيم سلسلة نصية إلى مصفوفة من السلاسل النصية الفرعية.
!الخرج
|-
|<code>Tobi</code>


<code>Laura</code>
== الكائن <code>EmptyDrop</code> ==
 
يُعاد كائن <code>EmptyDrop</code> إذا حاولت الوصول إلى كائن محذوف. تُعَدّ كلٌّ من الكائنات <code>page_1</code> و <code>page_2</code> و <code>page_3</code> في المثال التالي كائنات من النوع <code>EmptyDrop</code>:<syntaxhighlight lang="liquid">
<code>Adam</code>
|}
 
==== تهيئة المصفوفات ====
لا يمكنك تهيئة المصفوفات باستخدام لغة Liquid فقط، ولكن يمكنك استخدام مرشّح الانقسام <code>[[split]]</code> لتقسيم سلسلة نصية إلى مصفوفة من السلاسل النصية الفرعية.
 
=== EmptyDrop ===
يُعاد كائن EmptyDrop إذا حاولت الوصول إلى كائن محذوف. تُعَدّ كلٌّ من الكائنات <code>page_1</code> و <code>page_2</code> و <code>page_3</code> في المثال التالي كائنات EmptyDrop:<syntaxhighlight lang="liquid">
{% assign variable = "hello" %}
{% assign variable = "hello" %}
{% assign page_1 = pages[variable] %}
{% assign page_1 = pages[variable] %}
سطر 104: سطر 77:
</syntaxhighlight>
</syntaxhighlight>


==== التحقق من الفراغ ====
=== التحقق من الفراغ ===
يمكنك التحقق لمعرفة ما إذا كان الكائن موجودًا أم لا قبل الوصول إلى أيٍّ من سماته attributes.<syntaxhighlight lang="liquid">
 
يمكنك التحقق لمعرفة ما إذا كان الكائن موجودًا أم لا قبل الوصول إلى أيٍّ من سماته 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> إذا جرى التحقق منها بالتكافؤ مع <code>empty</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 الرسمي.]
[[تصنيف:Liquid]]

المراجعة الحالية بتاريخ 11:10، 5 أغسطس 2021

لكائنات لغة 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.

مصادر