Делите путем


Доступни Liquid филтери

Liquid филтери се користе за мењање излаза ниски, бројева, променљивих и објеката. Раздвајају се од вредности на коју се примењују помоћу знака |.

{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->

Неки филтери прихватају параметре. Филтере можете и да комбинујете, а примењују се редоследом слева надесно.

{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->

{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->

Одељак у наставку описује разне филтере.

Филтери низа

Филтери низа се користе за рад са низовима.

batch

Дели низ у више низова у датој величини.

Шифру

{% 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

except

Изаберите све објекте у низу где дати атрибут нема дату вредност. (Ово је обрнуто од where.)

Шифру

{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Излаз

Jack Robinson

first

Враћа први елемент низа.

Први се такође може користити са специјалном ознаком тачке, у случајевима када се користи унутар ознаке.

Шифру

{% 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

last

Враћа последњи елемент низа.

Последњи се такође може користити са специјалном ознаком тачке, у случајевима када се користи унутар ознаке.

Шифру

{% 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

Враћа елементе низа које је поручио дати атрибут елемената у низа.

Опционално, можете да пружите опис као други параметар за сортирање елемената у опадајућем редоследу, а не у растућем.

Шифру

{{ 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.

Опционално, можете да пружите опис као други параметар за сортирање елемената у опадајућем редоследу, а не у растућем.

Шифру

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

where

Изаберите све објекте у низу где дати атрибут има дату вредност.

Шифру

{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Излаз

John Smith

Dave Thomas

Jake Johnson

Филтери датума

Филтери датума се могу користити за аритметички датум или да конвертујете вредности за DateTime у различите формате.

date

Форматира вредности за DateTime помоћу ниска .NET формата.

Стандардни низови формата датума и времена

Прилагођени низови формата датума и времена

Шифру

{{ now | date: 'g' }}

{{ now | date: 'MMMM dd, yyyy' }}

Излаз

5/7/2018 7:20 AM

May 07, 2018

date_add_days

Додаје одређени број целих и делимичних дана вредности за DateTime. Параметар може бити позитиван или негативан.

Шифру

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

Додаје одређени број целих и делимичних сати вредности за DateTime. Параметар може бити позитиван или негативан.

Шифру

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

Додаје одређени број целих и делимичних сати вредности за DateTime. Параметар може бити позитиван или негативан.

Шифру

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

Додаје одређени број целих месеци вредности за DateTime. Параметар може бити позитиван или негативан.

Шифру

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

Додаје одређени број целих и делимичних секунди вредности за DateTime. Параметар може бити позитиван или негативан.

Шифру

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

Додаје одређени број целих година вредности за DateTime. Параметар може бити позитиван или негативан.

Шифру

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

Форматира вредност DateTime у складу са стандардом ISO 8601. Користан приликом креирања Atom фидова или са HTML5 <time> елементом.

Шифру

{{ now | date_to_iso8601 }}

Излаз

2018-05-07T07:20:46Z

date_to_rfc822

Форматира вредност ДатеТиме у складу са РФЦ 822 стандардом . Користан приликом креирања RSS фидова.

Шифру

{{ now | date_to_rfc822 }}

Излаз

Mon, 07 May 2018 07:20:46 Z

Escape филтери

Escape секвенце обезбеђују начин укључивања специјалних знакова у ниске без неусаглашености са редовним тумачењем тих знакова помоћу програмског језика или формата.

Следећи escape филтери замењују знакове ниске escape секвенцама или уклањају неважеће знакове ниске на основу одредишног типа.

Побегне

HTML-излаз из ниске.

Шифру

{{ '<p>test</p>' | escape }}

Излаз

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

html_safe_escape

Покрива дату HTML ниску безбедним HTML фрагментом.

Шифру

{{ '<img src="images/myimage.jpg" onerror="alert(1);">' | html_safe_escape }}

Излаз

<img src="images/myimage.jpg">

урл_есцапе

URI-escape ниске, за укључење у URL.

Шифру

{{ 'This & that//' | url_escape }}

Излаз

This+%26+that%2F%2F

xмл_есцапе

XML-escape ниске, за укључење у XML излаз.

Шифру

{{ '<p>test</p>' | xml_escape }}

Излаз

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

Филтери листе

Филтери листе се користе за рад са одређеним вредностима ентитета entitylist и за креирање приказа листа.

current_sort

Са датим изразом сортирања, враћа тренутни смер сортирања за дати атрибут.

Шифру

{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}

Излаз

DESC

metafilters

Анализира JSON вредност entitylist filter_definition у групним објектима са опцијом филтрирања.

метафилтери могу опционално бити опремљени актуелним упитом филтера атрибута и актуелном вредношћу 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

Филтери ниске

Филтери ниске рукују нискама.

append

Додаје ниску на крају друге ниске.

Шифру

{{ 'filename' | append: '.js' }}

Излаз

filename.js

Велика Британија

Пише великим словом сваку реч у низу.

Шифру

{{ 'capitalize me' | capitalize }}

Излаз

Capitalize Me

Довнцасе

Конвертује ниску у мала слова.

Шифру

{{ 'MIxed Case TExt' | downcase }}

Излаз

mixed case text

неwлине_то_бр

Уноси <br /> ознаку за прелом реда HTML садржаја на сваком прелому реда у ниски.

Шифру

{% capture text %}

A

B

C

{% endcapture %}

{{ text | newline_to_br }}

Излаз

A<br />

B<br />

C<br />

садржина

Додаје ниску на почетак друге ниске.

Шифру

{{ 'Jane Johnson' | prepend: 'Dr. ' }}

Излаз

Dr. Jane Johnson

Уклоните

Уклања сва појављивања подниске из ниске.

Шифру

{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}

Излаз

Hello, . How are you, ?

ремове_фирст

Уклања прво појављивање подниске из ниске.

Шифру

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

реплаце_фирст

Замењује прво појављивање ниске подниском.

Шифру

{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}

Излаз

Hello, John. How are you, Dave?

Поделимо

Филтер 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

стрип_хтмл

Приказује све HTML ознаке из ниске.

Шифру

<p>Hello</p>

Излаз

Hello

стрип_неwлинес

Приказује све преломе из ниске.

Шифру

{% capture text %}

A

B

C

{% endcapture %}

{{ text | strip_newlines }}

Излаз

ABC

теxт_то_хтмл

Форматира ниску са чистим текстом као једноставан 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...

трунцате_wордс

Скраћује ниску на дати број речи. Три тачке (...) се додају у нескраћеној нисци.

Шифру

{{ 'This is a long run of text.' | truncate_words: 3 }}

Излаз

This is a...

садржина

Конвертује ниску у велика слова.

Шифру

{{ 'MIxed Case TExt' | upcase }}

Излаз

MIXED CASE TEXT

Филтери типова

Филтери типова вам омогућавају вам да конвертујете вредности једног типа у друге типове.

Булову

Покушава да вредност ниске конвертује у логичку. Ако је вредност већ логичка, враћа се непромењена. Ако вредност не може да буде конвертована у логичку, вратиће се вредност null.

Овај филтер ће такође прихватити „укључено“, „омогућено“ или „да“ као тачне вредности, као и „искључено“, „онемогућено“ и „не“ као нетачне вредности.

Шифру

{{ 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 адреса.

адд_qуерy

Додаје 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

патх_анд_qуерy

Преузима део путање и упита 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

ремове_qуерy

Уклања параметар ниске упита из 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

филе_сизе

Примењује се на бројчану вредност која представља много бајтова, враћа величину обликоване датотеке са јединицом одговарајуће скале.

Опционално, параметар прецизности може да се проследи да би контролисао број децималних места у резултату. Подразумевана прецизност је 1.

Шифру

{{ 10000000 | file_size }}

{{ 2050 | file_size: 0 }}

{{ entity.notes.first.filesize | file_size: 2 }}

Излаз

9.5 MB

2 KB

207.14 KB

х

Обезбеђује HTML приказ атрибута. На пример, приказивање ХТМЛ репрезентације FetchXML КСМЛ атрибута упита.

Шифру

{{ samplequery.xml | h }}

Излаз

<fetch mapping="logical" count="5000" page="1" returntotalrecordcount="true"> <entity name="contact"> <attribute name="fullname" /> </entity> </fetch>

хас_роле

Примењен на корисника, враћа вредност „true“ ако корисник припада датој улози. Враћа вредност false ако није.

Шифру

{% assign is_admin = user | has_role: 'Administrators' %}

{% if is_admin %}

User is an administrator.

{% endif %}

Теиност

Приказује ниску као Liquid кôд. Овај кôд има приступ тренутном Liquid контексту извршавања (променљиве итд.).

Напомена

Овај филтер би требало да се користи са опрезом и генерално би требало да се примењује само на вредности које су у оквиру ексклузивне контроле аутора садржаја локације или других корисника у које можете имати поверење за писање Liquid кôда.

Шифру

{{ page.adx_copy | liquid }}

Погледајте и