Partilhar via


Filtros Liquid disponíveis

Os filtros do Liquid são utilizados para modificar o resultado das cadeias, números, variáveis e objetos. São separados do valor ao qual estão a ser aplicados por uma |.

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

Alguns filtros aceitam parâmetros. Os filtros também podem ser combinados e são aplicados da esquerda para a direita.

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

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

A secção abaixo descreve diversos filtros.

Filtros de matriz

Os filtros de matriz são utilizados para trabalhar com matrizes.

batch

Divide uma matriz em várias matrizes de um determinado tamanho.

Código

{% assign batches = entityview.records | batch: 2 %}

{% for batch in batches %}

<ul>

{% for item in batch %}

<li>{{ item.fullname }}</li>

{% endfor %}

</ul>

{% endfor %}

Saída

<ul>

<li>John Smith</li>

<li>Dave Thomas</li>

</ul>

<ul>

<li>Jake Johnson</li>

<li>Jack Robinson</li>

</ul>

concat

Concatena duas matrizes numa única matriz nova.

Dado um único item como parâmetro, concat devolve uma nova matriz composta pela matriz original, com o item fornecido como último elemento.

Código

Group #1: {{ group1 | join: ', ' }}

Group #2: {{ group2 | join: ', ' }}

Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}

Saída

Group #1: John, Pete, Hannah

Group #2: Joan, Bill

Group #1 + Group #2: John, Pete, Hannah, Joan, Bill

except

Selecione todos os objetos numa matriz onde um determinado atributo não tenha um determinado valor. (É o inverso de where.)

Código

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

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Saída

Jack Robinson

Primeiro

Devolve o primeiro elemento de uma matriz.

first também pode ser utilizado com uma notação de ponto especial, nos casos em que tem de ser utilizado dentro de uma etiqueta.

Código

{% assign words = This is a run of text | split:   %}

{{ words | first }}

{% if words.first == This %}

The first word is This.

{% endif %}

Saída

This

The first word is This.

group_by

Agrupar os itens numa matriz por um determinado atributo.

Código

{% assign groups = entityview.records | group_by: 'address1_city' %}

{% for group in groups %}

{{ group.key }}:

{% for item in group.items %}

{{ item.fullname }}

{% endfor %}

{% endfor %}

Saída

Redmond:

John Smith

Dave Thomas

Jake Johnson

New York:

Jack Robinson

join

Juntar os elementos de uma matriz com o carater transmitido como o parâmetro. O resultado é uma cadeia única.

Código

{% assign words = This is a run of text | split:   %}

{{ words | join: ,  }}

Saída

This, is, a, run, of, text

Último

Devolve o último elemento de uma matriz.

last também pode ser utilizado com uma notação de ponto especial, nos casos em que tem de ser utilizado dentro de uma etiqueta.

Código

{% assign words = This is a run of text | split:   -%}

{{ words | last }}

{% if words.last == text -%}

The last word is text.

{% endif -%}

Saída

text

The last word is text.

ordenar por

Devolve os elementos de uma matriz ordenada por um determinado atributo dos elementos da matriz.

Opcionalmente, pode fornecer desc como um segundo parâmetro para ordenar os elementos por ordem descendente, em vez de ascendente.

Código

{{ entityview.records | order_by: 'fullname' | join: ', ' }}

{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}

Saída

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

random

Devolve um único item selecionado aleatoriamente a partir da matriz.

Código

{{ group1 | join: ', ' }}

{{ group1 | random }}

Saída

John, Pete, Hannah

Pete

select

Seleciona o valor de um determinado atributo para cada item numa matriz e devolve estes valores como uma matriz.

Código

{{ entityview.records | select: 'address1_city' | join: ', ' }}

Saída

Redmond, New York

shuffle

Aplicado a uma matriz, devolve uma nova matriz com os mesmos itens, distribuídos de forma aleatória.

Código

{{ group1 | join: ', ' }}

{{ group1 | shuffle | join: ', ' }}

Saída

John, Pete, Hannah

Hannah, John, Pete

size

Devolve o número de itens numa matriz.

