الفرق بين المراجعتين ل"Liquid/filters"
سطر 2: | سطر 2: | ||
=== abs === | === abs === | ||
− | يعيد هذا المرشّح قيمة | + | يعيد هذا المرشّح قيمة العدد المطلقة. |
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
!الدخل | !الدخل | ||
+ | !الخرج | ||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
سطر 11: | سطر 12: | ||
{{ 4 | abs }} | {{ 4 | abs }} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | | | + | |<syntaxhighlight lang="liquid"> |
− | + | 17 | |
− | + | 4 | |
− | + | </syntaxhighlight> | |
− | |||
− | |||
− | |||
|} | |} | ||
يعمل المرشّح <code>abs</code> أيضًا مع سلسلة نصية تحتوي على عدد فقط. | يعمل المرشّح <code>abs</code> أيضًا مع سلسلة نصية تحتوي على عدد فقط. | ||
{| class="wikitable" | {| class="wikitable" | ||
!الدخل | !الدخل | ||
+ | !الخرج | ||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
{{ "-19.86" | abs }} | {{ "-19.86" | abs }} | ||
+ | </syntaxhighlight> | ||
+ | |<syntaxhighlight lang="liquid"> | ||
+ | 19.86 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== append === | === append === | ||
− | يضيف هذا المرشّح السلسلة النصية | + | يضيف هذا المرشّح السلسلة النصية المحدَّدة إلى نهاية سلسلة نصية أخرى. |
{| class="wikitable" | {| class="wikitable" | ||
!الدخل | !الدخل | ||
+ | !الخرج | ||
|- | |- | ||
|<syntaxhighlight lang="liquid"> | |<syntaxhighlight lang="liquid"> | ||
{{ "/my/fancy/url" | append: ".html" }} | {{ "/my/fancy/url" | append: ".html" }} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | | | + | |<syntaxhighlight lang="liquid"> |
− | + | /my/fancy/url.html | |
− | + | </syntaxhighlight> | |
− | |||
− | |||
|} | |} | ||
يمكن للمرشّح <code>append</code> أيضًا قبول متغير كوسيطٍ له. | يمكن للمرشّح <code>append</code> أيضًا قبول متغير كوسيطٍ له. |
مراجعة 16:28، 4 أغسطس 2021
المرشّحات Filters
abs
يعيد هذا المرشّح قيمة العدد المطلقة.
الدخل | الخرج |
---|---|
{{ -17 | abs }}
{{ 4 | abs }}
|
17
4
|
يعمل المرشّح abs
أيضًا مع سلسلة نصية تحتوي على عدد فقط.
الدخل | الخرج |
---|---|
{{ "-19.86" | abs }}
|
19.86
|
append
يضيف هذا المرشّح السلسلة النصية المحدَّدة إلى نهاية سلسلة نصية أخرى.
الدخل | الخرج |
---|---|
{{ "/my/fancy/url" | append: ".html" }}
|
/my/fancy/url.html
|
يمكن للمرشّح append
أيضًا قبول متغير كوسيطٍ له.
الدخل | الخرج |
---|---|
{% assign filename = "/index.html" %}
{{ "website.com" | append: filename }}
|
website.com/index.html
|
at_least (خاص بالإصدار 4.0.1)
يَحُدّ من عددٍ ما إلى حد القيمة الأدنى.
الدخل | الخرج |
---|---|
{{ 4 | at_least: 5 }}
{{ 4 | at_least: 3 }}
|
5
|
at_most (خاص بالإصدار 4.0.1)
يَحُدّ من عددٍ ما إلى حد القيمة الأعلى.
الدخل | الخرج |
---|---|
{{ 4 | at_most: 5 }}
{{ 4 | at_most: 3 }}
|
4
|
capitalize
يجعل هذا المرشّح الحرف الأول من سلسلة نصية حرفًا كبيرًا ويحوّل الأحرف المتبقية إلى أحرف صغيرة.
الدخل | الخرج |
---|---|
{{ "title" | capitalize }}
|
Title
|
يُكتَب الحرف الأول فقط من السلسلة النصية كحرف كبير، لذلك لا تُكتَب الأحرف الأولى من الكلمات اللاحقة بأحرف كبيرة:
الدخل | الخرج |
---|---|
{{ "my GREAT title" | capitalize }}
|
My great title
|
ceil
يقرّب هذا المرشّح الدخل إلى أقرب عدد صحيح. تحاول لغة Liquid تحويل الدخل إلى عدد قبل تطبيق المرشّح.
الدخل | الخرج |
---|---|
{{ 1.2 | ceil }}
{{ 2.0 | ceil }}
{{ 183.357 | ceil }}
|
2
|
سنستخدم في المثال التالي قيمة الدخل كسلسلة نصية:
الدخل | الخرج |
---|---|
{{ "3.5" | ceil }}
|
4
|
compact (خاص بالإصدار 4.0.0)
يزيل هذا المرشّح أي قيم nil
من المصفوفة.
افترض في المثال التالي أن site.pages
عبارة عن مجموعة من صفحات محتوى موقع ويب، وبعض هذه الصفحات لها سِمة تسمى category
تحدّد فئة محتوى الصفحة. إذا ربطنا map
هذه الفئات مع مصفوفة، فقد تكون بعض قيم عناصر المصفوفة nil
إن لم تتضمن صفحةٌ ما السمة category
.
الدخل | الخرج |
---|---|
{% assign site_categories = site.pages | map: "category" %}
{% for category in site_categories %}
- {{ category }}
{% endfor %}
|
- business
- celebrities
-
- lifestyle
- sports
-
- technology
|
لكن يمكننا إزالة جميع قيم nil
في المصفوفة باستخدام المرشّح compact
عند إنشاء المصفوفة site_categories
.
الدخل | الخرج |
---|---|
{% assign site_categories = site.pages | map: "category" | compact %}
{% for category in site_categories %}
- {{ category }}
{% endfor %}
|
- business
- celebrities
- lifestyle
- sports
- technology
|
concat (خاص بالإصدار 4.0.0)
يربط (يضم معًا) مصفوفات متعددة، إذ تحتوي المصفوفة الناتجة على جميع العناصر من مصفوفات الدخل.
الدخل | الخرج |
---|---|
{% assign fruits = "apples, oranges, peaches" | split: ", " %}
{% assign vegetables = "carrots, turnips, potatoes" | split: ", " %}
{% assign everything = fruits | concat: vegetables %}
{% for item in everything %}
- {{ item }}
{% endfor %}
|
- apples
- oranges
- peaches
- carrots
- turnips
- potatoes
|
يمكنك تجميع مرشّحات concat
متعددة معًا لضم أكثر من مصفوفتين.
الدخل | الخرج |
---|---|
{% assign furniture = "chairs, tables, shelves" | split: ", " %}
{% assign everything = fruits | concat: vegetables | concat: furniture %}
{% for item in everything %}
- {{ item }}
{% endfor %}
|
- apples
- oranges
- peaches
- carrots
- turnips
- potatoes
- chairs
- tables
- shelves
|
date
يحوّل هذا المرشّح العلامة الزمنية timestamp إلى تنسيق تاريخ date آخر، فتنسيق هذه الصيغة هو strftime
نفسه. يستخدم الدخل تنسيق Time.parse
الخاص بلغة روبي Ruby نفسه.
الدخل | الخرج |
---|---|
{{ article.published_at | date: "%a, %b %d, %y" }}
|
Fri, Jul 17, 15
|
الدخل | الخرج |
---|---|
{{ article.published_at | date: "%Y" }}
|
2015
|
يعمل المرشّح date
مع السلاسل النصية إذا احتوت على تواريخ جيدة التنسيق.
الدخل | الخرج |
---|---|
{{ "March 14, 2016" | date: "%b %d, %y" }}
|
Mar 14, 16
|
يمكنك الحصول على الوقت الحالي من خلال تمرير الكلمة الخاصة "now"
(أو "today"
) إلى المرشّح date
.
الدخل | الخرج |
---|---|
This page was last updated at {{ "now" | date: "%Y-%m-%d %H:%M" }}.
|
This page was last updated at 2021-04-28 17:52.
|
لاحظ أن القيمة ستكون هي الوقت الحالي لآخر إنشاء للصفحة من القالب، وليس وقت تقديم الصفحة إلى المستخدم في حالة التخزين المؤقت أو إنشاء موقع ساكن.
default
يضبط قيمة افتراضية للمتغير الذي لا يملك قيمة مُسنَدة. سيظهر المرشّح default
قيمته إذا كان الدخل nil
أو false
أو فارغ.
لم تُحدَّد قيمة المتغير product_price
، لذلك اُستخدِمت القيمة الافتراضية في المثال التالي:
الدخل | الخرج |
---|---|
{{ product_price | default: 2.99 }}
|
2.99
|
حُدِّدت قيمة المتغير product_price
، لذلك لم تُستخدَم القيمة الافتراضية في المثال التالي:
الدخل | الخرج |
---|---|
{% assign product_price = 4.99 %}
{{ product_price | default: 2.99 }}
|
|
قيمة المتغير product_price
فارغة، لذلك اُستخدِمت القيمة الافتراضية في المثال التالي:
الدخل | الخرج |
---|---|
{% assign product_price = "" %}
{{ product_price | default: 2.99 }}
|
|
بالسماح بالقيمة false
(خاص بالإصدار 5.0.0)
يمكن السماح للمتغيرات أن تعيد القيمة false
بدلًا من القيمة الافتراضية من خلال استخدام المعامل allow_false
.
الدخل | الخرج |
---|---|
{% assign display_price = false %}
{{ display_price | default: true, allow_false: true }}
|
|
divided_by
يقسم هذا المرشّح عددًا على عددٍ آخر.
تُقرَّب النتيجة إلى أقرب عدد صحيح (كالمرشّح floor
) إذا كان المقسوم عليه عددًا صحيحًا.
الدخل | الخرج |
---|---|
{{ 16 | divided_by: 4 }}
{{ 5 | divided_by: 3 }}
|
4
1
|
التحكم بعملية التقريب
ينتج عن المرشّح divided_by
نتيجة من نوع المقسوم عليه نفسه، أي إذا قسمت على عدد صحيح، فستكون النتيجة عددًا صحيحًا. إذا قسمت على عدد عشري float، فستكون النتيجة عددًا عشريًا.
المقسوم عليه في المثال التالي هو عدد صحيح:
الدخل | الخرج |
---|---|
{{ 20 | divided_by: 7 }}
|
2
|
المقسوم عليه في المثال التالي هو عدد عشري:
الدخل | الخرج |
---|---|
{{ 20 | divided_by: 7.0 }}
|
2.857142857142857
|
تغيير أنواع المتغيرات
قد ترغب في استخدام متغير كمقسوم عليه، حيث لا يمكنك في هذه الحالة إضافة .0
لتحويله إلى عدد عشري ببساطة، ولكن يمكنك إسناد assign
نسخة محوَّلة من المتغير إلى عدد عشري باستخدام المرشّح times
.
سنقسم في المثال التالي على متغير يحتوي على عدد صحيح، لذلك نحصل على عدد صحيح:
الدخل | الخرج |
---|---|
{% assign my_integer = 7 %}
{{ 20 | divided_by: my_integer }}
|
|
نضرب المتغير بالعدد 1.0
باستخدام المرشّح times
لنحصل على عدد عشري، ثم نقسمه على عدد عشري بدلًا من ذلك في المثال التالي:
الدخل | الخرج |
---|---|
{% assign my_integer = 7 %}
{% assign my_float = my_integer | times: 1.0 %}
{{ 20 | divided_by: my_float }}
|
|
downcase
يجعل هذا المرشّح كل حرف في سلسلة نصية أحرفًا صغيرة، وليس له تأثير على السلاسل النصية التي تتكون بالفعل من أحرف صغيرة.
الدخل | الخرج |
---|---|
{{ "Parker Moore" | downcase }}
|
parker moore
|
الدخل | الخرج |
---|---|
{{ "apple" | downcase }}
|
apple
|
escape
يطبّق هذا المرشّح عملية الهروب على سلسلة نصية عن طريق استبدال المحارف بتسلسلات الهروب escape sequences (بحيث يمكن استخدام هذه السلسلة في عنوان URL مثلًا)، ولا يغيّر السلاسل النصية التي ليس لديها أي شيء لتطبيق عملية الهروب عليه.
الدخل | الخرج |
---|---|
{{ "Have you read 'James & the Giant Peach'?" | escape }}
|
Have you read 'James & the Giant Peach'?
|
الدخل | الخرج |
---|---|
{{ "Tetsuro Takara" | escape }}
|
Tetsuro Takara
|
escape_once
يطبّق عملية الهروب على سلسلة نصية بدون تغيير الكيانات المُطبَّق عليها الهروب مسبقًا، ولا يغيّر السلاسل النصية التي ليس لديها أي شيء لتطبيق عملية الهروب عليه.
الدخل | الخرج |
---|---|
{{ "1 < 2 & 3" | escape_once }}
|
1 < 2 & 3
|
الدخل | الخرج |
---|---|
{{ "1 < 2 & 3" | escape_once }}
|
1 < 2 & 3
|
first
يعيد هذا المرشّح العنصر الأول من المصفوفة.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | split: " " | first }}
|
Ground
|
الدخل | الخرج |
---|---|
{% assign my_array = "zebra, octopus, giraffe, tiger" | split: ", " %}
{{ my_array.first }}
|
|
يمكنك استخدام المرشّح first
مع الصيغة النقطية عندما تحتاج إلى استخدام المرشّح ضمن وسم:
{% if my_array.first == "zebra" %}
Here comes a zebra!
{% endif %}
floor
يقرّب هذا المرشّح الدخل إلى أقرب عدد صحيح. تحاول لغة Liquid تحويل الدخل إلى عدد قبل تطبيق المرشح.
الدخل | الخرج |
---|---|
{{ 1.2 | floor }}
{{ 2.0 | floor }}
{{ 183.357 | floor }}
|
1
2
183
|
قيمة الدخل في المثال التالي عبارة عن سلسلة نصية:
الدخل | الخرج |
---|---|
{{ "3.5" | floor }}
|
3
|
join
يدمج هذا المرشّح العناصر الموجودة في مصفوفة في سلسلة نصية واحدة باستخدام الوسيط كفاصل بينها.
الدخل | الخرج |
---|---|
{% assign beatles = "John, Paul, George, Ringo" | split: ", " %}
{{ beatles | join: " and " }}
|
|
last
يعيد هذا المرشّح العنصر الأخير من المصفوفة.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | split: " " | last }}
|
|
الدخل | الخرج |
---|---|
{% assign my_array = "zebra, octopus, giraffe, tiger" | split: ", " %}
{{ my_array.last }}
|
|
يمكنك استخدام المرشّح last
مع الصيغة النقطية عندما تحتاج إلى استخدام المرشّح ضمن وسم:
{% if my_array.last == "tiger" %}
There goes a tiger!
{% endif %}
lstrip
يزيل هذا المرشّح كل المسافات (مسافات tab والمسافات الفارغة والأسطر الجديدة) من جانب السلسلة النصية، ولا يؤثر على المسافات بين الكلمات.
الدخل | الخرج |
---|---|
{{ " So much room for activities " | lstrip }}!
|
So much room for activities !
|
map
يُنشئ هذا المرشّح مصفوفة من القيم عن طريق استخراج قيم خاصية مسمَّاة من كائن آخر.
افترض في المثال التالي أن الكائن site.pages
يحتوي على جميع البيانات الوصفية metadata لموقع ويب. يؤدي استخدام assign
مع المرشّح map
إلى إنشاء متغير يحتوي فقط على قيم خصائص الفئة category
لكل شيء في الكائن site.pages
.
الدخل | الخرج |
---|---|
{% assign all_categories = site.pages | map: "category" %}
{% for item in all_categories %}
- {{ item }}
{% endfor %}
|
- business
- celebrities
- lifestyle
- sports
- technology
|
minus
يطرح عددًا من عدد آخر.
الدخل | الخرج |
---|---|
{{ 4 | minus: 2 }}
{{ 16 | minus: 4 }}
{{ 183.357 | minus: 12 }}
|
2
12
171.357
|
modulo
يعيد هذا المرشّح الباقي عملية قسمة.
الدخل | الخرج |
---|---|
{{ 3 | modulo: 2 }}
{{ 24 | modulo: 7 }}
{{ 183.357 | modulo: 12 }}
|
1
3
3.357
|
newline_to_br
يدخل هذا المرشّح فاصل أسطر (<br />
) الخاص بلغة HTML أمام كل سطر جديد (\n
) في سلسلة نصية.
الدخل | الخرج |
---|---|
{% capture string_with_newlines %}
Hello
there
{% endcapture %}
{{ string_with_newlines | newline_to_br }}
|
<br />
Hello<br />
there<br />
|
plus
يجمع هذا المرشّح عددين.
الدخل | الخرج |
---|---|
{{ 4 | plus: 2 }}
{{ 16 | plus: 4 }}
{{ 183.357 | plus: 12 }}
|
6
20
195.357
|
prepend
يضيف هذا المرشّح السلسلة النصية المحدَّدة إلى بداية سلسلة نصية أخرى.
الدخل | الخرج |
---|---|
{{ "apples, oranges, and bananas" | prepend: "Some fruit: " }}
|
Some fruit: apples, oranges, and bananas
|
يمكن أن يقبل المرشّح prepend
أيضًا متغيرًا كوسيطٍ له.
الدخل | الخرج |
---|---|
{% assign url = "example.com" %}
{{ "/index.html" | prepend: url }}
|
example.com/index.html
|
remove
يزيل كل ظهور لسلسلة نصية فرعية محدَّدة من سلسلة نصية.
الدخل | الخرج |
---|---|
{{ "I strained to see the train through the rain" | remove: "rain" }}
|
I sted to see the t through the
|
remove_first
يزيل ظهور السلسلة النصية الفرعية المحدَّدة الأول فقط من سلسلة نصية.
الدخل | الخرج |
---|---|
{{ "I strained to see the train through the rain" | remove_first: "rain" }}
|
I sted to see the train through the rain
|
replace
يستبدل هذا المرشّح كلَّ ظهور للوسيط الأول في سلسلة نصية بالوسيط الثاني.
الدخل | الخرج |
---|---|
{{ "Take my protein pills and put my helmet on" | replace: "my", "your" }}
|
Take your protein pills and put your helmet on
|
replace_first
يستبدل الظهور الأول فقط للوسيط الأولى في سلسلة نصية بالوسيط الثاني.
الدخل | الخرج |
---|---|
{{ "Take my protein pills and put my helmet on" | replace_first: "my", "your" }}
|
Take your protein pills and put my helmet on
|
reverse
يعكس هذا المرشّح ترتيب العناصر في المصفوفة، ولكن لا يمكنه عكس سلسلة نصية.
الدخل | الخرج |
---|---|
{% assign my_array = "apples, oranges, peaches, plums" | split: ", " %}
{{ my_array | reverse | join: ", " }}
|
plums, peaches, oranges, apples
|
لا يمكن استخدام المرشّح reverse
مباشرةً مع سلسلة نصية، ولكن يمكنك تقسيم split السلسلة إلى مصفوفة، ثم عكس المصفوفة، وإعادة ضمها عن طريق ربط المرشّحات معًا.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | split: "" | reverse | join: "" }}
|
.moT rojaM ot lortnoc dnuorG
|
round
يُستخدَم لتقريب عدد إلى أقرب عدد صحيح أو إلى العدد المُمرَّر كوسيط الذي يمثل المنازل العشرية.
الدخل | الخرج |
---|---|
{{ 1.2 | round }}
{{ 2.7 | round }}
{{ 183.357 | round: 2 }}
|
1
3
183.36
|
rstrip
يزيل كل المسافات (مسافات tab والمسافات الفارغة والأسطر الجديدة) من جانب السلسلة الأيمن، ولا يؤثر على المسافات بين الكلمات.
الدخل | الخرج |
---|---|
{{ " So much room for activities " | rstrip }}!
|
So much room for activities!
|
size
يعيد هذا المرشّح عدد المحارف في سلسلة نصية أو عدد العناصر في مصفوفة.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | size }}
|
28
|
الدخل | الخرج |
---|---|
{% assign my_array = "apples, oranges, peaches, plums" | split: ", " %}
{{ my_array.size }}
|
|
يمكنك استخدام المرشّح size
مع الصيغة النقطية عندما تحتاج إلى استخدام المرشَح ضمن وسم:
{% if site.pages.size > 10 %}
This is a big website!
{% endif %}
slice
يعيد هذا المرشّح سلسلة نصية فرعية مؤلفة من محرف واحد أو تعيد سلسلة من عناصر المصفوفة التي تبدأ بالدليل المحدَّد باستخدام الوسيط الأول. يحدّد الوسيط الثاني الاختياري طول السلسلة الفرعية أو عدد عناصر المصفوفة المُعادة.
تٌرقَّم أدلة السلسلة النصية أو المصفوفة بدءًا من 0.
الدخل | الخرج |
---|---|
{{ "Liquid" | slice: 0 }}
|
L
|
الدخل | الخرج |
---|---|
{{ "Liquid" | slice: 2 }}
|
q
|
الدخل | الخرج |
---|---|
{{ "Liquid" | slice: 2, 5 }}
|
quid
|
قيمة الدخل عبارة عن مصفوفة في المثال التالي:
الدخل | الخرج |
---|---|
{% assign beatles = "John, Paul, George, Ringo" | split: ", " %}
{{ beatles | slice: 1, 2 }}
|
PaulGeorge
|
إذا كان الوسيط الأول عبارة عن عدد سالب، تُحسَب الأدلة من نهاية السلسلة النصية.
الدخل | الخرج |
---|---|
{{ "Liquid" | slice: -3, 2 }}
|
ui
|
sort
يرتب عناصر المصفوفة بترتيب حسّاس لحالة الأحرف.
الدخل | الخرج |
---|---|
{% assign my_array = "zebra, octopus, giraffe, Sally Snake" | split: ", " %}
{{ my_array | sort | join: ", " }}
|
Sally Snake, giraffe, octopus, zebra
|
يحدّد الوسيط الاختياري خاصيةً من عناصر المصفوفة لاستخدامها في عملية الترتيب.
{% assign products_by_price = collection.products | sort: "price" %}
{% for product in products_by_price %}
<h4>{{ product.title }}</h4>
{% endfor %}
sort_natural (خاص بالإصدار 4.0.0)
يرتب العناصر في مصفوفة بترتيب غير حساس لحالة الأحرف.
الدخل | الخرج |
---|---|
{% assign my_array = "zebra, octopus, giraffe, Sally Snake" | split: ", " %}
{{ my_array | sort_natural | join: ", " }}
|
giraffe, octopus, Sally Snake, zebra
|
يحدّد الوسيط الاختياري خاصيةً من عناصر المصفوفة لاستخدامها في عملية الترتيب.
{% assign products_by_company = collection.products | sort_natural: "company" %}
{% for product in products_by_company %}
<h4>{{ product.title }}</h4>
{% endfor %}
split
يقسم هذا المرشّح سلسلة نصية إلى مصفوفة باستخدام الوسيط كفاصل بينها. يُستخدَم المرشّح split
لتحويل العناصر المفصول بينها بفواصل من سلسلة نصية إلى مصفوفة.
الدخل | الخرج |
---|---|
{% assign beatles = "John, Paul, George, Ringo" | split: ", " %}
{% for member in beatles %}
{{ member }}
{% endfor %}
|
John
Paul
George
Ringo
|
strip
يزيل هذا المرشّح كل المسافات (مسافاتtabs والمسافات الفارغة والأسطر الجديدة) من جانبي السلسلة النصية الأيسر والأيمن، ولا يؤثر على المسافات بين الكلمات.
الدخل | الخرج |
---|---|
{{ " So much room for activities " | strip }}!
|
So much room for activities!
|
strip_html
يزيل وسوم لغة HTML من السلسلة النصية.
الدخل | الخرج |
---|---|
{{ "Have <em>you</em> read <strong>Ulysses</strong>?" | strip_html }}
|
Have you read Ulysses?
|
strip_newlines
يزيل محارف الأسطر الجديدة (فواصل الأسطر) من السلسلة النصية.
الدخل | الخرج |
---|---|
{% capture string_with_newlines %}
Hello
there
{% endcapture %}
{{ string_with_newlines | strip_newlines }}
|
Hellothere
|
times
يضرب عددًا بعدد آخر.
الدخل | الخرج |
---|---|
{{ 3 | times: 2 }}
{{ 24 | times: 7 }}
{{ 183.357 | times: 12 }}
|
6
168
2200.284
|
truncate
يقصّر من طول السلسلة النصية وصولًا إلى عدد المحارف الذي مُرِّر كوسيط. إذا كان عدد المحارف المحدَّد أقل من طول السلسلة، فستُلحَق علامة القطع ellipsis (...) بالسلسلة النصية وتُضمَّن في عدد المحارف.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | truncate: 20 }}
|
Ground control to...
|
علامات القطع المخصصة
يأخذ المرشّح truncate
وسيطًا ثانيًا اختياريًا يحدّد تسلسل المحارف المراد إلحاقها بالسلسلة المقتطَعة. علامة القطع هي (...) افتراضيًا، ولكن يمكنك تحديد تسلسل مختلف.
يُحسَب طول الوسيط الثاني مقابل عدد المحارف المحدَّد بواسطة الوسيط الأول. إذا أردت اقتطاع سلسلة نصية إلى 10 محارف بالضبط مع استخدام علامة القطع المكونة من 3 محارف مثلًا، فاستخدم القيمة 13 لوسيط المرشّح truncate
الأول، لأن علامة القطع تُعَد 3 محارف.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | truncate: 25, ", and so on" }}
|
Ground control, and so on
|
استخدام المرشّح truncate دون علامات القطع
يمكنك اقتطاع السلسلة النصية إلى عدد المحارف المحدَّدة الدقيق بواسطة الوسيط الأول، ويمكنك تجنّب إظهار المحارف اللاحقة من خلال تمرير سلسلة نصية فارغة كوسيط ثانٍ.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | truncate: 20, "" }}
|
Ground control to Ma
|
truncatewords
يقصّر من طول السلسلة النصية وصولًا إلى عدد الكلمات الممرَّرة كوسيط. إذا كان عدد الكلمات المحدَّد أقل من عدد الكلمات في السلسلة النصية، فستُلحَق علامة القطع (...) بالسلسلة النصية.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | truncatewords: 3 }}
|
Ground control to...
|
علامات القطع المخصصة
يأخذ المرشّح truncatewords
وسيطًا ثانيًا اختياريًا يحدّد تسلسل المحارف المراد إلحاقها بالسلسلة المقتطَعة. علامة القطع هي (...) افتراضيًا، ولكن يمكنك تحديد تسلسل مختلف.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | truncatewords: 3, "--" }}
|
Ground control to--
|
استخدام المرشّح truncatewords دون علامات القطع
يمكنك تجنّب إظهار المحارف اللاحقة من خلال تمرير سلسلة نصية فارغة كوسيط ثانٍ.
الدخل | الخرج |
---|---|
{{ "Ground control to Major Tom." | truncatewords: 3, "" }}
|
Ground control to
|
uniq
يزيل العناصر المكرَّرة في المصفوفة.
الدخل | الخرج |
---|---|
{% assign my_array = "ants, bugs, bees, bugs, ants" | split: ", " %}
{{ my_array | uniq | join: ", " }}
|
ants, bugs, bees
|
upcase
يجعل هذا المرشّح كل حرف في السلسلة النصية حرفًا كبيرًا، وليس له أي تأثير على السلاسل النصية التي تتكوّن كلها من أحرف كبيرة.
الدخل | الخرج |
---|---|
{{ "Parker Moore" | upcase }}
|
PARKER MOORE
|
الدخل | الخرج |
---|---|
{{ "APPLE" | upcase }}
|
APPLE
|
url_decode (خاص بالإصدار 4.0.0)
يفك هذا المرشّح تشفير سلسلة نصية مُشفَّرة كعنوان URL أو باستخدام المرشّح url_encode
.
الدخل | الخرج |
---|---|
{{ "%27Stop%21%27+said+Fred" | url_decode }}
|
'Stop!' said Fred
|
url_encode
يحوّل محارف عنوان URL غير آمنة في سلسلة نصية إلى محارف مُشفَّرة كنسبة مئوية.
الدخل | الخرج |
---|---|
{{ "john@liquid.com" | url_encode }}
|
john%40liquid.com
|
لاحظ أن المرشّح url_encode
سيحول المسافة إلى إشارة +
بدلًا من استخدام محرف النسبة المئوية المُشفَّر.
الدخل | الخرج |
---|---|
{{ "Tetsuro Takara" | url_encode }}
|
Tetsuro+Takara
|
where (خاص بالإصدار 4.0.2)
ينشئ هذا المرشّح مصفوفة تتضمن فقط الكائنات ذات قيمة خاصية معينة، أو أي قيمة truthy افتراضيًا.
افترض في المثال التالي أن لديك قائمة بالمنتجات وتريد عرض منتجات مطبخك منفصلة عن بعضها البعض. يمكنك باستخدام المرشّح where
إنشاء مصفوفة تحتوي فقط على المنتجات التي لها النوع "type"
مطبخ "kitchen"
.
الدخل | الخرج |
---|---|
All products:
{% for product in products %}
- {{ product.title }}
{% endfor %}
{% assign kitchen_products = products | where: "type", "kitchen" %}
Kitchen products:
{% for product in kitchen_products %}
- {{ product.title }}
{% endfor %}
|
All products:
- Vacuum
- Spatula
- Television
- Garlic press
Kitchen products:
- Spatula
- Garlic press
|
افترض أن لديك قائمة بالمنتجات وتريد فقط إظهار المنتجات المتاحة للشراء. يمكنك استخدام المرشّح where
مع اسم خاصية ولكن بدون قيمة مستهدفة لتضمين جميع المنتجات ذات القيمة truthy وهي "available"
.
الدخل | الخرج |
---|---|
All products:
{% for product in products %}
- {{ product.title }}
{% endfor %}
{% assign available_products = products | where: "available" %}
Available products:
{% for product in available_products %}
- {{ product.title }}
{% endfor %}
|
All products:
- Coffee mug
- Limited edition sneakers
- Boring sneakers
Available products:
- Coffee mug
- Boring sneakers
|
يمكن أيضًا استخدام المرشّح where
للعثور على كائن واحد في مصفوفة عند دمجه مع المرشّح first
. لنفترض مثلًا أنك تريد عرض القميص shirt في مجموعة الخريف الجديدة.
الدخل | الخرج |
---|---|
{% assign new_shirt = products | where: "type", "shirt" | first %}
Featured product: {{ new_shirt.title }}
|
Featured product: Hawaiian print sweater vest
|