Налични филтри на Liquid
Бележка
В сила от 12 октомври 2022 г. „Портали на Power Apps“ става Power Pages. Повече информация: Microsoft Power Pages вече е общодостъпен (блог)
Скоро ще мигрираме и ще обединим документацията на „Портали на Power Apps“ с документацията на Power Pages.
Филтрите на Liquid се използват за промяна на изхода на низове, числа, променливи и обекти. Те се отделят от стойността, към която се прилагат, чрез a |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->
Някои филтри приемат параметри. Филтри също могат да бъдат комбинирани и се прилагат в ред от ляво надясно.
{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->
{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->
Секцията по-долу описва различните филтри.
Филтри за масив
Филтрите за масив се използват за работа с масиви.
партида
Разделя масив на множество масиви с определен размер.
Код
{% assign batches = entityview.records | batch: 2 %}
{% for batch in batches %}
<ul>
{% for item in batch %}
<li>{{ item.fullname }}</li>
{% endfor %}
</ul>
{% endfor %}
Изход
<ul>
<li>John Smith</li>
<li>Dave Thomas</li>
</ul>
<ul>
<li>Jake Johnson</li>
<li>Jack Robinson</li>
</ul>
concat
Съединява два масива в един нов масив.
При подаване на един елемент като параметър „concat” връща нов масив, който се състои от оригиналния масив, с дадения елемент като последен елемент.
Код
Group #1: {{ group1 | join: ', ' }}
Group #2: {{ group2 | join: ', ' }}
Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}
Изход
Group #1: John, Pete, Hannah
Group #2: Joan, Bill
Group #1 + Group #2: John, Pete, Hannah, Joan, Bill
с изключение на
Изберете всички обекти в масив, където даден атрибут няма зададена стойност. (Това е обратното накъдето.)
Код
{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Изход
Jack Robinson
първо
Връща първия елемент от даден масив.
„първи” може също да се използва при специално точково записване в случаите, когато е необходимо да се използва в етикет.
Код
{% assign words = This is a run of text | split: %}
{{ words | first }}
{% if words.first == This %}
The first word is This.
{% endif %}
Изход
This
The first word is This.
group_by
Групиране на елементите в масив по даден атрибут.
Код
{% assign groups = entityview.records | group_by: 'address1_city' %}
{% for group in groups %}
{{ group.key }}:
{% for item in group.items %}
{{ item.fullname }}
{% endfor %}
{% endfor %}
Изход
Redmond:
John Smith
Dave Thomas
Jake Johnson
New York:
Jack Robinson
join
Присъединява елементите на масив със знак, подаден като параметър. Резултатът е единичен низ.
Код
{% assign words = This is a run of text | split: %}
{{ words | join: , }}
Изход
This, is, a, run, of, text
последна
Връща последния елемент от даден масив.
„последен” може също да се използва при специално точково записване в случаите, когато е необходимо да се използва в етикет.
Код
{% assign words = This is a run of text | split: -%}
{{ words | last }}
{% if words.last == text -%}
The last word is text.
{% endif -%}
Изход
text
The last word is text.
order_by
Връща елементите на масив, подредени по даден атрибут на елементите на масива.
Ако желаете, можете да предоставите „desc” като втори параметър, за да сортирате елементите в низходящ ред вместо във възходящ.
Код
{{ entityview.records | order_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}
Изход
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
random
Връща един произволно избран елемент от масива.
Код
{{ group1 | join: ', ' }}
{{ group1 | random }}
Изход
John, Pete, Hannah
Pete
select
Избира стойността на даден атрибут за всеки елемент в даден масив и връща тези стойности като масив.
Код
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Изход
Redmond, New York
shuffle
Прилага се към масив, връща нов масив със същите елементи в произволен ред.
Код
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Изход
John, Pete, Hannah
Hannah, John, Pete
size
Връща броя на елементите в масив.
„размер” може също да се използва при специално точково записване в случаите, когато е необходимо да се използва в етикет.
Код
{% assign words = This is a run of text | split: -%}
{{ words | size }}
{% if words.size == 6 -%}
The text contains 6 words.
{% endif -%}
Изход
6
The text contains 6 words.
skip
Прескача даден брой елементи в масив и връща останалите.
Код
{% assign words = This is a run of text | split: %}
{{ words | skip: 3 | join: ', ' }}
Изход
run, of, text
take
Отнема определен брой елементи от масива, като връща взетите елементи.
Код
{% assign words = This is a run of text | split: %}
{{ words | take: 3 | join: ', ' }}
Изход
This, is, a
then_by
Добавя допълнително последващо подреждане на масив, който вече е подреден отorder_by.
Ако желаете, можете да предоставите „desc” като втори параметър, за да сортирате елементите в низходящ ред вместо във възходящ.
Код
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}
Изход
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
където
Изберете всички обекти в масив, където даден атрибут има зададена стойност.
Код
{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Изход
John Smith
Dave Thomas
Jake Johnson
Филтри за дата
Филтрите за дата могат да се използват за операции с дати или за преобразуване на стойности за дата и час в различни формати.
дата
Форматира стойност за дата и час с помощта на стойност на .NET низ.
Стандартни низове за формат на дата и час.
Персонализирани низове за формат на дата и час
Код
{{ now | date: 'g' }}
{{ now | date: 'MMMM dd, yyyy' }}
Изход
5/7/2018 7:20 AM
May 07, 2018
date_add_days
Добавя указания брой цели и частични дни към стойността за дата и час. Параметърът може да бъде положителен или отрицателен.
Код
{{ now }}
{{ now | date_add_days: 1 }}
{{ now | date_add_days: -2.5 }}
Изход
5/7/2018 7:20:46 AM
5/8/2018 7:20:46 AM
5/4/2018 7:20:46 PM
date_add_hours
Добавя указания брой цели и частични часове към стойността за дата и час. Параметърът може да бъде положителен или отрицателен.
Код
{{ now }}
{{ now | date_add_hours: 1 }}
{{ now | date_add_hours: -2.5 }}
Изход
5/7/2018 7:20:46 AM
5/7/2018 8:20:46 AM
5/7/2018 4:50:46 AM
date_add_minutes
Добавя указания брой цели и частични минути към стойността за дата и час. Параметърът може да бъде положителен или отрицателен.
Код
{{ now }}
{{ now | date_add_minutes: 10 }}
{{ now | date_add_minutes: -2.5 }}
Изход
5/7/2018 7:20:46 AM
5/7/2018 7:30:46 AM
5/7/2018 7:18:16 AM
date_add_months
Добавя указания брой цели и частични месеци към стойността за дата и час. Параметърът може да бъде положителен или отрицателен.
Код
{{ now }}
{{ now | date_add_months: 1 }}
{{ now | date_add_months: -2 }}
Изход
5/7/2018 7:20:46 AM
6/7/2018 7:20:46 AM
3/7/2018 7:20:46 AM
date_add_seconds
Добавя указания брой цели и частични секунди към стойността за дата и час. Параметърът може да бъде положителен или отрицателен.
Код
{{ now }}
{{ now | date_add_seconds: 10 }}
{{ now | date_add_seconds: -1.25 }}
Изход
5/7/2018 7:20:46 AM
5/7/2018 7:20:56 AM
5/7/2018 7:20:45 AM
date_add_years
Добавя указания брой цели и частични години към стойността за дата и час. Параметърът може да бъде положителен или отрицателен.
Код
{{ now }}
{{ now | date_add_years: 1 }}
{{ now | date_add_years: -2 }}
Изход
5/7/2018 7:20:46 AM
5/7/2019 7:20:46 AM
5/7/2016 7:20:46 AM
date_to_iso8601
Форматира стойността за дата и час според стандарта ISO 8601. Полезно при създаването на Atom канали или елемента на HTML5 <време>.
Код
{{ now | date_to_iso8601 }}
Изход
2018-05-07T07:20:46Z
date_to_rfc822
Форматира стойността за дата и час според стандарта RFC 822. Полезни при създаването на RSS канали.
Код
{{ now | date_to_rfc822 }}
Резултат
Mon, 07 May 2018 07:20:46 Z
Филтри на списък
Филтрите за списък се използват за работа с определени стойности на атрибут за entitylist и за помощ при създаването на прегледи на списъка.
current_sort
При подаване на израз за сортиране връща текущата посока за сортиране за даден атрибут.
Код
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}
Изход
DESC
metafilters
Прави разбор на JSON стойност на entitylist filter_definition във формата на обекти на група с опции за филтриране.
„metafilters” могат да бъдат предоставени по желание с текуща заявка за филтър на атрибут и текущ entitylist, което позволява върнатите обекти на филтър да бъдат обозначени с флаг като избрани или неизбрани.
Код
{% assign filters = entitylist | metafilters: params.mf, entityview %}
{% if filters.size > 0 %}
<ul id=entitylist-filters>
{% for filter in filters %}
<li class=entitylist-filter-option-group>
{% if filter.selection_mode == 'Single' %}
{% assign type = 'radio' %}
{% else %}
{% assign type = 'checkbox' %}
{% endif %}
<h4 class=entitylist-filter-option-group-label
data-filter-id={{ filter.id | h }}>
{{ filter.label | h }}
</h4>
<ul>
{% for option in filter.options %}
<li class=entitylist-filter-option>
{% if option.type == 'text' %}
<div class=input-group entitylist-filter-option-text>
<span class=input-group-addon>
<span class=fa fa-filter aria-hidden=true></span>
</span>
<input class=form-control
type=text
name={{ filter.id | h }}
value={{ option.text | h }} />
</div>
{% else %}
<div class={{ type | h }}>
<label>
<input
type={{ type | h }}
name={{ filter.id | h }}
value={{ option.id | h }}
{% if option.checked %}
checked=checked
data-checked=true{% endif %}
/>
{{ option.label | h }}
</label>
</div>
{% endif %}
</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
<button class=btn btn-default data-serialized-query=mf data-target=#entitylist-filters>Apply Filters</button>
{% endif %}
reverse_sort
При подаване на посока на сортиране връща обратната посока на сортиране.
Код
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Изход
DESC
ASC
Математически филтри
Математическите филтри ви позволяват да извършвате математически операции върху числа.
Както и при всички други филтри, математическите филтри също могат да бъдат комбинирани във вериги и да се прилагат в ред от ляво надясно.
Код
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Изход
5
ceil
Закръглява стойността нагоре до най-близкото цяло число.
Код
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Изход
5
5
divided_by
Разделя число с друго число.
Код
{{ 10 | divided_by: 2 }}
{{ 10 | divided_by: 3 }}
{{ 10.0 | divided_by: 3 }}
Изход
5
3
3.333333
floor
Закръглява стойността надолу до най-близкото цяло число.
Код
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Изход
4
4
minus
Изважда число от друго число.
Код
<!-- entityview.page = 11 -->
{{ entityview.page | minus: 1 }}
{{ 10 | minus: 1.1 }}
{{ 10.1 | minus: 1 }}
Изход
10
9
9.1
modulo
Разделя число на друго число и връща остатъка.
Код
{{ 12 | modulo: 5 }}
Изход
2
plus
Добавя число към друго число.
Код
<!-- entityview.page = 11 -->
{{ entityview.page | plus: 1 }}
{{ 10 | plus: 1.1 }}
{{ 10.1 | plus: 1 }}
Изход
12
11
11.1
round
Закръглява стойност до най-близкото цяло число или до определен брой десетични знаци.
Код
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}
Изход
5
4
4.56
times
Умножава число с друго число.
Код
{{ 10 | times: 2 }}
{{ 10 | times: 2.2 }}
{{ 10.1 | times: 2 }}
Изход
20
20
20.2
Филтри за низове
Филтрите за низове манипулират низове.
добавяне
Добавя низ към края на друг низ.
Код
{{ 'filename' | append: '.js' }}
Изход
filename.js
с главна буква
поставя главна буква на първата дума в низ.
Код
{{ 'capitalize me' | capitalize }}
Изход
Capitalize Me
downcase
Преобразува низ в малки букви.
Код
{{ 'MIxed Case TExt' | downcase }}
Изход
mixed case text
escape
HTML бягства от низ.
Код
{{ '<p>test</p>' | escape }}
Изход
<p>test</p>
newline_to_br
Вмъква HTML етикет за край на ред <br /> за всеки край на ред в низ.
Код
{% capture text %}
A
B
C
{% endcapture %}
{{ text | newline_to_br }}
Изход
A<br />
B<br />
C<br />
prepend
Поставя низ в началното на друг низ.
Код
{{ 'Jane Johnson' | prepend: 'Dr. ' }}
Изход
Dr. Jane Johnson
премахване
Премахнете всички повторения на подниз от низ.
Код
{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}
Изход
Hello, . How are you, ?
remove_first
Премахва първите повторения на подниз от низ.
Код
{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}
Изход
Hello, . How are you, Dave?
заместване
Заменя всички повторения на низ в подниз.
Код
{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}
Изход
Hello, John. How are you, John?
replace_first
Заменя всички първи повторения на низ в подниз.
Код
{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}
Изход
Hello, John. How are you, Dave?
разделяне
Филтърът „разделяне” взема подниз като параметър. Поднизът се използва като разделител за разделяне на низ в масив.
Код
{% assign words = This is a demo of the split filter | split: ' ' %}
First word: {{ words.first }}
First word: {{ words[0] }}
Second word: {{ words[1] }}
Last word: {{ words.last }}
All words: {{ words | join: ', ' }}
Изход
First word: This
First word: This
Second word: is
Last word: filter
All words: This, is, a, demo, of, the, split, filter
strip_html
Премахва всички HTML етикети от низ.
Код
<p>Hello</p>
Изход
Hello
strip_newlines
Премахва всички краища на редове от низ.
Код
{% capture text %}
A
B
C
{% endcapture %}
{{ text | strip_newlines }}
Изход
ABC
text_to_html
Форматира низ от обикновен текст като опростен HTML. Целият текст ще бъде кодиран в HTML, блоковете от текст, разделени чрез празен ред, ще бъдат опаковани в етикети за параграф <p>, единичните краища на редове ще бъдат заменени с <br>, а URL адресите ще бъдат преобразувани в хипервръзки.
Код
{{ note.notetext | text_to_html }}
Изход
<p>This is the first paragraph of notetext. It contains a URL: <a href="https://example.com/" rel="nofollow">https://example.com</a></p>
<p>This is a second paragraph.</p>
отрязване
Отрязва низ до определен брой знаци. Многоточието (...) се прилага към низ и е включено в броя на знаците.
Код
{{ 'This is a long run of text.' | truncate: 10 }}
Изход
This is...
truncate_words
Отрязва низ до определен брой думи. Многоточие (...) е приложено към отрязания низ.
Код
{{ 'This is a long run of text.' | truncate_words: 3 }}
Изход
This is a...
upcase
Преобразува низ в главни букви.
Код
{{ 'MIxed Case TExt' | upcase }}
Изход
MIXED CASE TEXT
url_escape
URI бягство от низ за включване в URL адрес.
Код
{{ 'This & that//' | url_escape }}
Изход
This+%26+that%2F%2F
xml_escape
XML бягство от низ за включване в XML изход.
Код
{{ '<p>test</p>' | xml_escape }}
Изход
<p>test</p>
Филтри за тип
Филтрите за тип ви позволяват да преобразувате стойности от един тип в друг.
булев
Опитва да преобразува стойност на низ в булева стойност. Ако стойността вече е булева, ще бъде върната без промяна. Ако стойността не може да бъде преобразувана в булева, ще се върне null.
Този филтър ще приеме и „вкл.“, „активирано“ или „да“ като „true” и „изкл.“, „дезактивирано“ и „не“ като „false”.
Код
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Изход
true
false
true
false
по десетичен знак
Опитва да преобразува стойност на низ в десетично число. Ако стойността вече е десетично число, ще бъде върната без промяна. Ако стойността не може да бъде преобразувана в десетично число, ще се върне null.
Код
{{ 10.1 | decimal }}
{{ '3.14' | decimal }}
{{ 'text' | decimal | default: 3.14 }}
Изход
10.1
3.14
3.14
цяло число
Опитва да преобразува стойност на низ в цяло число. Ако стойността вече е цяло число, ще бъде върната без промяна. Ако стойността не може да бъде преобразувана в цяло число, ще се върне null.
Код
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Изход
10
10
2
низ
Опитва да преобразува стойност в нейното низово представяне. Ако стойността вече е низ, ще бъде върната без промяна. Ако стойността е null, ще се върне null.
Филтри за URL адреси
Филтрите за URL адреси ви позволяват да създадете или извлечете части от URL адреси.
add_query
Добавя параметър на низ на заявка към URL адрес. Ако параметърът вече съществува в URL адреса, стойността на параметъра ще бъде актуализирана.
Ако този филтър бъде приложен към пълния абсолютен URL адрес, резултатът ще бъде актуализиран абсолютен URL адрес. Ако се приложи към път, резултатът ще бъде актуализиран път.
Код
{{ 'https://example.com/path?page=1' | add_query: 'foo', 'bar' }}
{{ '/path?page=1' | add_query: 'page', 2 }}
Изход
https://example.com/path?page=1&foo=bar
/path?page=2
основен
Извлича основния URL адрес от даден URL адрес.
Код
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Изход
https://example.com
хост
Извлича компонента на хоста на URL адрес.
Код
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Изход
example.com
път
Извлича компонента на пътя на URL адрес.
Код
{{ 'https://example.com/path?foo=bar&page=2' | path }}
{{ '/path?foo=bar&page=2' | path }}
Изход
/path
/path
path_and_query
Извлича компонента на пътя и заявката на URL адрес.
Код
{{ 'https://example.com/path?foo=bar&page=2' | path_and_query }}
{{ '/path?foo=bar&page=2' | path_and_query }}
Изход
/path?foo=bar&page=2
/path?foo=bar&page=2
порт
Извлича номера на порта на URL адрес.
Код
{{ 'https://example.com/path?foo=bar&page=2' | port }}
{{ 'https://example.com/path?foo=bar&page=2' | port }}
{{ 'https://example.com:9000/path?foo=bar&page=2' | port }}
Изход
80
443
9000
remove_query
Премахва параметър на низ на заявка от URL адрес. Ако параметърът не съществува в URL адрес, URL адресът ще се върне непроменен.
Ако този филтър бъде приложен към пълния абсолютен URL адрес, резултатът ще бъде актуализиран абсолютен URL адрес. Ако се приложи към път, резултатът ще бъде актуализиран път.
Код
{{ 'https://example.com/path?page=1' | remove_query: 'page' }}
{{ '/path?page=1' | remove_query: 'page' }}
Изход
https://example.com/path
/path
схема
Извлича компонента на схемата на URL адрес.
Код
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
Изход
http
https
Допълнителни филтри
Тези филтри предоставят полезна обща функционалност.
по подразбиране
Връща стойност по подразбиране за всяка променлива, която няма присвоена стойност (т.е. null).
Код
{{ snippets[Header] | default: 'My Website' }}
Изход
<!-- If a snippet with the name Header returns null -->
My Website
file_size
Прилага се към числената стойност, представляваща определен брой байтове, връща форматиран размер на файл с единица от подходящ мащаб.
По желание може да бъде подаден параметър за прецизност с цел управление на броя десетични символа в резултата. Прецизността по подразбиране е 1.
Код
{{ 10000000 | file_size }}
{{ 2050 | file_size: 0 }}
{{ entity.notes.first.filesize | file_size: 2 }}
Изход
9.5 MB
2 KB
207.14 KB
has_role
Прилага се към потребител, връща „true”, ако потребителят принадлежи на дадена роля. Връща „false”, ако не.
Код
{% assign is_admin = user | has_role: 'Administrators' %}
{% if is_admin %}
User is an administrator.
{% endif %}
Liquid
Рендира низ като код на Liquid. Този код ще има достъп до текущия контекст за изпълнение на Liquid (променливи и т.н.).
Бележка
Този филтър трябва да се използва с повишено внимание и по принцип трябва да се прилага само към стойности, които са под изключителен контрол на авторите на съдържание в портала или други потребители, на които може да се вярва да напишат код на Liquid.
Код
{{ page.adx_copy | liquid }}
Вижте също
Съхраняване на съдържание на източник с помощта на уеб шаблони
Разбиране на операторите на Liquid
Типове на Liquid
Обекти на Liquid
Етикети на Liquid
Филтри на Liquid
Бележка
Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)
Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).