size também pode ser utilizado com uma notação de ponto especial, nos casos em que tem de ser utilizado dentro de uma etiqueta.

Código

{% assign words = This is a run of text | split:   -%}

{{ words | size }}

{% if words.size == 6 -%}

The text contains 6 words.

{% endif -%}

Saída

6

The text contains 6 words.

skip

Ignora um determinado número de itens numa matriz e devolve o resto.

Código

{% assign words = This is a run of text | split:   %}

{{ words | skip: 3 | join: ', ' }}

Saída

run, of, text

take

Retira um determinado número de itens da matriz, devolvendo os itens retirados.

Código

{% assign words = This is a run of text | split:   %}

{{ words | take: 3 | join: ', ' }}

Saída


This, is, a

then_by

Adiciona uma ordenação subsequente adicional a uma matriz já ordenada pororder_by.

Opcionalmente, pode fornecer desc como um segundo parâmetro para ordenar os elementos por ordem descendente, em vez de ascendente.

Código

{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}

{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}

Saída

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

em que

Seleciona todos os objetos numa matriz onde um determinado atributo tenha um determinado valor.

Código

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

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Saída

John Smith

Dave Thomas

Jake Johnson

Filtros de data

Os filtros de data podem ser utilizados para a aritmética da data ou para converter valores de DateTime em vários formatos.

data

Formata um valor de DateTime utilizando uma cadeia de formato .NET.

Cadeias de Formato de Data e Hora Padrão

Cadeias de Formato de Data e Hora Personalizadas

Código

{{ now | date: 'g' }}

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

Saída

5/7/2018 7:20 AM

May 07, 2018

date_add_days

Adiciona o número especificado de dias inteiros ou fracionais ao valor de DateTime. O parâmetro pode ser positivo ou negativo.

Código

{{ now }}

{{ now | date_add_days: 1 }}

{{ now | date_add_days: -2.5 }}

Saída

5/7/2018 7:20:46 AM

5/8/2018 7:20:46 AM

5/4/2018 7:20:46 PM

date_add_hours

Adiciona o número especificado de horas inteiras ou fracionais ao valor de DateTime. O parâmetro pode ser positivo ou negativo.

Código

{{ now }}

{{ now | date_add_hours: 1 }}

{{ now | date_add_hours: -2.5 }}

Saída

5/7/2018 7:20:46 AM

5/7/2018 8:20:46 AM

5/7/2018 4:50:46 AM

date_add_minutes

Adiciona o número especificado de minutos inteiros ou fracionais ao valor de DateTime. O parâmetro pode ser positivo ou negativo.

Código

{{ now }}

{{ now | date_add_minutes: 10 }}

{{ now | date_add_minutes: -2.5 }}

Saída

5/7/2018 7:20:46 AM

5/7/2018 7:30:46 AM

5/7/2018 7:18:16 AM

date_add_months

Adiciona o número especificado de meses inteiros ou fracionais ao valor de DateTime. O parâmetro pode ser positivo ou negativo.

Código

{{ now }}

{{ now | date_add_months: 1 }}

{{ now | date_add_months: -2 }}

Saída

5/7/2018 7:20:46 AM

6/7/2018 7:20:46 AM

3/7/2018 7:20:46 AM

date_add_seconds

Adiciona o número especificado de segundos inteiros ou fracionais ao valor de DateTime. O parâmetro pode ser positivo ou negativo.

Código

{{ now }}

{{ now | date_add_seconds: 10 }}

{{ now | date_add_seconds: -1.25 }}

Saída

5/7/2018 7:20:46 AM

5/7/2018 7:20:56 AM

5/7/2018 7:20:45 AM

date_add_years

Adiciona o número especificado de anos inteiros ou fracionais ao valor de DateTime. O parâmetro pode ser positivo ou negativo.

Código

{{ now }}

{{ now | date_add_years: 1 }}

{{ now | date_add_years: -2 }}

Saída

5/7/2018 7:20:46 AM

5/7/2019 7:20:46 AM

5/7/2016 7:20:46 AM

date_to_iso8601

