Filtros do Liquid disponíveis
Os filtros Liquid são usados para alterar a saída das cadeias de caracteres, variáveis dos dados e os objetos. Eles estão separados do valor que estão sendo aplicados por um |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->
Os filtros aceitam parâmetros. Os filtros podem ser combinados, e são aplicados em ordem da esquerda para a direita.
{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->
{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->
A seção a seguir descreve vários filtros.
Filtros de matriz
Os filtros de matriz são usados para funcionar 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 uma única nova matriz.
Dado um item único como parâmetro, a função concat retorna uma nova matriz que consiste na matriz original, com esse item como o ú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 em uma matriz, onde um determinado atributo não tem um determinado valor. (Este é o inverso de onde.)
Código
{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Saída
Jack Robinson
primeira
Retorna o primeiro elemento de uma matriz.
primeiro também pode ser usado com uma notação de ponto especial nos casos em que precisa ser usado em uma marca.
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
Agrupe os itens em uma 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
Adicione os elementos de uma matriz com o caractere passado como o parâmetro. O resultado é uma única cadeia de caracteres.
Código
{% assign words = This is a run of text | split: %}
{{ words | join: , }}
Saída
This, is, a, run, of, text
última
Retorna o último elemento de uma matriz.
último também pode ser usado com uma notação de ponto especial nos casos em que precisa ser usado em uma marca.
Code
{% 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.
order_by
Retorna os elementos de uma matriz ordenada por um determinado atributo dos elementos da matriz.
Se preferir, você pode fornecer desc como parâmetro secundário para classificar os elementos em ordem decrescente, e não crescente.
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
Retorna 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 em uma matriz e retorna esses valores como uma matriz.
Código
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Saída
Redmond, New York
shuffle
Aplicado a uma matriz, retorna uma nova matriz com os mesmos itens, em ordem aleatória.
Código
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Saída
John, Pete, Hannah
Hannah, John, Pete
size
Retorna o número de itens em uma matriz.
O tamanho também pode ser usado com uma notação de ponto especial nos casos em que precisa ser usado dentro de uma marca.
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 em uma matriz e retorna o restante.
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, retornando 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 ordem subsequente extra a uma matriz já classificada por order_by.
Se preferir, você pode fornecer desc como parâmetro secundário para classificar os elementos em ordem decrescente, e não crescente.
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
where
Selecione todos os objetos em uma matriz, onde um determinado atributo tem 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 usados para a data aritmética ou para converter valores DateTime em vários formatos.
data
Formata um valor DateTime usando uma cadeia de caracteres de formato .NET.
Cadeias de Caracteres de Formato de Data e Hora Padrão
Personalizar a Cadeia de Caracteres de Formato de Data e Hora
Code
{{ 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 e fracionários para valor DateTime. O parâmetro pode ser positivo ou negativo.
Code
{{ 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 e fracionárias ao valor DateTime. O parâmetro pode ser positivo ou negativo.
Code
{{ 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 e fracionários ao valor DateTime. O parâmetro pode ser positivo ou negativo.
Code
{{ 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 e fracionários ao valor DateTime. O parâmetro pode ser positivo ou negativo.
Code
{{ 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 um número especificado de segundos inteiros e fracionários ao valor DateTime. O parâmetro pode ser positivo ou negativo.
Code
{{ 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 para o valor DateTime. O parâmetro pode ser positivo ou negativo.
Code
{{ 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 o padrão ISO 8601. Útil ao criar feeds Atom, ou o elemento <time> HTML5.
Code
{{ now | date_to_iso8601 }}
Saída
2018-05-07T07:20:46Z
date_to_rfc822
Formata um valor DateTime de acordo com o padrão RFC 822. Útil ao criar os RSS feeds.
Código
{{ now | date_to_rfc822 }}
Saída
Mon, 07 May 2018 07:20:46 Z
Filtros de escape
As sequências de escape fornecem uma maneira de incluir caracteres especiais em cadeias de caracteres sem entrar em conflito com a interpretação regular desses caracteres pela linguagem de programação ou formato.
Os filtros de escape a seguir substituem caracteres da cadeia de caracteres por sequências de escape ou removem caracteres de string inválidos com base no tipo de destino.
escapar
Faz o escape de HTML de uma cadeia de caracteres.
Código
{{ '<p>test</p>' | escape }}
Saída
<p>test</p>
html_safe_escape
Converte uma determinada string HTML em um 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
Escape de URI de uma cadeia de caracteres para inclusão em uma URL.
Code
{{ 'This & that//' | url_escape }}
Saída
This+%26+that%2F%2F
xml_escape
Escape de XML de uma cadeia de caracteres para inclusão em saída XML.
Código
{{ '<p>test</p>' | xml_escape }}
Saída
<p>test</p>
Filtros de lista
Os filtros de lista são usados para funcionar com determinados valores de atributo entitylist e ajudar a criar visualizações de lista.
current_sort
Dada uma expressão de classificação, retorna a direção de classificação atual para um determinado atributo.
Code
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}
Saída
DESC
metafiltros
Analisa um valor JSON de definição de filtro entitylist para objetos do grupo de opção de filtro.
Os metafiltros podem receber uma consulta de filtro de atributo atual e entitylist atual, permitindo que os objetos de filtro retornados sejam sinalizados como selecionados ou não selecionados.
Code
{% 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 classificação, retorna a direção de classificação oposta.
Código
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Saída
DESC
ASC
Filtros de matemática
Os filtros de matemática permitem que você execute operações matemáticas em números.
Como com todos os filtros, os filtros podem ser posicionados, e são aplicados da esquerda para a direita.
Código
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Saída
5
ceil
Arredondará um valor inteiro até o mais próximo.
Code
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Saída
5
5
divided_by
Divide um número por outro número.
Code
{{ 10 | divided_by: 2 }}
{{ 10 | divided_by: 3 }}
{{ 10.0 | divided_by: 3 }}
Saída
5
3
3.333333
baixo
Arredondará um valor abaixo até o mais próximo.
Código
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Saída
4
4
negativo
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
módulo
Divide um número por outro número e retornará o restante.
Código
{{ 12 | modulo: 5 }}
Saída
2
positivo
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
arredondar
Valor de arredondamento mais próximo ao inteiro 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
vezes
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 cadeias de caracteres
Os filtros de cadeia de caracteres manipulam cadeias de caracteres.
append
Acrescenta uma cadeia de caracteres ao final de outra cadeia de caracteres.
Código
{{ 'filename' | append: '.js' }}
Saída
filename.js
colocar iniciais em maiúscula
coloca em maiúscula cada palavra em uma cadeia de caracteres.
Código
{{ 'capitalize me' | capitalize }}
Saída
Capitalize Me
colocar iniciais em minúscula
Converte uma cadeia de caracteres em minúsculas.
Código
{{ 'MIxed Case TExt' | downcase }}
Saída
mixed case text
newline_to_br
Insere uma marca HTML <br /> de quebra de linha em cada quebra de linha em uma cadeia de caracteres.
Código
{% capture text %}
A
B
C
{% endcapture %}
{{ text | newline_to_br }}
Saída
A<br />
B<br />
C<br />
acrescentar
Acrescenta uma cadeia de caracteres ao início de outra cadeia de caracteres.
Código
{{ 'Jane Johnson' | prepend: 'Dr. ' }}
Saída
Dr. Jane Johnson
remover
Remove todas as ocorrências de uma subcadeia de caracteres de uma cadeia de caracteres.
Code
{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}
Saída
Hello, . How are you, ?
remove_first
Remove todas as primeiras ocorrências de uma subcadeia de caracteres de uma cadeia de caracteres.
Código
{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}
Saída
Hello, . How are you, Dave?
substituir
Substitui todas as ocorrências de uma cadeia de caracteres por uma subcadeia de caracteres.
Code
{{ '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 de caracteres por uma subcadeia de caracteres.
Código
{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}
Saída
Hello, John. How are you, Dave?
dividir
O filtro dividir toma uma subcadeia de caracteres como parâmetro. A subcadeia de caracteres é usada como delimitador para dividir uma cadeia de caracteres em uma matriz.
Code
{% 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 marcas HTML de uma cadeia de caracteres.
Code
<p>Hello</p>
Saída
Hello
strip_newlines
Elimina qualquer quebra de linha de uma cadeia de caracteres.
Code
{% capture text %}
A
B
C
{% endcapture %}
{{ text | strip_newlines }}
Saída
ABC
text_to_html
Formata uma cadeia de caracteres de texto sem formatação como HTML simples. O texto é codificado em HTML; os blocos de texto separados por uma linha em branco serão colocados entre marcas <p> de parágrafo; as quebras de linha simples são substituídas por <br>, e as URLs são convertidas em hyperlinks.
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>
truncar
Trunca uma cadeia de caracteres abaixo de um determinado número de caracteres. São acrescentadas reticências (...) à cadeia de caracteres, que são incluídas na contagem de caracteres.
Code
{{ 'This is a long run of text.' | truncate: 10 }}
Saída
This is...
truncate_words
Trunca uma cadeia de caracteres abaixo de um determinado número de palavras. São acrescentadas reticências (...) à cadeia de caracteres truncada.
Código
{{ 'This is a long run of text.' | truncate_words: 3 }}
Saída
This is a...
maiúsculas
Converte uma cadeia de caracteres em maiúsculas.
Código
{{ 'MIxed Case TExt' | upcase }}
Saída
MIXED CASE TEXT
Filtros de tipo
Os filtros de tipo permitem a você converter valores de um tipo em outros tipos.
booliano
Tentativas de converter um valor da cadeia de caracteres em um Booliano. Se o valor já for um valor Booliano, ele é retornado inalterado. Se o valor não puder ser convertido em um Booliano, será retornado nulo.
Esse filtro também aceitará ativado, habilitado ou sim como verdadeiro, e desativado, desabilitado e não como falso.
Código
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Saída
true
false
true
false
decimal
Tentativas de converter um valor da cadeia de caracteres em número decimal. Se o valor já for um número decimal, ele é retornado inalterado. Se o valor não puder ser convertido em um número decimal, será retornado nulo.
Código
{{ 10.1 | decimal }}
{{ '3.14' | decimal }}
{{ 'text' | decimal | default: 3.14 }}
Saída
10.1
3.14
3.14
inteiro
Tentativas de converter um valor da cadeia de caracteres em um inteiro. Se o valor já for um valor inteiro, ele será retornado sem alteração. Se o valor não puder ser convertido em um inteiro, será retornado nulo.
Código
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Saída
10
10
2
cadeia de caracteres
Tentativas de converter um valor para sua representação de cadeia de caracteres. Se o valor já for um uma cadeia de caracteres, ele será retornado inalterado. Se o valor for null, será retornado null.
Filtros da URL
Os filtros da URL permitem compilar ou extrair partes de URLs.
add_query
Acrescentar um parâmetro da cadeia de caracteres da consulta à URL. Se o parâmetro já existe na URL de parâmetro, o valor será atualizado.
Se o filtro aplicado a uma URL absoluta completa, uma URL absoluta atualizada será o resultado. Se ele estiver aplicado ao caminho, um caminho atualizado será o resultado.
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
Obter a URL base de uma determinada URL.
Código
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Saída
https://example.com
host
É a parte de host da URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Saída
example.com
caminho
É a parte de caminho da URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | path }}
{{ '/path?foo=bar&page=2' | path }}
Saída
/path
/path
path_and_query
É a parte de caminho e consulta da URL.
Code
{{ '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
porta
Recebe o número da porta da URL.
Code
{{ '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 caracteres de uma URL. Se o parâmetro não existir na URL, a URL será retornada inalterada.
Se o filtro aplicado a uma URL absoluta completa, uma URL absoluta atualizada será o resultado. Se ele estiver aplicado ao caminho, um caminho atualizado será o resultado.
Código
{{ 'https://example.com/path?page=1' | remove_query: 'page' }}
{{ '/path?page=1' | remove_query: 'page' }}
Saída
https://example.com/path
/path
esquema
É a parte de esquema da 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
Esses filtros fornecem funcionalidade geral útil.
padrão
Retorna um valor padrão para qualquer variável sem o valor atribuído (isto é, nulo).
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 representando muitos bytes, retorna um tamanho de arquivo formatado com uma unidade de escala apropriada.
Opcionalmente, um parâmetro de precisão pode ser passado, para acompanhar o número de casas decimais no resultado. A precisão padrão é 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 FetchXML atributo XML da consulta.
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 usuário, retorna true se o usuário pertence a essa determinada função. Retorna falso se ele não pertence.
Código
{% assign is_admin = user | has_role: 'Administrators' %}
{% if is_admin %}
User is an administrator.
{% endif %}
liquid
Renderiza uma cadeia de caracteres como o código Líquido. Este código tem acesso ao contexto do Liquid atual de execução (variáveis, etc.).
Observação
Esse filtro deve ser usado com cuidado e geralmente só deve ser aplicado aos valores que estão no controle de autores exclusivo do conteúdo do site ou outros usuários que podem ser confiados para gravar código Liquid.
Code
{{ page.adx_copy | liquid }}