Filtres Liquid disponibles
Les filtres Liquid servent à modifier la sortie des chaînes, nombres, variables et objets. Ils sont séparés de la valeur à laquelle ils sont appliqués par une |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->
Certains filtres acceptent des paramètres. Les filtres peuvent aussi être combinés et sont appliqués dans l’ordre de gauche à droite.
{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->
{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->
La section ci-dessous décrit divers filtres.
Filtres de tableau
Les filtres de tableau sont utilisés avec les tableaux.
batch
Divise un tableau en plusieurs tableaux d’une taille donnée.
Code
{% assign batches = entityview.records | batch: 2 %}
{% for batch in batches %}
<ul>
{% for item in batch %}
<li>{{ item.fullname }}</li>
{% endfor %}
</ul>
{% endfor %}
Sortie
<ul>
<li>John Smith</li>
<li>Dave Thomas</li>
</ul>
<ul>
<li>Jake Johnson</li>
<li>Jack Robinson</li>
</ul>
concat
Concatène deux tableaux en un seul tableau.
Avec un seul élément comme paramètre, concat retourne un nouveau tableau comprenant le tableau d’origine, avec l’élément donné comme dernier élément.
Code
Group #1: {{ group1 | join: ', ' }}
Group #2: {{ group2 | join: ', ' }}
Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}
Sortie
Group #1: John, Pete, Hannah
Group #2: Joan, Bill
Group #1 + Group #2: John, Pete, Hannah, Joan, Bill
except
Sélectionne tous les objets d’un tableau où un attribut donné n’a pas de valeur donnée. (Il s’agit de l’inverse de where.)
Code
{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Sortie
Jack Robinson
Premier
Retourne le premier élément d’un tableau.
first peut également être utilisé avec une notation de point spéciale, dans les cas où il doit être utilisé dans une balise.
Code
{% assign words = This is a run of text | split: %}
{{ words | first }}
{% if words.first == This %}
The first word is This.
{% endif %}
Sortie
This
The first word is This.
group_by
Regroupe les éléments d’un tableau en fonction d’un attribut donné.
Code
{% assign groups = entityview.records | group_by: 'address1_city' %}
{% for group in groups %}
{{ group.key }}:
{% for item in group.items %}
{{ item.fullname }}
{% endfor %}
{% endfor %}
Sortie
Redmond:
John Smith
Dave Thomas
Jake Johnson
New York:
Jack Robinson
join
Joint les éléments d’un tableau au caractère passé comme paramètre. Le résultat est une chaîne unique.
Code
{% assign words = This is a run of text | split: %}
{{ words | join: , }}
Sortie
This, is, a, run, of, text
Dernier
Retourne le dernier élément d’un tableau.
last peut également être utilisé avec une notation de point spéciale, dans les cas où il doit être utilisé dans une balise.
Code
{% assign words = This is a run of text | split: -%}
{{ words | last }}
{% if words.last == text -%}
The last word is text.
{% endif -%}
Sortie
text
The last word is text.
order_by
Retourne les éléments d’un tableau classés en fonction d’un attribut donné des éléments du tableau.
Vous pouvez également fournir desc comme deuxième paramètre pour trier les éléments dans l’ordre décroissant, au lieu de l’ordre croissant.
Code
{{ entityview.records | order_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}
Sortie
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
random
Retourne un seul article sélectionné de manière aléatoire à partir du tableau.
Code
{{ group1 | join: ', ' }}
{{ group1 | random }}
Sortie
John, Pete, Hannah
Pete
select
Sélectionne la valeur d’un attribut donné pour chaque élément d’un tableau, puis retourne ces valeurs sous la forme d’un tableau.
Code
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Sortie
Redmond, New York
shuffle
Appliqué à un tableau, retourne un nouveau tableau avec les mêmes éléments, dans un ordre aléatoire.
Code
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Sortie
John, Pete, Hannah
Hannah, John, Pete
size
Retourne le nombre d’éléments dans un tableau.
size peut également être utilisé avec une notation de point spéciale, dans les cas où il doit être utilisé dans une balise.
Code
{% assign words = This is a run of text | split: -%}
{{ words | size }}
{% if words.size == 6 -%}
The text contains 6 words.
{% endif -%}
Sortie
6
The text contains 6 words.
skip
Ignore un nombre donné d’éléments dans un tableau, puis retourne le reste.
Code
{% assign words = This is a run of text | split: %}
{{ words | skip: 3 | join: ', ' }}
Sortie
run, of, text
take
Sélectionne un nombre donné d’éléments du tableau, puis retourne les éléments sélectionnés.
Code
{% assign words = This is a run of text | split: %}
{{ words | take: 3 | join: ', ' }}
Sortie
This, is, a
then_by
Ajoute un classement supplémentaire à un tableau déjà classé par order_by.
Vous pouvez également fournir desc comme deuxième paramètre pour trier les éléments dans l’ordre décroissant, au lieu de l’ordre croissant.
Code
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}
Sortie
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
où
Sélectionne tous les objets d’un tableau où un attribut donné a une valeur donnée.
Code
{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Sortie
John Smith
Dave Thomas
Jake Johnson
Filtres de date
Les filtres de date peuvent être utilisés pour l’arithmétique de date ou pour convertir des valeurs DateTime dans différents formats.
Date
Met en forme une valeur DateTime à l’aide d’une chaîne au format .NET.
Chaînes au format date et heure standard
Chaînes au format date et heure personnalisées
Code
{{ now | date: 'g' }}
{{ now | date: 'MMMM dd, yyyy' }}
Sortie
5/7/2018 7:20 AM
May 07, 2018
date_add_days
Ajoute le nombre spécifié de jours entiers ou fractionnés à la valeur DateTime. Le paramètre peut être positif ou négatif.
Code
{{ now }}
{{ now | date_add_days: 1 }}
{{ now | date_add_days: -2.5 }}
Sortie
5/7/2018 7:20:46 AM
5/8/2018 7:20:46 AM
5/4/2018 7:20:46 PM
date_add_hours
Ajoute le nombre spécifié d’heures entières ou fractionnées à la valeur DateTime. Le paramètre peut être positif ou négatif.
Code
{{ now }}
{{ now | date_add_hours: 1 }}
{{ now | date_add_hours: -2.5 }}
Sortie
5/7/2018 7:20:46 AM
5/7/2018 8:20:46 AM
5/7/2018 4:50:46 AM
date_add_minutes
Ajoute le nombre spécifié de minutes entières ou fractionnées à la valeur DateTime. Le paramètre peut être positif ou négatif.
Code
{{ now }}
{{ now | date_add_minutes: 10 }}
{{ now | date_add_minutes: -2.5 }}
Sortie
5/7/2018 7:20:46 AM
5/7/2018 7:30:46 AM
5/7/2018 7:18:16 AM
date_add_months
Ajoute le nombre spécifié de mois entiers ou fractionnés à la valeur DateTime. Le paramètre peut être positif ou négatif.
Code
{{ now }}
{{ now | date_add_months: 1 }}
{{ now | date_add_months: -2 }}
Sortie
5/7/2018 7:20:46 AM
6/7/2018 7:20:46 AM
3/7/2018 7:20:46 AM
date_add_seconds
Ajoute le nombre spécifié de secondes entières ou fractionnées à la valeur DateTime. Le paramètre peut être positif ou négatif.
Code
{{ now }}
{{ now | date_add_seconds: 10 }}
{{ now | date_add_seconds: -1.25 }}
Sortie
5/7/2018 7:20:46 AM
5/7/2018 7:20:56 AM
5/7/2018 7:20:45 AM
date_add_years
Ajoute le nombre spécifié d’années entières ou fractionnées à la valeur DateTime. Le paramètre peut être positif ou négatif.
Code
{{ now }}
{{ now | date_add_years: 1 }}
{{ now | date_add_years: -2 }}
Sortie
5/7/2018 7:20:46 AM
5/7/2019 7:20:46 AM
5/7/2016 7:20:46 AM
date_to_iso8601
Met en forme une valeur DateTime selon la norme ISO 8601. Utile lors de la création de Flux Atom, ou de l’élément <time> HTML5.
Code
{{ now | date_to_iso8601 }}
Sortie
2018-05-07T07:20:46Z
date_to_rfc822
Met en forme une valeur DateTime selon la norme RFC 822. Utile lors de la création de Flux RSS.
Code
{{ now | date_to_rfc822 }}
Sortie
Mon, 07 May 2018 07:20:46 Z
Échapper filtres
Les séquences d’échappement permettent d’inclure des caractères spéciaux dans les chaînes sans entrer en conflit avec l’interprétation habituelle de ces caractères par le langage ou le format de programmation.
Les filtres d’échappement suivants remplacent les caractères de chaîne par des séquences d’échappement ou suppriment les caractères de chaîne non valides en fonction du type de destination.
escape
Échappe une chaîne au format HTML.
Code
{{ '<p>test</p>' | escape }}
Sortie
<p>test</p>
html_safe_escape
Convertit une chaîne HTML donnée en un fragment HTML sécurisé.
Code
{{ '<img src="images/myimage.jpg" onerror="alert(1);">' | html_safe_escape }}
Sortie
<img src="images/myimage.jpg">
url_escape
Échappe une chaîne au format URI, pour l’inclure dans une URL.
Code
{{ 'This & that//' | url_escape }}
Sortie
This+%26+that%2F%2F
xml_escape
Échappe une chaîne au format XML, pour l’inclure dans la sortie XML.
Code
{{ '<p>test</p>' | xml_escape }}
Sortie
<p>test</p>
Filtres de liste
Les filtres de liste servent à utiliser certaines valeurs d’attribut de entitylist, et à créer des vues de liste.
current_sort
Étant donnée une expression de tri, renvoie la direction de tri actuelle d’un attribut donné.
Code
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}
Sortie
DESC
metafilters
Analyse une valeur JSON entitylist filter_definition en objets de groupe d’options de filtre.
metafilters peut être éventuellement fourni avec une requête de filtre d’attribut et une entitylist actuelles, afin que les objets retournés par le filtre soient marqués comme sélectionnés ou non sélectionnés.
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
Étant donnée une expression de tri, renvoie la direction de tri opposée.
Code
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Sortie
DESC
ASC
Filtres mathématiques
Les filtres mathématiques vous permettent d’effectuer des opérations mathématiques sur les chiffres.
Comme avec tous les filtres, les filtres mathématiques peuvent être chaînés et sont appliqués dans l’ordre de gauche à droite.
Code
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Sortie
5
plafond
Arrondit une valeur jusqu’à l’entier le plus proche.
Code
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Sortie
5
5
divided_by
Divise un nombre par un autre nombre.
Code
{{ 10 | divided_by: 2 }}
{{ 10 | divided_by: 3 }}
{{ 10.0 | divided_by: 3 }}
Sortie
5
3
3.333333
plancher
Arrondit une valeur jusqu’à l’entier inférieur.
Code
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Sortie
4
4
moins
Soustrait un nombre d’un autre nombre.
Code
<!-- entityview.page = 11 -->
{{ entityview.page | minus: 1 }}
{{ 10 | minus: 1.1 }}
{{ 10.1 | minus: 1 }}
Sortie
10
9
9.1
modulo
Divise un nombre par un autre nombre et renvoie le reste.
Code
{{ 12 | modulo: 5 }}
Sortie
2
et
Ajoute un nombre à un autre nombre.
Code
<!-- entityview.page = 11 -->
{{ entityview.page | plus: 1 }}
{{ 10 | plus: 1.1 }}
{{ 10.1 | plus: 1 }}
Sortie
12
11
11.1
arrondi
Arrondit une valeur à l’entier le plus proche ou au nombre de décimales spécifié.
Code
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}
Sortie
5
4
4.56
multiplie
Multiplie un nombre par un autre nombre.
Code
{{ 10 | times: 2 }}
{{ 10 | times: 2.2 }}
{{ 10.1 | times: 2 }}
Sortie
20
20
20.2
Filtres de chaîne
Les filtres de chaîne manipulent les chaînes.
append
Ajoute une chaîne à la fin d’une autre chaîne.
Code
{{ 'filename' | append: '.js' }}
Sortie
filename.js
capitalize
Met en majuscule chaque mot dans une chaîne.
Code
{{ 'capitalize me' | capitalize }}
Sortie
Capitalize Me
downcase
Convertit une chaîne en minuscule.
Code
{{ 'MIxed Case TExt' | downcase }}
Sortie
mixed case text
newline_to_br
Insère une balise HTML de saut de ligne <br /> à chaque saut de ligne dans une chaîne.
Code
{% capture text %}
A
B
C
{% endcapture %}
{{ text | newline_to_br }}
Sortie
A<br />
B<br />
C<br />
prepend
Ajoute une chaîne au début d’une autre chaîne.
Code
{{ 'Jane Johnson' | prepend: 'Dr. ' }}
Sortie
Dr. Jane Johnson
remove
Supprime d’une chaîne toutes les occurrences d’une sous-chaîne.
Code
{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}
Sortie
Hello, . How are you, ?
remove_first
Supprime d’une chaîne la première occurrence d’une sous-chaîne.
Code
{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}
Sortie
Hello, . How are you, Dave?
replace
Remplace toutes les occurrences d’une chaîne par une sous-chaîne.
Code
{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}
Sortie
Hello, John. How are you, John?
replace_first
Remplace la première occurrence d’une chaîne par une sous-chaîne.
Code
{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}
Sortie
Hello, John. How are you, Dave?
split
Le filtre split accepte une sous-chaîne comme paramètre. La sous-chaîne est utilisée comme délimiteur pour diviser une chaîne en tableau.
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: ', ' }}
Sortie
First word: This
First word: This
Second word: is
Last word: filter
All words: This, is, a, demo, of, the, split, filter
strip_html
Supprime toutes les balises HTML d’une chaîne.
Code
<p>Hello</p>
Sortie
Hello
strip_newlines
Supprime les sauts de ligne d’une chaîne.
Code
{% capture text %}
A
B
C
{% endcapture %}
{{ text | strip_newlines }}
Sortie
ABC
text_to_html
Met en forme une chaîne de texte brut au format HTML simple. Le texte est codé au format HTML, les blocs de texte séparés par une ligne vide sont enveloppés dans des balises <p> de paragraphe, les sauts de ligne uniques sont remplacés par <br> et les URL sont converties en liens hypertexte.
Code
{{ note.notetext | text_to_html }}
Sortie
<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
Tronque une chaîne en un nombre de caractères donné. Des points de suspension (...) sont ajoutés à la chaîne et inclus dans le nombre de caractères.
Code
{{ 'This is a long run of text.' | truncate: 10 }}
Sortie
This is...
truncate_words
Tronque une chaîne en un nombre de mots donné. Des points de suspension (...) sont ajoutés à la chaîne tronquée.
Code
{{ 'This is a long run of text.' | truncate_words: 3 }}
Sortie
This is a...
upcase
Convertit une chaîne en majuscule.
Code
{{ 'MIxed Case TExt' | upcase }}
Sortie
MIXED CASE TEXT
Filtres de type
Les filtres de type vous permettent de convertir des valeurs d’un type en d’autres types.
boolean
Tente de convertir une valeur chaîne en valeur booléenne. Si la valeur est déjà booléenne, elle revient inchangée. Si la valeur ne peut pas être converti en booléen, null est renvoyé.
Ce filtre accepter également « on », « enabled » ou « yes » comme true, et « off », « disabled » et « no » comme false.
Code
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Sortie
true
false
true
false
décimal
Tente de convertir une valeur chaîne en nombre décimal. Si la valeur est déjà un nombre décimal, elle revient inchangée. Si la valeur ne peut pas être converti en nombre décimal, null est renvoyé.
Code
{{ 10.1 | decimal }}
{{ '3.14' | decimal }}
{{ 'text' | decimal | default: 3.14 }}
Sortie
10.1
3.14
3.14
integer
Tente de convertir une valeur chaîne en valeur entière. Si la valeur est déjà un entier, elle revient inchangée. Si la valeur ne peut pas être converti en entier, null est renvoyé.
Code
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Sortie
10
10
2
string
Tente de convertir une valeur dans sa représentation sous forme de chaîne. Si la valeur est déjà une chaîne, elle revient inchangée. Si la valeur est null, null est renvoyé.
Filtres d’URL
Les filtres d’URL vous permettent de créer ou d’extraire des groupes d’URL.
add_query
Ajoute un paramètre de chaîne de requête à une URL. Si le paramètre existe déjà dans l’URL, la valeur du paramètre sera mise à jour.
Si ce filtre est appliqué à une URL absolue complète, une URL absolue mise à jour en sera le résultat. S’il est appliqué à un chemin d’accès, un chemin d’accès mis à jour en sera le résultat.
Code
{{ 'https://example.com/path?page=1' | add_query: 'foo', 'bar' }}
{{ '/path?page=1' | add_query: 'page', 2 }}
Sortie
https://example.com/path?page=1&foo=bar
/path?page=2
base
Obtient l’URL de base d’une URL donnée.
Code
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Sortie
https://example.com
host
Obtient la partie hôte d’une URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Sortie
example.com
path
Obtient la partie chemin d’une URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | path }}
{{ '/path?foo=bar&page=2' | path }}
Sortie
/path
/path
path_and_query
Obtient les parties chemin et requête d’une URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | path_and_query }}
{{ '/path?foo=bar&page=2' | path_and_query }}
Sortie
/path?foo=bar&page=2
/path?foo=bar&page=2
port
Obtient le numéro de port d’une 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 }}
Sortie
80
443
9000
remove_query
Supprime un paramètre de chaîne de requête d’une URL. Si le paramètre n’est pas existe dans l’URL, l’URL est renvoyée inchangée.
Si ce filtre est appliqué à une URL absolue complète, une URL absolue mise à jour en sera le résultat. S’il est appliqué à un chemin d’accès, un chemin d’accès mis à jour en sera le résultat.
Code
{{ 'https://example.com/path?page=1' | remove_query: 'page' }}
{{ '/path?page=1' | remove_query: 'page' }}
Sortie
https://example.com/path
/path
scheme
Obtient la partie schéma d’une URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
Sortie
http
https
Filtres supplémentaires
Ces filtres fournissent une fonctionnalité générale utile.
default
Renvoie une valeur par défaut pour toute variable sans aucune valeur attribuée (c’est-à-dire null).
Code
{{ snippets[Header] | default: 'My Website' }}
Sortie
<!-- If a snippet with the name Header returns null -->
My Website
file_size
Appliqué à une valeur numérique représentant un certain nombre d’octets, renvoie une taille de fichier mise en forme avec une unité d’échelle appropriée.
Éventuellement, il est possible d’ajouter paramètre de précision pour contrôler le nombre de décimales dans le résultat. La précision par défaut est 1.
Code
{{ 10000000 | file_size }}
{{ 2050 | file_size: 0 }}
{{ entity.notes.first.filesize | file_size: 2 }}
Sortie
9.5 MB
2 KB
207.14 KB
h
Fournit une représentation HTML d’un attribut. Par exemple, afficher une représentation HTML de l’attribut XML FetchXML de la requête.
Code
{{ samplequery.xml | h }}
Sortie
<fetch mapping="logical" count="5000" page="1" returntotalrecordcount="true"> <entity name="contact"> <attribute name="fullname" /> </entity> </fetch>
has_role
Appliqué à un utilisateur, renvoie true si l’utilisateur appartient au rôle donné. Renvoie false dans le cas contraire.
Code
{% assign is_admin = user | has_role: 'Administrators' %}
{% if is_admin %}
User is an administrator.
{% endif %}
liquid
Affiche une chaîne sous forme de code Liquid. Ce code aura un accès au contexte d’exécution Liquid actuel (variables, etc.).
Note
Ce filtre doit être utilisé avec prudence et doit généralement être appliqué aux valeurs qui se trouvent sous le contrôle exclusif des rédacteurs de contenu du site, ou d’autres utilisateurs de confiance capables d’écrire du code Liquid.
Code
{{ page.adx_copy | liquid }}