Filtres de Liquid disponibles
Els filtres de Liquid s'utilitzen per modificar la sortida de cadenes, números, variables i objectes. Estan separats del valor al que s'apliquen amb una |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->
Alguns filtres accepten paràmetres. Els filtres també es poden combinar i s'apliquen seguint l'ordre d'esquerra a dreta.
{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->
{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->
La secció següent descriu diversos filtres.
Filtres de matriu
Els filtres de matriu s'utilitzen per treballar amb matrius.
lot
Divideix una matriu en diverses matrius d'una mida determinada.
Codi
{% assign batches = entityview.records | batch: 2 %}
{% for batch in batches %}
<ul>
{% for item in batch %}
<li>{{ item.fullname }}</li>
{% endfor %}
</ul>
{% endfor %}
Sortida
<ul>
<li>John Smith</li>
<li>Dave Thomas</li>
</ul>
<ul>
<li>Jake Johnson</li>
<li>Jack Robinson</li>
</ul>
concat
Concatena dues matrius en una sola matriu nova.
Un cop s'hagi especificat un únic element com un paràmetre, concat retorna una nova matriu que consta de la matriu original, amb l'element especificat com l'últim element.
Codi
Group #1: {{ group1 | join: ', ' }}
Group #2: {{ group2 | join: ', ' }}
Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}
Sortida
Group #1: John, Pete, Hannah
Group #2: Joan, Bill
Group #1 + Group #2: John, Pete, Hannah, Joan, Bill
excepte
Selecciona tots els objectes en una matriu en què un atribut determinat no té un valor determinat. (És el contrari de where).
Codi
{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Sortida
Jack Robinson
primer
Retorna el primer element d'una matriu.
primer també es pot utilitzar amb una notació de punts especials, en els casos en què s'ha d'utilitzar en una etiqueta.
Codi
{% assign words = This is a run of text | split: %}
{{ words | first }}
{% if words.first == This %}
The first word is This.
{% endif %}
Sortida
This
The first word is This.
agrupa per
Agrupar els elements en una matriu per un atribut determinat.
Codi
{% assign groups = entityview.records | group_by: 'address1_city' %}
{% for group in groups %}
{{ group.key }}:
{% for item in group.items %}
{{ item.fullname }}
{% endfor %}
{% endfor %}
Sortida
Redmond:
John Smith
Dave Thomas
Jake Johnson
New York:
Jack Robinson
unió
Uneix els elements d'una matriu amb caràcter com un paràmetre. El resultat és una sola cadena.
Codi
{% assign words = This is a run of text | split: %}
{{ words | join: , }}
Sortida
This, is, a, run, of, text
últim
Retorna el l'últim element d'una matriu.
per últim també es pot utilitzar amb una notació de punts especials, en els casos en què s'ha d'utilitzar en una etiqueta.
Codi
{% assign words = This is a run of text | split: -%}
{{ words | last }}
{% if words.last == text -%}
The last word is text.
{% endif -%}
Sortida
text
The last word is text.
order_by
Retorna els elements d'una matriu ordenades per un atribut determinat dels elements de la matriu.
També podeu proporcionar desc com un segon paràmetre per ordenar els elements en ordre descendent, en lloc d'ascendent.
Codi
{{ entityview.records | order_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}
Sortida
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
aleatori
Retorna un únic element seleccionat de forma aleatòria de la matriu.
Codi
{{ group1 | join: ', ' }}
{{ group1 | random }}
Sortida
John, Pete, Hannah
Pete
selecció
Selecciona el valor d'un atribut determinat per a cada element d'una matriu i retorna aquests valors com una matriu.
Codi
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Sortida
Redmond, New York
barreja
Si s'aplica a una matriu, retorna una nova matriu amb els mateixos elements, en ordre aleatori.
Codi
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Sortida
John, Pete, Hannah
Hannah, John, Pete
mida
Retorna el número d'elements d'una matriu.
la mida també es pot utilitzar amb una notació de punts especials, en els casos en què s'ha d'utilitzar en una etiqueta.
Codi
{% assign words = This is a run of text | split: -%}
{{ words | size }}
{% if words.size == 6 -%}
The text contains 6 words.
{% endif -%}
Sortida
6
The text contains 6 words.
omet
Omet un número determinat d'elements d'una matriu i retorna la resta.
Codi
{% assign words = This is a run of text | split: %}
{{ words | skip: 3 | join: ', ' }}
Sortida
run, of, text
tria
Escull un número determinat d'elements de la matriu i retorna els elements que s'han escollit.
Codi
{% assign words = This is a run of text | split: %}
{{ words | take: 3 | join: ', ' }}
Sortida
This, is, a
then_by
Afegeix una ordenació posterior addicional a una matriu que ja s'ha ordenar per order_by.
També podeu proporcionar desc com un segon paràmetre per ordenar els elements en ordre descendent, en lloc d'ascendent.
Codi
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}
Sortida
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
on
Selecciona tots els objectes en una varietat en què un atribut determinat té un valor determinat.
Codi
{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Sortida
John Smith
Dave Thomas
Jake Johnson
Filtres de dades
Els filtres de dades es poden utilitzar per a les dades aritmètiques o per convertir els valors Data/Hora en diversos formats.
data
Formaten un valor Data/Hora mitjançant una cadena de format .NET.
Cadenes de format de data i hora estàndard
Cadenes de format de data i hora personalitzades
Codi
{{ now | date: 'g' }}
{{ now | date: 'MMMM dd, yyyy' }}
Sortida
5/7/2018 7:20 AM
May 07, 2018
date_add_days
Afegeix un nombre especificat de dies sencers o fraccionaris al valor Data/Hora. El paràmetre pot ser positiu o negatiu.
Codi
{{ now }}
{{ now | date_add_days: 1 }}
{{ now | date_add_days: -2.5 }}
Sortida
5/7/2018 7:20:46 AM
5/8/2018 7:20:46 AM
5/4/2018 7:20:46 PM
date_add_hours
Afegeix un nombre especificat d'hores senceres o fraccionaris al valor Data/Hora. El paràmetre pot ser positiu o negatiu.
Codi
{{ now }}
{{ now | date_add_hours: 1 }}
{{ now | date_add_hours: -2.5 }}
Sortida
5/7/2018 7:20:46 AM
5/7/2018 8:20:46 AM
5/7/2018 4:50:46 AM
date_add_minutes
Afegeix un nombre especificat de minuts sencers o fraccionaris al valor Data/Hora. El paràmetre pot ser positiu o negatiu.
Codi
{{ now }}
{{ now | date_add_minutes: 10 }}
{{ now | date_add_minutes: -2.5 }}
Sortida
5/7/2018 7:20:46 AM
5/7/2018 7:30:46 AM
5/7/2018 7:18:16 AM
date_add_months
Afegeix un nombre especificat de mesos sencers al valor Data/Hora. El paràmetre pot ser positiu o negatiu.
Codi
{{ now }}
{{ now | date_add_months: 1 }}
{{ now | date_add_months: -2 }}
Sortida
5/7/2018 7:20:46 AM
6/7/2018 7:20:46 AM
3/7/2018 7:20:46 AM
date_add_seconds
Afegeix un nombre especificat de segons sencers o fraccionaris al valor Data/Hora. El paràmetre pot ser positiu o negatiu.
Codi
{{ now }}
{{ now | date_add_seconds: 10 }}
{{ now | date_add_seconds: -1.25 }}
Sortida
5/7/2018 7:20:46 AM
5/7/2018 7:20:56 AM
5/7/2018 7:20:45 AM
date_add_years
Afegeix un nombre especificat d'anys sencers al valor Data/Hora. El paràmetre pot ser positiu o negatiu.
Codi
{{ now }}
{{ now | date_add_years: 1 }}
{{ now | date_add_years: -2 }}
Sortida
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 un valor Data/Hora segons la norma ISO 8601. És útil per crear canals d'Atom o l'element <temps> HTML5.
Codi
{{ now | date_to_iso8601 }}
Sortida
2018-05-07T07:20:46Z
date_to_rfc822
Formata un valor DateTime segons l'estàndard RFC 822 . És útil per crear canals RSS.
Codi
{{ now | date_to_rfc822 }}
Sortida
Mon, 07 May 2018 07:20:46 Z
Filtres d'escapament
Les seqüències d'escapament proporcionen una manera d'incloure caràcters especials en cadenes de caràcters sense conflictes amb la interpretació normal d'aquests caràcters pel llenguatge o el format de programació.
Els següents filtres d'escapament substitueixen els caràcters de cadena amb seqüències d'escapament o suprimeixen caràcters de cadena no vàlids al tipus de destinació.
escapar
HTML aplica un caràcter d'escapada a una cadena.
Codi
{{ '<p>test</p>' | escape }}
Sortida
<p>test</p>
html_safe_escape
Converteix una cadena HTML determinada a un fragment HTML segur.
Codi
{{ '<img src="images/myimage.jpg" onerror="alert(1);">' | html_safe_escape }}
Sortida
<img src="images/myimage.jpg">
url_escape
L'adreça URL aplica un caràcter d'escapada a una cadena per incloure-la en una adreça URL.
Codi
{{ 'This & that//' | url_escape }}
Sortida
This+%26+that%2F%2F
xml_escape
L'adreça XML aplica un caràcter d'escapada a una cadena per incloure-la en un resultat XML.
Codi
{{ '<p>test</p>' | xml_escape }}
Sortida
<p>test</p>
Filtres de llista
Els filtres de llista s'utilitzen per treballar amb diversos valors d'atribut de la entitylist i per ajudar a crear visualitzacions de llista.
current_sort
Un cop s'hagi especificat una expressió d'ordenació, torna la direcció d'ordenació actual per a un atribut determinat.
Codi
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}
Sortida
DESC
metafiltres
Analitza un valor JSON filter_definition entitylist als objectes del grup d'opcions de filtrat.
Els metafiltres es poden proporcionar amb una consulta de filtres d'atribut i una entitylist actuals, la qual cosa permet que els objectes del filtre retornats estiguin marcats com a seleccionats o no seleccionats.
Codi
{% 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
Un cop s'hagi especificat una direcció d'ordenació, torna la direcció d'ordenació contrària.
Codi
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Sortida
DESC
ASC
Filtres d'operacions matemàtiques
Els filtres d'operacions matemàtiques permeten realitzar operacions matemàtiques amb números.
Com tots els filtres, els filtres d'operacions matemàtiques es poden combinar i s'apliquen seguint l'ordre d'esquerra a dreta.
Codi
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Sortida
5
límit superior
Arrodoneix un valor fins a l'enter més proper.
Codi
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Sortida
5
5
divided_by
Divideix un número per un altre.
Codi
{{ 10 | divided_by: 2 }}
{{ 10 | divided_by: 3 }}
{{ 10.0 | divided_by: 3 }}
Sortida
5
3
3.333333
límit inferior
Arrodoneix un valor a la baixa fins a l'enter més proper.
Codi
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Sortida
4
4
resta
Resta un número d'un altre.
Codi
<!-- entityview.page = 11 -->
{{ entityview.page | minus: 1 }}
{{ 10 | minus: 1.1 }}
{{ 10.1 | minus: 1 }}
Sortida
10
9
9.1
mòdul
Divideix un nombre per un altre i retorna el residu.
Codi
{{ 12 | modulo: 5 }}
Sortida
2
suma
Afegeix un número a un altre.
Codi
<!-- entityview.page = 11 -->
{{ entityview.page | plus: 1 }}
{{ 10 | plus: 1.1 }}
{{ 10.1 | plus: 1 }}
Sortida
12
11
11.1
arrodoniment
Arrodoneix un valor a l'enter més proper o al nombre de decimals especificat.
Codi
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}
Sortida
5
4
4.56
multiplicació
Multiplica un número per un altre.
Codi
{{ 10 | times: 2 }}
{{ 10 | times: 2.2 }}
{{ 10.1 | times: 2 }}
Sortida
20
20
20.2
Filtres de cadena
Els filtres de cadena manipulen les cadenes.
annexa
Annexa una cadena a l'extrem d'una altra cadena.
Codi
{{ 'filename' | append: '.js' }}
Sortida
filename.js
Aprofitar
Posa en majúscula cada paraula d'una cadena.
Codi
{{ 'capitalize me' | capitalize }}
Sortida
Capitalize Me
Downcase
Converteix una cadena en minúscules.
Codi
{{ 'MIxed Case TExt' | downcase }}
Sortida
mixed case text
newline_to_br
Insereix una etiqueta de salt de línia HTML <br /> a cada salt de línia d'una cadena.
Codi
{% capture text %}
A
B
C
{% endcapture %}
{{ text | newline_to_br }}
Sortida
A<br />
B<br />
C<br />
Prepend
Preposa una cadena al començament d'una altra cadena.
Codi
{{ 'Jane Johnson' | prepend: 'Dr. ' }}
Sortida
Dr. Jane Johnson
treure
Suprimeix totes les repeticions d'una subcadena des d'una cadena.
Codi
{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}
Sortida
Hello, . How are you, ?
remove_first
Suprimeix la primera repetició d'una subcadena des d'una cadena.
Codi
{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}
Sortida
Hello, . How are you, Dave?
reemplaçar
substitueix totes les repeticions d'una cadena amb una subcadena.
Codi
{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}
Sortida
Hello, John. How are you, John?
replace_first
substitueix la primera repetició d'una cadena amb una subcadena.
Codi
{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}
Sortida
Hello, John. How are you, Dave?
partir
El filtre split pren una subcadena com un paràmetre. La subcadena s'utilitza com un delimitador per dividir una cadena en una matriu.
Codi
{% 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: ', ' }}
Sortida
First word: This
First word: This
Second word: is
Last word: filter
All words: This, is, a, demo, of, the, split, filter
strip_html
Treu totes les etiquetes HTML d'una cadena.
Codi
<p>Hello</p>
Sortida
Hello
strip_newlines
Treu tots els salts de línia d'una cadena.
Codi
{% capture text %}
A
B
C
{% endcapture %}
{{ text | strip_newlines }}
Sortida
ABC
text_to_html
Formata una cadena de text sense format com un HTML senzill. El text tindrà codificació HTML, els blocs de text separats amb una línia blanca es posaran en etiquetes <p> entre paràgrafs, els salts de línia es substituiran per <br> i les adreces URL es convertiran en hipervincles.
Codi
{{ note.notetext | text_to_html }}
Sortida
<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 a una corda fins a un determinat nombre de caràcters. S'afegeix una el·lipse (...) a la cadena i s'inclou al recompte de caràcters.
Codi
{{ 'This is a long run of text.' | truncate: 10 }}
Sortida
This is...
truncate_words
Trunca a una corda fins a un determinat nombre de paraules. S'afegeix una el·lipse (...) a la cadena truncada.
Codi
{{ 'This is a long run of text.' | truncate_words: 3 }}
Sortida
This is a...
Upcase
Converteix una cadena en majúscules.
Codi
{{ 'MIxed Case TExt' | upcase }}
Sortida
MIXED CASE TEXT
Filtres de tipus
Els filtres de tipus permeten convertir valors d'un tipus en altres tipus.
booleà
Intenta convertir un valor de cadena en un booleà. Si el valor ja és un booleà, es retornarà sense canvis. Si el valor no es pot convertir en un booleà, es retornarà nul.
Aquest filtre també acceptarà activat, habilitat o sí com a true i desactivat, inhabilitat i no com a false.
Codi
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Sortida
true
false
true
false
decimal
Intenta convertir un valor de cadena en un número decimal. Si el valor ja és un número decimal, es retornarà sense canvis. Si el valor no es pot convertir en un número decimal, es retornarà nul.
Codi
{{ 10.1 | decimal }}
{{ '3.14' | decimal }}
{{ 'text' | decimal | default: 3.14 }}
Sortida
10.1
3.14
3.14
enter
Intenta convertir un valor de cadena en un enter. Si el valor ja és un enter, es retornarà sense canvis. Si el valor no es pot convertir en un enter, es retornarà nul.
Codi
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Sortida
10
10
2
corda
Intenta convertir un valor de cadena en la seva representació de cadena. Si el valor ja és una cadena, es retornarà sense canvis. Si el valor és nul, es retornarà nul.
Filtres d'adreces URL
URL filtres permeten crear o extreure parts de les adreces URL.
add_query
Annexa un paràmetre de cadena de consulta a una adreça URL. Si el paràmetre ja existeix a l'adreça URL, s'actualitzarà el valor del paràmetre.
Si aquest filtre s'aplica a una adreça URL absoluta completa, el resultat serà una adreça URL absoluta actualitzada. Si s'aplica a una ruta d'accés, el resultat serà una ruta d'accés actualitzada.
Codi
{{ 'https://example.com/path?page=1' | add_query: 'foo', 'bar' }}
{{ '/path?page=1' | add_query: 'page', 2 }}
Sortida
https://example.com/path?page=1&foo=bar
/path?page=2
base
Obté l'adreça URL base d'una adreça URL determinada.
Codi
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Sortida
https://example.com
amfitrió
Obté la part de l'amfitrió d'una adreça URL.
Codi
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Sortida
example.com
camí
Obté la part de la ruta d'accés d'una adreça URL.
Codi
{{ 'https://example.com/path?foo=bar&page=2' | path }}
{{ '/path?foo=bar&page=2' | path }}
Sortida
/path
/path
path_and_query
Obté la part de la ruta d'accés i de la consulta d'una adreça URL.
Codi
{{ 'https://example.com/path?foo=bar&page=2' | path_and_query }}
{{ '/path?foo=bar&page=2' | path_and_query }}
Sortida
/path?foo=bar&page=2
/path?foo=bar&page=2
port
Obté el número de port d'una adreça URL.
Codi
{{ '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 }}
Sortida
80
443
9000
remove_query
Elimina un paràmetre de cadena de consulta d'una adreça URL. Si el paràmetre no existeix a l'adreça URL, es retornarà sense canvis.
Si aquest filtre s'aplica a una adreça URL absoluta completa, el resultat serà una adreça URL absoluta actualitzada. Si s'aplica a una ruta d'accés, el resultat serà una ruta d'accés actualitzada.
Codi
{{ 'https://example.com/path?page=1' | remove_query: 'page' }}
{{ '/path?page=1' | remove_query: 'page' }}
Sortida
https://example.com/path
/path
esquema
Obté la part de l'esquema d'una adreça URL.
Codi
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
Sortida
http
https
Filtres addicionals
Aquests filtres proporcionen una funcionalitat general útil.
Omissió
Retorna un valor predeterminat per a qualsevol variable sense valor assignat (és a dir, nul).
Codi
{{ snippets[Header] | default: 'My Website' }}
Sortida
<!-- If a snippet with the name Header returns null -->
My Website
file_size
S'aplica a un valor numèric que representa molts bytes, retorna una mida de fitxer formatada amb una unitat d'escala adequada.
De forma opcional, es pot passar un paràmetre de precisió per controlar el número de posicions decimals del resultat. La precisió predeterminada és 1.
Codi
{{ 10000000 | file_size }}
{{ 2050 | file_size: 0 }}
{{ entity.notes.first.filesize | file_size: 2 }}
Sortida
9.5 MB
2 KB
207.14 KB
h
Proporciona una representació HTML d'un atribut. Per exemple, mostrar una representació HTML de l'atribut FetchXML XML de laconsulta.
Codi
{{ samplequery.xml | h }}
Sortida
<fetch mapping="logical" count="5000" page="1" returntotalrecordcount="true"> <entity name="contact"> <attribute name="fullname" /> </entity> </fetch>
has_role
S'aplica a un usuari, retorna true si l'usuari pertany a una funció determinada. Si no, retorna false.
Codi
{% assign is_admin = user | has_role: 'Administrators' %}
{% if is_admin %}
User is an administrator.
{% endif %}
líquid
Representa una cadena com un codi de Liquid. Aquest codi tindrà accés al context d'execució actual de Liquid (variables, etc.).
Nota
Aquest filtre s'ha d'utilitzar amb precaució i, en general, només s'ha d'aplicar als valors que estiguin sota del control exclusiu dels autors del contingut del lloc o altres usuaris de confiança per escriure el codi de Liquid.
Codi
{{ page.adx_copy | liquid }}