Compartir por


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

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

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

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

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

Consulte tamén