Споделяне чрез


Налични филтри на 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 }}

Изход

&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

премахване

Премахнете всички повторения на подниз от низ.

Код

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

Изход

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

Филтри за тип

Филтрите за тип ви позволяват да преобразувате стойности от един тип в друг.

булев

Опитва да преобразува стойност на низ в булева стойност. Ако стойността вече е булева, ще бъде върната без промяна. Ако стойността не може да бъде преобразувана в булева, ще се върне 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

Бележка

Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)

Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).