Доступні фільтри Liquid
Примітка
З 12 жовтня 2022 року портали Power Apps перейменовано на Power Pages. Додаткова інформація: Microsoft Power Pages тепер у загальному доступі (блоґ)
Незабаром документацію порталів Power Apps буде перенесено та об’єднано з документацією Power Pages.
Фільтри Liquid використовуються для змінення виводу рядків, чисел, змінних та об'єктів. Вони відокремлені від значення, до якого вони застосовуються, за допомогою |.
{{ '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 відтворює новий масив, який складається з оригінального масиву із заданим елемента як останнім.
Код
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.
групувати за
Групування елементів у масиві за вказаним атрибутом.
Код
{% 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
приєднатися
Приєднує елементи масиву із символом, що передається як параметр. Результатом є одиночний рядок.
Код
{% 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
випадковий
Відтворює один елемент, випадково вибраний з масиву.
Код
{{ group1 | join: ', ' }}
{{ group1 | random }}
Вихід
John, Pete, Hannah
Pete
виберіть
Вибирає значення вказаного атрибута для кожного елемента у масиві та відтворює ці значення як масив.
Код
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Вихід
Redmond, New York
довільно
У разі застосування до масиву, відтворює новий масив з тими самими елементами в довільному порядку.
Код
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Вихід
John, Pete, Hannah
Hannah, John, Pete
розмір
Відтворює кількість елементів у масиві.
розмір можна також використовувати зі спеціальною точковою нотацією, у випадках, коли її потрібно використати всередині тегу.
Код
{% 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.
пропустити
Пропускає задану кількість елементів у масиві та показує залишок.
Код
{% assign words = This is a run of text | split: %}
{{ words | skip: 3 | join: ', ' }}
Вихід
run, of, text
брати
Бере задану кількість елементів з масиву, відображаючи взяті елементи.
Код
{% assign words = This is a run of text | split: %}
{{ words | take: 3 | join: ', ' }}
Вихід
This, is, a
тоді_за
Додає додаткові подальші сортування до масиву, що вже відсортований через впорядкувати_за.
За бажанням, ви можете вказати 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
дата_додати_дні
Додає певну кількість цілих та дробових значень доби до значення дати й часу. Параметр може бути позитивними або негативними.
Код
{{ 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
дата_додати_години
Додає вказану кількості цілих та дробових значень годин до значення дати й часу. Параметр може бути позитивними або негативними.
Код
{{ 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
дата_додати_хвилин
Додає певну кількість цілих та дробове значень хвилин до значення дати й часу. Параметр може бути позитивними або негативними.
Код
{{ 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
дата_додати_місяці
Додає певну кількість цілих та дробових значень місяця до значення дати й часу. Параметр може бути позитивними або негативними.
Код
{{ 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
дата_додати_секунди
Додає вказану кількість цілих та дробових значень секунд до значення дати й часу. Параметр може бути позитивними або негативними.
Код
{{ 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
дата_додати_роки
Додає певну кількість цілих та дробових значень року до значення дати й часу. Параметр може бути позитивними або негативними.
Код
{{ 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
дата_до_iso8601
Форматує значення дати й часу відповідно до стандарту ISO 8601. Корисно при створенні Каналів Atom, або елемента HTML5 <час>.
Код
{{ now | date_to_iso8601 }}
Вихід
2018-05-07T07:20:46Z
дата_до_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 %}
зворотне_сортування
Враховуючи напрямок сортування, відтворює протилежний напрямок сортування.
Код
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Вихід
DESC
ASC
Математичні фільтри
Математичні фільтри дозволяють виконувати математичні операції з числами.
Як і всі фільтри, математичні фільтри можуть бути зв’язані і застосовуються в порядку зліва направо.
Код
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Вихід
5
стеля
Округлення до вищого цілого значення.
Код
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Вихід
5
5
поділено_на
Ділить число на інше число.
Код
{{ 10 | divided_by: 2 }}
{{ 10 | divided_by: 3 }}
{{ 10.0 | divided_by: 3 }}
Вихід
5
3
3.333333
нижче значення
Округлення до нижчого цілого значення.
Код
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Вихід
4
4
мінус
Віднімає число від іншого числа.
Код
<!-- entityview.page = 11 -->
{{ entityview.page | minus: 1 }}
{{ 10 | minus: 1.1 }}
{{ 10.1 | minus: 1 }}
Вихід
10
9
9.1
за модулем
Розділяє число на інше число і показує залишок від ділення.
Код
{{ 12 | modulo: 5 }}
Вихід
2
плюс
Додає число до іншого числа.
Код
<!-- entityview.page = 11 -->
{{ entityview.page | plus: 1 }}
{{ 10 | plus: 1.1 }}
{{ 10.1 | plus: 1 }}
Вихід
12
11
11.1
округлення
Округлює значення до найближчого цілого або вказаного десяткового числа.
Код
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}
Вихід
5
4
4.56
помножити
Множить число на інше число.
Код
{{ 10 | times: 2 }}
{{ 10 | times: 2.2 }}
{{ 10.1 | times: 2 }}
Вихід
20
20
20.2
Фільтри рядків
Фільтри рядків маніпулюють рядками.
append
Додає рядок в кінець іншого рядка.
Код
{{ 'filename' | append: '.js' }}
Вихід
filename.js
capitalize
починає з великої перше слова в рядку.
Код
{{ 'capitalize me' | capitalize }}
Вихід
Capitalize Me
downcase
Перетворює рядок у символи нижнього регістру.
Код
{{ 'MIxed Case TExt' | downcase }}
Вихід
mixed case text
скасувати
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
remove
Видаліть всі повтори підрядка із рядка.
Код
{{ '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?
replace
Замінює всі повтори рядка із підрядком.
Код
{{ '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?
split
Фільтр split набуває підрядок як параметр. Підрядок використовується як роздільник для розділення рядка в масив.
Код
{% 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>
truncate
Обрізає рядок до вказаної кількості знаків. Три крапки (...) додаються до рядка і входять у підрахунок символів.
Код
{{ '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>
Фільтри типів
Фільтри типів дають змогу перетворити значення одного типу в інших типи.
boolean
Спроби перетворити значення рядка в логічне значення. Якщо значення вже є логічним, його буде відтворено без змін. Якщо значення не можна перетворити на логічне, буде відтворено нуль.
Цей фільтр також буде приймати "увімк.", "активовано" або "так" як "істинність" і "вимк.", "дезактивовано" та "ні" як "хибність".
Код
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Вихід
true
false
true
false
десяткове значення
Спроби перетворити значення рядка в десяткове число. Якщо значення вже є десятковим числом, його буде відтворено без змін. Якщо значення не можна перетворити на десяткове число, буде відтворено нуль.
Код
{{ 10.1 | decimal }}
{{ '3.14' | decimal }}
{{ 'text' | decimal | default: 3.14 }}
Вихід
10.1
3.14
3.14
integer
Спроби перетворити значення рядка в ціле число. Якщо значення вже є цілим числом, його буде відтворено без змін. Якщо значення не можна перетворити на ціле число, буде відтворено нуль.
Код
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Вихід
10
10
2
string
Спроби перетворити значення в представлення рядка. Якщо значення вже є рядком, його буде відтворено без змін. Якщо значення нуль, буде відтворено нуль.
Фільтри 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
base
Отримує базову URL-адресу певної URL-адреси.
Код
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Вихід
https://example.com
host
Отримує частину з хостом із URL-адреси.
Код
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Вихід
example.com
path
Отримує частину зі шляхом із 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
port
Отримує номер порту в 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
scheme
Отримує частину зі схемою із URL-адреси.
Код
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
Вихід
http
https
Додаткові фільтри
Ці фільтри забезпечують корисні загальні функції.
за промовчанням
Відтворює значення за промовчанням для будь-якої змінної без призначеного значення (тобто нуль).
Код
{{ 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, якщо користувач належить до цієї ролі. Відтворює "хибність", якщо ні.
Код
{% 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
Примітка
Розкажіть нам про свої уподобання щодо мови документації? Візьміть участь в короткому опитуванні. (зверніть увагу, що це опитування англійською мовою)
Проходження опитування займе близько семи хвилин. Персональні дані не збиратимуться (декларація про конфіденційність).