Compartir a través de


Filtros de Liquid disponibles

Los filtros de Liquid se usan para modificar el resultado de cadenas, números, variables y objetos. Están separados del valor al que se aplican mediante una |.

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

Algunos filtros aceptan parámetros. Los filtros también se pueden combinar, y se aplican en orden de izquierda a derecha.

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

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

La sección a continuación describe los diferentes filtros.

Filtros de matriz

Los filtros de matriz se usan para trabajar con matrices.

batch

Divide una matriz en matrices múltiples de un 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 %}

Salida

<ul>

<li>John Smith</li>

<li>Dave Thomas</li>

</ul>

<ul>

<li>Jake Johnson</li>

<li>Jack Robinson</li>

</ul>

concat

Concatena dos matrices en un matriz nueva y única.

Dado un solo elemento como parámetro, concat devuelve una nueva matriz que consiste en la matriz original, con el elemento dado como último elemento.

Código

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

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

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

Salida

Group #1: John, Pete, Hannah

Group #2: Joan, Bill

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

except

Seleccione todos los objetos de una matriz en la que un atributo determinado no tiene un valor determinado. (Es lo contrario de where).

Código

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

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Output

Jack Robinson

primero

Devuelve el primer elemento de una matriz.

first también se puede usar con la notación de punto especial, en casos en los que sea necesario usarla dentro de una etiqueta.

Código

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

{{ words | first }}

{% if words.first == This %}

The first word is This.

{% endif %}

Salida

This

The first word is This.

group_by

Agrupa los elementos en una matriz por un atributo determinado.

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

Salida

Redmond:

John Smith

Dave Thomas

Jake Johnson

New York:

Jack Robinson

join

Combina los elementos de una matriz con el carácter pasado como parámetro. El resultado es una sola cadena.

Código

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

{{ words | join: ,  }}

Salida

This, is, a, run, of, text

Último

Devuelve el último elemento de una matriz.

last también se puede usar con la notación de punto especial, en casos en los que sea necesario usarla dentro de una etiqueta.

Code

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

{{ words | last }}

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

The last word is text.

{% endif -%}

Output

text

The last word is text.

order_by

Devuelve los elementos de una matriz ordenada por atributo dado de los elementos de la matriz.

De manera opcional, puede proporcionar desc como segundo parámetro para ordenar los elementos en orden descendente, en lugar de ascendente.

Código

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

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

Output

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

random

Devuelve un solo elemento seleccionado aleatoriamente de la matriz.

Código

{{ group1 | join: ', ' }}

{{ group1 | random }}

Output

John, Pete, Hannah

Pete

seleccionar

Selecciona el valor de un atributo determinado para cada elemento de una matriz, y devuelve estos valores como matriz.

Código

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

Salida

Redmond, New York

shuffle

Aplicado a una matriz, devuelve una nueva matriz con los mismos elementos, en orden aleatorizado.

Código

{{ group1 | join: ', ' }}

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

Output

John, Pete, Hannah

Hannah, John, Pete

size

Devuelve el número de elementos de una matriz.

size también se puede usar con la notación de punto especial, en casos en los que sea necesario usarla dentro de una etiqueta.

Código

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

{{ words | size }}

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

The text contains 6 words.

{% endif -%}

Salida

6

The text contains 6 words.

skip

Omite un número determinado de elementos de una matriz, y devuelve el resto.

Código

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

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

Salida

run, of, text

take

Toma un número determinado de elementos de la matriz, devolviendo los elementos tomados.

Código

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

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

Output


This, is, a

then_by

Agrega orden posterior extra a una matriz ya ordenada medianteorderby.

De manera opcional, puede proporcionar desc como segundo parámetro para ordenar los elementos en orden descendente, en lugar 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: ', ' }}

Salida

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

donde

Seleccione todos los objetos de una matriz en la que un atributo determinado tiene un valor determinado.

Código

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

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Salida

John Smith

Dave Thomas

Jake Johnson

Filtros por fecha

Los filtros por fecha se pueden usar para la aritmética de fecha o para convertir valores de fecha y hora en distintos formatos.

fecha

Aplica formato a un valor de fecha y hora con una cadena de formato .NET.

Cadenas de formato estándar de fecha y hora

Cadenas de formato personalizado de fecha y hora

Code

{{ now | date: 'g' }}

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

Output