Formata um valor DateTime de acordo com a norma ISO 8601. Útil ao criar feeds Atom ou o elemento <time> de HTML5.

Código

{{ now | date_to_iso8601 }}

Saída

2018-05-07T07:20:46Z

date_to_rfc822

Formata um valor DateTime de acordo com a norma RFC 822. Útil ao criar feeds RSS.

Código

{{ now | date_to_rfc822 }}

Saída

Mon, 07 May 2018 07:20:46 Z

Filtros escape

As sequências escape oferecem uma forma de incluir caráteres especiais em cadeias sem entrar em conflito com a interpretação regular desses caráteres pela linguagem ou formato de programação.

Os seguintes filtros escape substituem caráteres de cadeia por sequências escape ou removem caráteres de cadeia inválidos baseados no tipo de destino.

escape

Coloca um caráter HTML de escape numa cadeia.

Código

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

Saída

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

html_safe_escape

Encobre uma determinada cadeia de HTML num fragmento HTML seguro.

Código

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

Saída

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

url_escape

Coloca um carater de escape URI, para inclusão num URL.

Código

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

Saída

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

xml_escape

Coloca um carater de escape XML, para inclusão na saída de XML.

Código

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

Saída

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

Filtros de lista

Os filtros de Lista são utilizados para trabalhar com determinados valores de atributo entitylist e para ajudar a criar vistas de lista.

current_sort

Dada uma expressão de ordenação, devolve a direção de ordenação atual de determinado atributo.

Código

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

Saída

DESC

metafilters

Analisa um valor JSON entitylist filter_definition nos objetos de grupo da opção de filtro.

metafiltros podem ser fornecidos opcionalmente com uma consulta de filtro de atributo atual e entitylist atual, permitindo sinalizar os objetos de filtro devolvidos como selecionados ou não selecionados.

Código

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

Dada uma direção de ordenação, devolve a direção de ordenação oposta.

Código

<!-- Sort direction is not case-sensitive -->

{{ 'ASC' | reverse_sort }}

{{ 'desc' | reverse_sort }}

Saída

DESC

ASC

Filtros matemáticos

Os filtros matemáticos permitem efetuar operações matemáticas em números.

Tal como sucede com os filtros, os filtros matemáticos podem ser encadeados e são aplicados da esquerda para a direita.

Código

{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}

Saída

5

ceil

Arredonda um valor até ao número inteiro mais próximo.

Código

{{ 4.6 | ceil }}

{{ 4.3 | ceil }}

Saída

5

5

divided_by

Divide um número por outro número.

Código

{{ 10 | divided_by: 2 }}

{{ 10 | divided_by: 3 }}

{{ 10.0 | divided_by: 3 }}

Saída

5

3

3.333333

floor

Arredonda um valor para baixo até ao número inteiro mais próximo.

Código

{{ 4.6 | floor }}

{{ 4.3 | floor }}

Saída

4

4

minus

Subtrai um número de outro número.

Código

<!-- entityview.page = 11 -->

{{ entityview.page | minus: 1 }}

{{ 10 | minus: 1.1 }}

{{ 10.1 | minus: 1 }}

Saída

10

9

9.1

modulo

Divide um número por outro número e devolve o resto.

Código

{{ 12 | modulo: 5 }}

Saída

2

plus

Adiciona um número a outro número.

Código

<!-- entityview.page = 11 -->

{{ entityview.page | plus: 1 }}

{{ 10 | plus: 1.1 }}

{{ 10.1 | plus: 1 }}

Saída

12

11

11.1

round

Arredonda um valor para o número inteiro mais próximo ou o número de casas decimais especificado.

Código

{{ 4.6 | round }}

{{ 4.3 | round }}

{{ 4.5612 | round: 2 }}

Saída

5

4

4.56

times

Multiplica um número por outro número.

Código

{{ 10 | times: 2 }}

{{ 10 | times: 2.2 }}

{{ 10.1 | times: 2 }}

Saída

20

20

20.2

Filtros de cadeia

Os filtros de cadeia manipulam strings..

append

Acrescenta uma cadeia ao final de outra cadeia.

