Filtros Liquid dispoñibles
Os filtros liquid utilízanse para modificar a saída de cadeas, números, variables e obxectos. Están separados do valor ao que se aplican por unha |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->
Algúns filtros aceptan parámetros. Os filtros tamén se poden combinar, e aplícanse en orde de esquerda a dereita.
{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->
{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->
Esta sección describe varios filtros.
Filtros de matriz
Os filtros de matriz utilízanse para traballar con matrices.
lote
Divide unha matriz en varias matrices dun determinado tamaño.
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 dúas raíces nunha única matriz nova.
Cun único elemento individual como parámetro, concat devolve unha nova matriz que consiste na matriz orixinal, co elemento dado 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
Seleccione todos os obxectos nunha matriz onde un atributo determinado non ten un valor determinado. (Trátase do reverso de onde.)
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 dunha matriz.
primeiro tamén se pode utilizar cunha notación de punto especial, nos casos en que se precisa usar dentro dunha 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 elementos nunha matriz segundo un 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
Une os elementos dunha matriz co carácter que se pasou como o parámetro. O resultado é unha cadea ú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 dunha matriz.
último tamén se pode utilizar cunha notación de punto especial, nos casos en que se precisa usar dentro dunha 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.
order_by
Devolve os elementos dunha matriz ordenados segundo un atributo determinado dos elementos da matriz.
Opcionalmente, pode fornecer desc como segundo parámetro para ordenar os elementos en orde descendente, e non 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 un único elemento seleccionado aleatoriamente da matriz.
Código
{{ group1 | join: ', ' }}
{{ group1 | random }}
Saída
John, Pete, Hannah
Pete
select
Selecciona o valor dun determinado atributo para cada elemento nunha matriz e devolve estes valores como unha matriz.
Código
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Saída
Redmond, New York
shuffle
Aplicado a unha matriz, devolve unha nova matriz cos mesmos elementos, en orde aleatoria.
Código
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Saída
John, Pete, Hannah
Hannah, John, Pete
size
Devolve o número de elementos nunha matriz.
tamaño tamén se pode utilizar cunha notación de punto especial, nos casos en que se precisa usar dentro dunha 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
Omite un número determinado de elementos nunha 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
Colle un número determinado de elementos da matriz, devolvendo os elementos collidos.
Código
{% assign words = This is a run of text | split: %}
{{ words | take: 3 | join: ', ' }}
Saída
This, is, a
then_by
Engade una ordenación subxacente adicional a unha matriz xa ordenada pororder_by.
Opcionalmente, pode fornecer desc como segundo parámetro para ordenar os elementos en orde descendente, e non 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
onde
Seleccione todos os obxectos nunha matriz onde un atributo determinado ten un valor determinado.
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 datas pódense utilizar para a aritmética de datos ou para converter os valores de data e hora en varios formatos.
data
Formata un valor de data e hora utilizando unha cadea de formato .NET.
Cadeas de formato estándar de Data e Hora
Cadeas de formato personalizadas de Data e Hora
Código
{{ now | date: 'g' }}
{{ now | date: 'MMMM dd, yyyy' }}
Saída
5/7/2018 7:20 AM
May 07, 2018
date_add_days
Engade o número especificado de días completos e fraccionados ao valor de data e Hora. 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
Engade o número especificado de horas completas e fraccionadas ao valor de data e Hora. 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
Engade o número especificado de minutos completos e fraccionados ao valor de data e Hora. 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
Engade o número especificado de meses completos ao valor de data e Hora. 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
Engade o número especificado de segundos completos e fraccionados ao valor de data e Hora. 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
Engade o número especificado de anos completos ao valor de data e Hora. 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
Aplica formato a un valor de data e hora segundo a norma ISO 8601. É util cando se crean fontes Atom ou o elemento HTML5 <hora>.
Código
{{ now | date_to_iso8601 }}
Saída
2018-05-07T07:20:46Z
date_to_rfc822
Aplica formato a un valor de data e hora segundo a norma RFC 822. É util cando se crean fontes RSS.
Código
{{ now | date_to_rfc822 }}
Saída
Mon, 07 May 2018 07:20:46 Z
Filtros de escape
As secuencias de escape proporcionan unha forma de incluír caracteres especiais nas cadeas sen entrar en conflito coa interpretación regular destes caracteres pola linguaxe ou o formato de programación.
Os seguintes filtros de escape substitúen os caracteres de cadea por secuencias de escape ou eliminan os caracteres de cadea non válidos segundo o tipo de destino.
escape
HTML escapa unha cadea.
Código
{{ '<p>test</p>' | escape }}
Saída
<p>test</p>
html_safe_escape
Encubre unha cadea HTML determinada a un 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
URI: escapar unha cadea de inclusion nun URL.
Código
{{ 'This & that//' | url_escape }}
Saída
This+%26+that%2F%2F
xml_escape
XML: escapar unha cadea de inclusion en resultados XML.
Código
{{ '<p>test</p>' | xml_escape }}
Saída
<p>test</p>
Filtros de lista
Os filtros de lista utilízanse para traballar con determinados valores do atributo entitylist e para axudar a crear visualizacións de lista.
current_sort
Unha expresión de clasificación devolve a actual dirección de clasificación para un atributo determinado.
Código
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}
Saída
DESC
metafiltros
Analiza un valor JSON de definición de filtro entitylist en obxectos de grupo de opcións de filtro.
Os metafiltros poden vir cunha consulta de filtro do atributo e entitylist actuais, permitindo que os obxectos de filtro devoltos se marquen como seleccionados ou non seleccionados.
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
Unha dirección de clasificación devolve a dirección de clasificación oposta.
Código
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Saída
DESC
ASC
Filtros matemáticos
Los filtros matemáticos permiten realizar operacións matemáticas en números.
Como con todos os filtros, os filtros matemáticos poden estar en cadea, e aplícanse en orde da esquerda á dereita.
Código
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Saída
5
ceil
Redondea un valor até ao máis próximo número enteiro hacia arriba.
Código
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Saída
5
5
divided_by
Divide un número entre 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
Redondea un valor até ao máis próximo número enteiro hacia abaixo.
Código
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Saída
4
4
minus
Resta un número a 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 un número entre outro número e devolve o resto.
Código
{{ 12 | modulo: 5 }}
Saída
2
plus
Suma un 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
Redondea un valor ao máis próximo número enteiro ou número decimal especificado.
Código
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}
Saída
5
4
4.56
times
Multiplica un 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 cadea
Los filtros de cadea manipulan cadeas.
append
Anexa unha cadea ao final doutra cadea.
Código
{{ 'filename' | append: '.js' }}
Saída
filename.js
capitalize
Escribe en maiúscula cada palabra dunha cadea.
Código
{{ 'capitalize me' | capitalize }}
Saída
Capitalize Me
downcase
Pon unha cadea en minúsculas.
Código
{{ 'MIxed Case TExt' | downcase }}
Saída
mixed case text
newline_to_br
Insire unha etiqueta de quebra de liña <br /> HTML en cada quebra de liña nunha cadea.
Código
{% capture text %}
A
B
C
{% endcapture %}
{{ text | newline_to_br }}
Saída
A<br />
B<br />
C<br />
prepend
Anexa unha cadea ao principio doutra cadea.
Código
{{ 'Jane Johnson' | prepend: 'Dr. ' }}
Saída
Dr. Jane Johnson
remove
Eliminar todas as repeticións dunha subcadea nunha cadea.
Código
{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}
Saída
Hello, . How are you, ?
remove_first
Elimina as primeiras repeticións dunha subcadea nunha cadea.
Código
{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}
Saída
Hello, . How are you, Dave?
replace
Substitúe todas as repeticións dunha cadea cunha subcadea.
Código
{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}
Saída
Hello, John. How are you, John?
replace_first
Substitúe a primeira repeticiós dunha cadea cunha subcadea.
Código
{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}
Saída
Hello, John. How are you, Dave?
split
O filtro split colle unha subcadea como parámetro. A subcadea úsase como un delimitador para divide unha cadea nunha 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
Quita todas as etiquetas HTML dunha cadea.
Código
<p>Hello</p>
Saída
Hello
strip_newlines
Quita as quebras de liña dunha cadea.
Código
{% capture text %}
A
B
C
{% endcapture %}
{{ text | strip_newlines }}
Saída
ABC
text_to_html
Formata unha cadea de texto sen formato como HTML simple. O texto está codificado con HTML, os bloques de texto separados por unha liña en branco están en etiquetas de parágrafos <p>, as quebras de liña substitúense por <br> e os URL convértense en hiperligazóns.
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 unha cadea a un número concreto de caracteres. Engádense puntos suspensivos (...) á cadea e inclúese no número de caracteres.
Código
{{ 'This is a long run of text.' | truncate: 10 }}
Saída
This is...
truncate_words
Trunca unha cadea a un número concreto de palabras. Engádense puntos supensivos (...) á cadea truncada.
Código
{{ 'This is a long run of text.' | truncate_words: 3 }}
Saída
This is a...
upcase
Pon unha cadea en maiúsculas.
Código
{{ 'MIxed Case TExt' | upcase }}
Saída
MIXED CASE TEXT
Filtros de tipo
Os filtros de tipo permiten converter valores dun mesmo tipo noutros tipos.
boolean
Tenta converter un valor de cadea nun Booleano. Se o valor xa é un Booleano, devólvese sen modificacións. Se o valor non se pode converterse nun Booleano, devolverase null.
Este filtro tamén aceptará activado ou si como verdadeiro, e desactivado e non como falso.
Código
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Saída
true
false
true
false
decimal
Tenta converter un valor de cadea nun número decimal. Se o valor xa é un número decimal, devólvese sen modificacións. Se o valor non se pode converter nun número decimal, devolverase 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 un valor de cadea nun número enteiro. Se o valor xa é un número enteiro, devólvese sen modificacións. Se o valor non se pode converter nun número enteiro, devolverase null.
Código
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Saída
10
10
2
string
Tenta converter un valor na súa representación de cadea. Se o valor xa é unha cadea, devólvese sen modificacións. Se o valor é null, devolverase null.
Filtros de URL
Os filtros de URL permiten a compilación ou extracción de partes de URL.
add_query
Anexa un parámetro de cadea de consulta para un URL. Se o parámetro xa existe no URL, o valor do parámetro actualízase.
Se este filtro se aplica a un URL completo absoluto, un URL actualizado absoluto é o resultado. Se se aplica a un camiño, un camiño actualizado é 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
Obtén a base do URL dun URL determinado.
Código
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Saída
https://example.com
host
Obtén a parte aloxada do URL.
Código
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Saída
example.com
path
Obtén a parte do camiño do 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én a parte do camiño e da consulta do 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én o número de porto do 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
Quita un parámetro de cadea de consulta dun URL. Se o parámetro non existe no URL, o URL devólvese sen modificar.
Se este filtro se aplica a un URL completo absoluto, un URL actualizado absoluto é o resultado. Se se aplica a un camiño, un camiño actualizado é 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
scheme
Obtén a parte do esquema do 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 fornecen funcionalidade xeral útil.
default
Devolve o valor predefinido para calquera variable con valor non atribuído (é dicir, 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 un valor numérico que representa moitos bytes, devolve un tamaño de ficheiro formatado cunha unidade de escala apropiada.
Opcionalmente, un parámetro de precisión pódese pasar, para controlar o número de decimais no resultado. O valor predefinido de precisión é 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
Proporciona unha representación HTML dun atributo. Por exemplo, mostrando unha representación 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 un usuario, devolve verdadeiro se o usuario pertence a esa función. En caso contrario, devolve falso.
Código
{% assign is_admin = user | has_role: 'Administrators' %}
{% if is_admin %}
User is an administrator.
{% endif %}
liquid
Procesa unha cadea como código Liquid. Este código ten acceso ao actual contexto de execución de Liquid (variables, etc.).
Nota
Este filtro debe usarse con atención e, polo xeral, só se debería aplicar ao valores que estean baixo o control exclusivo dos autores de contido do sitio ou outros usuarios en que se pode confiar para escribir código Liquid.
Código
{{ page.adx_copy | liquid }}