5/7/2018 7:20 AM

May 07, 2018

date_add_days

Agrega un número especificado de días enteros y fraccionarios al valor de fecha y hora. El parámetro pueden ser positivo o negativo.

Code

{{ now }}

{{ now | date_add_days: 1 }}

{{ now | date_add_days: -2.5 }}

Output

5/7/2018 7:20:46 AM

5/8/2018 7:20:46 AM

5/4/2018 7:20:46 PM

date_add_hours

Agrega un número especificado de horas enteras y fraccionarias al valor de fecha y hora. El parámetro pueden ser positivo o negativo.

Code

{{ now }}

{{ now | date_add_hours: 1 }}

{{ now | date_add_hours: -2.5 }}

Output

5/7/2018 7:20:46 AM

5/7/2018 8:20:46 AM

5/7/2018 4:50:46 AM

date_add_minutes

Agrega un número especificado de minutos enteros y fraccionarios al valor de fecha y hora. El parámetro pueden ser positivo o negativo.

Code

{{ now }}

{{ now | date_add_minutes: 10 }}

{{ now | date_add_minutes: -2.5 }}

Output

5/7/2018 7:20:46 AM

5/7/2018 7:30:46 AM

5/7/2018 7:18:16 AM

date_add_months

Agrega un número especificado de meses enteros al valor de fecha y hora. El parámetro pueden ser positivo o negativo.

Code

{{ now }}

{{ now | date_add_months: 1 }}

{{ now | date_add_months: -2 }}

Output

5/7/2018 7:20:46 AM

6/7/2018 7:20:46 AM

3/7/2018 7:20:46 AM

date_add_seconds

Agrega un número especificado de segundos enteros y fraccionarios al valor de fecha y hora. El parámetro pueden ser positivo o negativo.

Code

{{ now }}

{{ now | date_add_seconds: 10 }}

{{ now | date_add_seconds: -1.25 }}

Output

5/7/2018 7:20:46 AM

5/7/2018 7:20:56 AM

5/7/2018 7:20:45 AM

date_add_years

Agrega un número especificado de años enteros al valor de fecha y hora. El parámetro pueden ser positivo o negativo.

Code

{{ now }}

{{ now | date_add_years: 1 }}

{{ now | date_add_years: -2 }}

Output

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 fecha y hora de acuerdo con la norma ISO 8601. Útil para crear fuentes Atom o el elemento HTML5 <>.

Code

{{ now | date_to_iso8601 }}

Output

2018-05-07T07:20:46Z

date_to_rfc822

Aplica formato a un valor de fecha y hora de acuerdo con la norma RFC 822. Útil para crear fuentes RSS.

Código

{{ now | date_to_rfc822 }}

Output

Mon, 07 May 2018 07:20:46 Z

Filtros de escape

Las secuencias de escape proporcionan una forma de incluir caracteres especiales en cadenas sin entrar en conflicto con la interpretación normal de esos caracteres por parte del lenguaje de programación o el formato.

Los siguientes filtros de escape reemplazan los caracteres de cadena con secuencias de escape o eliminan los caracteres de cadena no válidos según el tipo de destino.

escape

Inserta caracteres de escape HTML en una cadena.

Código

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

Output

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

html_safe_escape

Convierte una cadena HTML dada en un fragmento HTML seguro.

Código

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

Output

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

url_escape

Se insertan caracteres de escape URI en una cadena para su inclusión en una dirección URL.

Code

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

Output

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

xml_escape

Se insertan caracteres de escape XML en una cadena para su inclusión en salida XML.

Código

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

Output

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

Filtros de lista

Los filtros de lista se usan para trabajar con determinados valores de atributo entitylist y para ayudar a crear vistas de lista.

current_sort

Dada una expresión de ordenación, devuelve la dirección de ordenación actual para un atributo determinado.

Code

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

Output

DESC

metafilters

Analiza un valor JSON de entitylist filter_definition en objetos de grupo de opciones de filtro.

metafilters se puede ofrecer opcionalmente con una consulta de filtro de atributos actual y una entitylist actual, lo que permite que los objetos de filtro devueltos se marquen como seleccionados o no seleccionados.

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 una dirección de ordenación, devuelve la dirección de ordenación opuesta.

Código

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

{{ 'ASC' | reverse_sort }}

{{ 'desc' | reverse_sort }}

