Поділитися через


Доступні фільтри 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 }}

Вихід

&lt;p&gt;test&lt;/p&gt;

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 }}

Вихід

&lt;p&gt;test&lt;/p&gt;

Фільтри типів

Фільтри типів дають змогу перетворити значення одного типу в інших типи.

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

Примітка

Розкажіть нам про свої уподобання щодо мови документації? Візьміть участь в короткому опитуванні. (зверніть увагу, що це опитування англійською мовою)

Проходження опитування займе близько семи хвилин. Персональні дані не збиратимуться (декларація про конфіденційність).