Código

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

Saída

filename.js

capitalize

capitaliza todas as palavras numa cadeia.

Código

{{ 'capitalize me' | capitalize }}

Saída

Capitalize Me

downcase

Converte uma cadeia em minúsculas.

Código

{{ 'MIxed Case TExt' | downcase }}

Saída

mixed case text

newline_to_br

Insere uma etiqueta HTML de quebra de linha <br /> em cada quebra de linha numa cadeia.

Código

{% capture text %}

A

B

C

{% endcapture %}

{{ text | newline_to_br }}

Saída

A<br />

B<br />

C<br />

prepend

Acrescenta uma cadeia ao início de outra cadeia.

Código

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

Saída

Dr. Jane Johnson

remove

Remover todas as ocorrências de uma subcadeia de uma cadeia.

Código

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

Saída

Hello, . How are you, ?

remove_first

Remove a primeira ocorrência de uma subcadeia de uma cadeia.

Código

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

Saída

Hello, . How are you, Dave?

replace

Substitui todas as ocorrências de uma cadeia por uma subcadeia.

Código

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

Saída

Hello, John. How are you, John?

replace_first

Substitui a primeira ocorrência de uma cadeia por uma subcadeia.

Código

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

Saída

Hello, John. How are you, Dave?

split

O filtro split utiliza uma subcadeia como um parâmetro. A subcadeia é utilizada como delimitadora para dividir uma cadeia numa matriz.

Código

{% 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: ', ' }}

Saída

First word: This

First word: This

Second word: is

Last word: filter

All words: This, is, a, demo, of, the, split, filter

strip_html

Remove todas as tags HTML de uma cadeia.

Código

<p>Hello</p>

Saída

Hello

strip_newlines

Retira todas as quebras de linha de uma cadeia.

Código

{% capture text %}

A

B

C

{% endcapture %}

{{ text | strip_newlines }}

Saída

ABC

text_to_html

Formata uma cadeia de texto simples como simples HTML. O texto é codificado em HTML, os blocos de texto separados por uma linha vazia serão envolvidos em etiquetas <p> de parágrafo, as quebras de linha individuais são substituídas por <br> e os URL são convertidos em hiperligações.

Código

{{ note.notetext | text_to_html }}

Saída

<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

Trunca uma cadeia até um determinado número de carateres. São acrescentadas reticências (...) à cadeia e são incluídas na contagem de carateres.

Código

{{ 'This is a long run of text.' | truncate: 10 }}

Saída

This is...

truncate_words

Trunca uma cadeia até um determinado número de palavras. As reticências (...) são acrescentadas à cadeia truncada.

Código

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

Saída

This is a...

upcase

Converte uma cadeia em maiúsculas.

Código

{{ 'MIxed Case TExt' | upcase }}

Saída

MIXED CASE TEXT

Filtros de tipo

Os filtros de tipo permite, converter os valores de um tipo noutros tipos.

boolean

Tenta converter um valor de cadeia num Booleano. Se o valor já for Booleano, é devolvido inalterado. Se não for possível converter o valor num Booleano, será devolvido null.

Este filtro também aceitará ativar, ativado ou sim como true e desativar, desativado e não como false.

Código

{{ true | boolean }}

{{ 'false' | boolean }}

{{ 'enabled' | boolean }}

{{ settings['something/enabled'] | boolean | default: false }}

Saída

true

false

true

false

decimal

Tenta converter um valor de cadeia num número decimal. Se o valor já for um número decimal, é devolvido inalterado. Se não for possível converter o valor num número decimal, será devolvido null.

Código

{{ 10.1 | decimal }}

{{ '3.14' | decimal }}

{{ 'text' | decimal | default: 3.14 }}

Saída

10.1

3.14

3.14

integer

Tenta converter um valor de cadeia num número inteiro. Se o valor já for um número inteiro, é devolvido inalterado. Se não for possível converter o valor num número inteiro, será devolvido null.

Código

{{ 10 | integer }}

{{ '10' | integer }}

{{ '10.1' | integer }}