Salida

DESC

ASC

Filtros de matemáticas

Los filtros de matemáticas permiten realizar operaciones matemáticas en números.

Como con todos los filtros, los filtros de matemáticas también se pueden encadenar y se aplican en orden de izquierda a derecha.

Código

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

Salida

5

ceil

Redondea al alza un valor hasta el entero más cercano.

Code

{{ 4.6 | ceil }}

{{ 4.3 | ceil }}

Output

5

5

divided_by

Divide un número por otro número.

Code

{{ 10 | divided_by: 2 }}

{{ 10 | divided_by: 3 }}

{{ 10.0 | divided_by: 3 }}

Output

5

3

3.333333

floor

Redondea a la baja un valor hasta el entero más cercano.

Código

{{ 4.6 | floor }}

{{ 4.3 | floor }}

Salida

4

4

minus

Resta un número de otro número.

Código

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

{{ entityview.page | minus: 1 }}

{{ 10 | minus: 1.1 }}

{{ 10.1 | minus: 1 }}

Salida

10

9

9.1

modulo

Divide un número por otro número y devuelve el resto.

Código

{{ 12 | modulo: 5 }}

Salida

2

plus

Suma un número a otro número.

Código

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

{{ entityview.page | plus: 1 }}

{{ 10 | plus: 1.1 }}

{{ 10.1 | plus: 1 }}

Salida

12

11

11.1

round

Redondea un valor al entero más próximo o el número especificado de decimales.

Código

{{ 4.6 | round }}

{{ 4.3 | round }}

{{ 4.5612 | round: 2 }}

Salida

5

4

4.56

times

Multiplica un número por otro número.

Código

{{ 10 | times: 2 }}

{{ 10 | times: 2.2 }}

{{ 10.1 | times: 2 }}

Salida

20

20

20.2

Filtros de cadena

Los filtros de cadena manipulan cadenas.

append

Anexa una cadena al final de otra cadena.

Código

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

Output

filename.js

capitalize

pone en mayúscula cada palabra en una cadena.

Código

{{ 'capitalize me' | capitalize }}

Output

Capitalize Me

downcase

Convierte una cadena en minúscula.

Código

{{ 'MIxed Case TExt' | downcase }}

Output

mixed case text

newline_to_br

Inserta una etiqueta HTML de salto de línea <br /> en cada salto de línea de una cadena.

Código

{% capture text %}

A

B

C

{% endcapture %}

{{ text | newline_to_br }}

Salida

A<br />

B<br />

C<br />

prepend

Antepone una cadena al principio de otra cadena.

Código

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

Salida

Dr. Jane Johnson

remove

Elimina todas las instancias de una subcadena de una cadena.

Code

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

Output

Hello, . How are you, ?

remove_first

Elimina la primera instancia de una subcadena de una cadena.

Código

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

Salida

Hello, . How are you, Dave?

replace

Reemplaza todas las instancias de una cadena con una subcadena.

Code

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

Output

Hello, John. How are you, John?

replace_first

Reemplaza la primera instancia de una cadena con una subcadena.

Código

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

Salida

Hello, John. How are you, Dave?

split

El filtro split adopta una subcadena como parámetro. La subcadena se usa como delimitador para dividir una cadena en una 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: ', ' }}

Output

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 las etiquetas HTML de una cadena.

Code

<p>Hello</p>

Output

Hello

strip_newlines

Quita las saltos de línea de una cadena.

Code

{% capture text %}

A

B

C

{% endcapture %}

{{ text | strip_newlines }}

Output

ABC

text_to_html

Da formato a una cadena de texto sin formato como HTML simple. El texto se codifica como HTML, bloques de texto separados por una línea en blanco se incluirán entre etiquetas de párrafo <p>, los saltos de línea individuales se sustituyen con <br>, y las direcciones URL se convierten en hipervínculos.

Código

{{ note.notetext | text_to_html }}

Output

<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 una cadena hasta un número de caracteres determinado. Un punto suspensivo (...) se anexa a la cadena y se incluye en el número de caracteres.

Code

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

Output

This is...

truncate_words

Trunca una cadena hasta un número de palabras determinado. Se anexan puntos suspensivos (...) a la cadena truncada.

Código

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

Output

This is a...

upcase

Convierte una cadena en mayúscula.

Código

{{ 'MIxed Case TExt' | upcase }}