{{ 'text' | integer | default: 2 }}

Saída

10

10

2

string

Tenta converter um valor na respetiva representação em cadeia. Se o valor já for uma cadeia, é devolvido inalterado. Se o valor for null, será devolvido null.

Filtros de URL

Os filtros de URL permitem compilar ou extrair partes de URLs.

add_query

Acrescenta um parâmetro da cadeia de consulta a um URL. Se o parâmetro já existir no URL, o valor do parâmetro é atualizado.

Se este filtro for aplicado a um URL absoluto completo, um URL absoluto atualizado é o resultado. Se for aplicado a um caminho, o resultado é um caminho atualizado.

Código

{{ 'https://example.com/path?page=1' | add_query: 'foo', 'bar' }}

{{ '/path?page=1' | add_query: 'page', 2 }}

Saída

https://example.com/path?page=1&foo=bar

/path?page=2

base

Obtém o URL de base de determinado URL.

Código

{{ 'https://example.com/path?foo=bar&page=2' | base }}

Saída

https://example.com

host

Obtém a parte do anfitrião de um URL.

Código

{{ 'https://example.com/path?foo=bar&page=2' | host }}

Saída

example.com

path

Obtém a parte do caminho de um URL.

Código

{{ 'https://example.com/path?foo=bar&page=2' | path }}

{{ '/path?foo=bar&page=2' | path }}

Saída

/path

/path

path_and_query

Obtém a parte do caminho e da consulta de um URL.

Código

{{ 'https://example.com/path?foo=bar&page=2' | path_and_query }}

{{ '/path?foo=bar&page=2' | path_and_query }}

Saída

/path?foo=bar&page=2

/path?foo=bar&page=2

port

Obtém o número de porta de um URL.

Código

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

Saída

80

443

9000

remove_query

Remove um parâmetro da cadeia de consulta de um URL. Se o parâmetro não existir no URL, o URL é devolvido inalterado.

Se este filtro for aplicado a um URL absoluto completo, um URL absoluto atualizado é o resultado. Se for aplicado a um caminho, o resultado é um caminho atualizado.

Código

{{ 'https://example.com/path?page=1' | remove_query: 'page' }}

{{ '/path?page=1' | remove_query: 'page' }}

Saída

https://example.com/path

/path

scheme

Obtém a parte do esquema de um URL.

Código

{{ 'https://example.com/path?foo=bar&page=2' | scheme }}

{{ 'https://example.com/path?foo=bar&page=2' | scheme }}

Saída

http

https

Filtros adicionais

Estes filtros fornecem funcionalidades gerais úteis.

default

Devolve um valor predefinido para a variável sem valor atribuído (ou seja, null).

Código

{{ snippets[Header] | default: 'My Website' }}

Saída

<!-- If a snippet with the name Header returns null -->

My Website

file_size

Aplicado a um valor numérico que representa muitos bytes, devolve um tamanho de ficheiro formatado com uma unidade de escala adequada.

Opcionalmente, pode ser transmitido um parâmetro de precisão para controlar o número de casas decimais no resultado. A precisão predefinida é 1.

Código

{{ 10000000 | file_size }}

{{ 2050 | file_size: 0 }}

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

Saída

9.5 MB

2 KB

207.14 KB

h

Fornece uma representação HTML de um atributo. Por exemplo, mostrando uma representação HTML do atributo XML da consulta FetchXML.

Código

{{ samplequery.xml | h }}

Saída

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

has_role

Aplicado a um utilizador, devolve true se o utilizador pertencer à função fornecida. Caso contrário, devolve false.

Código

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

{% if is_admin %}

User is an administrator.

{% endif %}

liquid

Compõe uma cadeia como código Líquido. Este código tem acesso ao contexto de execução da Liquid atual (variáveis, etc.).

Nota

Este filtro deve ser utilizado com precaução e normalmente só deve ser aplicado aos valores sob o controlo exclusivo dos autores do conteúdo do site ou de outros utilizadores que possam ser considerados fidedignos para escrever código da linguagem Liquid.

Código

{{ page.adx_copy | liquid }}

Consulte também