Output

MIXED CASE TEXT

Filtros de tipo

Los filtros de tipo permiten la conversión de valores de un tipo a otro.

boolean

Intenta convertir un valor de cadena en booleano. Si el valor ya es booleano, se devuelve sin cambios. Si el valor no se puede convertir en booleano, se devolverá null.

Este filtro también acepta on, habilitado, o sí como true, y off, deshabilitado y no como false.

Código

{{ true | boolean }}

{{ 'false' | boolean }}

{{ 'enabled' | boolean }}

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

Salida

true

false

true

false

decimal

Intenta convertir un valor de cadena en número decimal. Si el valor ya es un número decimal, se devuelve sin cambios. Si el valor no se puede convertir en un número decimal, se devolverá null.

Código

{{ 10.1 | decimal }}

{{ '3.14' | decimal }}

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

Salida

10.1

3.14

3.14

integer

Intenta convertir un valor de cadena en un entero. Si el valor ya es un entero, se devuelve sin cambios. Si el valor no se puede convertir en un entero, se devolverá null.

Código

{{ 10 | integer }}

{{ '10' | integer }}

{{ '10.1' | integer }}

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

Output

10

10

2

string

Intenta convertir un valor en su representación de cadena. Si el valor ya es una cadena, se devuelve sin cambios. Si el valor es null, se devolverá null.

Filtros de dirección URL

Los filtros de dirección URL permiten crear o extraer partes de direcciones URL.

add_query

Anexar un parámetro de cadena de consulta a una dirección URL. Si el parámetro ya existe en la dirección URL, el valor del parámetro se actualiza.

Si este filtro se aplica a una dirección URL absoluta completa, una dirección URL absoluta actualizada es el resultado. Si se aplica a una ruta, una ruta actualizada es el resultado.

Código

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

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

Output

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

/path?page=2

base

Obtiene la dirección URL de una dirección URL determinada.

Código

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

Salida

https://example.com

host

Obtiene la parte de host de una dirección URL.

Code

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

Output

example.com

path

Obtiene la parte de ruta de una dirección URL.

Code

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

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

Output

/path

/path

path_and_query

Obtiene la parte de ruta y consulta de una dirección URL.

Code

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

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

Output

/path?foo=bar&page=2

/path?foo=bar&page=2

port

Obtiene el número de puerto una dirección 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 }}

Output

80

443

9000

remove_query

Quita un parámetro de cadena de consulta de una dirección URL. Si el parámetro no existe en la dirección URL, la dirección URL se devuelve sin cambios.

Si este filtro se aplica a una dirección URL absoluta completa, una dirección URL absoluta actualizada es el resultado. Si se aplica a una ruta, una ruta actualizada es el resultado.

Código

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

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

Output

https://example.com/path

/path

scheme

Obtiene la parte de esquema de una dirección URL.

Código

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

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

Salida

http

https

Filtros adicionales

Estos filtros proporcionan funcionalidad general útil.

default

Devuelve un valor predeterminado para cualquier variable sin valor asignado (es decir, null).

Código

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

Output

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

My Website

file_size

Aplicado un valor de número que representa muchos bytes, devuelve un tamaño de archivo con formato con una unidad de escala adecuada.

Opcionalmente, puede pasarse un parámetro de precisión para controlar el número de decimales en el resultado. La precisión predeterminada es 1.

Código

{{ 10000000 | file_size }}

{{ 2050 | file_size: 0 }}

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

Output

9.5 MB

2 KB

207.14 KB

h

Proporciona una representación HTML de un atributo. Por ejemplo, mostrar una representación HTML del atributo XML de la consulta de FetchXML.

Código

{{ samplequery.xml | h }}

Output

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

has_role

Si se aplica a un usuario, devuelve true si el usuario pertenece al rol determinado. Devuelve false si no.

Código

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

{% if is_admin %}

User is an administrator.

{% endif %}

liquid

Representa una cadena como código de Liquid. Este código tiene acceso al contexto de ejecución de Liquid actual (variables, etc.).

Nota

Este filtro se debe usar con precaución y debe aplicarse normalmente sólo a los valores que están bajo el control exclusivo de los autores del contenido del sitio, u otros usuarios en los que se puede confiar para escribir código de Liquid.

Code

{{ page.adx_copy | liquid }}

Consulte también