Dernière modification : 28 août 2025
Les filtres affectent le résultat final de votre HubL. Ils peuvent être appliqués à diverses annonces et expressions HubL pour modifier le balisage du modèle produit par le serveur. La syntaxe de base d’un filtre est |filtername. Le filtre est ajouté directement après l’annonce ou l’expression, à l’intérieur de ses séparateurs. Certains filtres ont des paramètres supplémentaires qui peuvent être ajoutés entre parenthèses. La syntaxe de base d’un filtre avec un paramètre de type chaîne, nombre et booléen est : |filtername("stringParameter", 10, true). Notez que les paramètres de type chaîne doivent être écrits entre guillemets. Notez également que les filtres HubL ont un alias qui peut être utilisé pour servir le même objectif que le filtre principal. L’article suivant contient tous les filtres HubL pris en charge.

Remarque:

vous pouvez appliquer les filtres HubL aux jetons de personnalisation, tels que les jetons de contact et d’entreprise, sur les pages de CMS Hub et de blog, mais pas dans les e-mails.

abs

Obtient la valeur absolue d’un nombre. Vous pouvez utiliser ce filtre pour vérifier qu’un nombre est positif.
{% set my_number = -53 %}
{{ my_number|abs }}

add

Ajoute une valeur numérique à une autre valeur numérique. Ce filtre fonctionne de la même manière que l’opérateur +. Le paramètre entre parenthèses est l’addendum que vous combinez avec votre valeur numérique initiale.
{% set my_num = 40 %}
{{ my_num|add(13) }}

attr

Rend l’attribut d’un dictionnaire. Ce filtre est l’équivalent de l’impression d’une variable qui existe dans un dictionnaire, comme content.absolute_url.
{{ content|attr("absolute_url") }}
ParamètreDescription
attribute_nameIndique l’attribut à imprimer

batch

Regroupe les éléments dans une séquence. Dans l’exemple ci-dessous, une variable contient une séquence de types de fruits. Le filtre batch est appliqué à une boucle qui parcourt la séquence. La boucle imbriquée s’exécute trois fois pour imprimer 3 types de fruits par ligne, avant que la boucle externe ne s’exécute à nouveau. Remarquez dans la sortie finale, puisqu’il n’y a que 5 types de fruits, le dernier élément est remplacé par un   (le deuxième paramètre).
{% set rows = ["apples", "oranges", "pears", "grapes", "blueberries"] %}

<table>
{% for row in rows|batch(3, " ") %}
<tr>
{% for column in row %}
<td>{{ column }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
ParamètreTypeDescription
linecountNombreLe nombre d’éléments à inclure dans le lot.
fill_withChaîneIndique ce qu’il faut inclure pour compléter les éléments manquants

between_times

Calcule le temps entre deux objets datetime dans une unité de temps indiquée.

Remarque:

vous devez uniquement utiliser ce filtre avec les variables qui renvoient une date. À compter du 30 septembre 2024, ce filtre ne renverra plus la date du jour lorsqu’une valeur nulle est transmise. Après cette date, une valeur nulle dans le filtre renverra la date 30 septembre 2024.
{% set begin = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %}
{% set end = "2018-07-20T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %}
{{ begin|between_times(end, "days") }}
ParamètreTypeDescription
endObjet datetimeL’objet datetime de fin.
timeunitChaîneLes unités de temps valides sont nanos, micros, millis, seconds, minutes, hours, half_days, days, weeks, months, years, decades, centuries, millennia et eras.

bool

Convertit une valeur de chaîne de texte en un booléen.
{% if "true"|bool == true %}hello world{% endif %}

capitalize

Met la première lettre d’une valeur variable en majuscule. Le premier caractère sera en majuscule, toutes les autres lettres seront en minuscules. Les mots suivants séparés par des espaces ou des traits d’union n’auront pas leur première lettre en majuscule.
{% set sentence = "the first letter of a sentence should always be capitalized." %}
{{ sentence|capitalize }}

center

Centre le texte dans une longueur de champ donnée à l’aide d’espaces. Ce filtre n’est pas recommandé et n’est pas particulièrement utile, car le compilateur HTML de HubSpot élimine automatiquement les espaces blancs ; cependant, il est inclus ici par souci d’exhaustivité. L’exemple ci-dessous montre ce filtre appliqué à une variable dans une pré-balise, de sorte que les espaces blancs ne sont pas supprimés.
<pre>
{% set var = "string to center" %}
before{{ var|center(80) }}after
</pre>
| Paramètre | Type | Description | | --------- | ------ | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | width | Nombre | Précise la longueur de l’espace blanc dans lequel le texte doit être centré. | Précise la longueur de l’espace blanc dans lequel le texte doit être centré. |

convert_rgb

Convertit une valeur HEX en une chaîne RVB. C’est utile si vous devez convertir des variables de couleur en RVB pour les utiliser avec une déclaration CSS RVBA. Dans l’exemple ci-dessous, la valeur définie par un module de couleur est convertie en une valeur RVB et utilisée dans une déclaration CSS RVBA.
{% set my_color = "#FFFFFF" %}
{{ my_color|convert_rgb }}
{% set my_color2="#000000" %}
<div style="background: rgba({{ my_color2|convert_rgb }}, .5)"></div>

cut

Supprime une chaîne d’une valeur. Ce filtre peut être utilisé pour faire correspondre et couper une partie spécifique d’une chaîne. Le paramètre indique la partie de la chaîne qui doit être supprimée. L’exemple ci-dessous supprime l’espace et le mot world de la valeur originale de la variable.
{% set my_string = "Hello world." %}
{{ my_string|cut(" world") }}
ParamètreTypeDescription
characters_to_cutChaîneLa partie de la chaîne qui doit être supprimée.

datetimeformat (obsolète)

Remarque:

Ce filtre est obsolète. Vous devrez plutôt utiliser le filtre format_datetime, qui utilise une syntaxe plus standardisée.

default

Si la valeur est indéfinie, elle renverra le premier paramètre, sinon la valeur de la variable sera imprimée. Si vous voulez utiliser la valeur par défaut avec des variables qui s’évaluent comme false, vous devez définir le deuxième paramètre sur true. Le premier exemple ci-dessous imprime le message si la variable n’est pas définie. Le deuxième exemple applique le filtre à une chaîne vide, qui n’est pas indéfinie, mais il imprime un message à cause du deuxième paramètre.
{{ my_variable|default("my_variable is not defined") }}
{{ ""|default("the string was empty", true) }}
ParamètreTypeDescription
default_valueChaîneValeur à renvoyer si la variable est indéfinie. Si la variable est définie, la valeur de la variable sera renvoyée à la place.
truthyBooléenÀ définir sur true pour une utilisation avec des variables évaluées à false.

dictsort

Trie un dictionnaire et donne des paires (clé, valeur). Les dictionnaires ne sont pas triés par défaut, mais vous pouvez imprimer un dictionnaire, trié par clé ou par valeur. Le premier paramètre est un booléen qui détermine si le tri prend en compte la casse ou non. Le deuxième paramètre détermine si le dictionnaire doit être trié par clé ou par valeur. L’exemple ci-dessous imprime un dictionnaire de contacts trié, avec tous les détails connus sur le contact.
{% for item in contact|dictsort(false, "value") %}
{{item}}
{% endfor %}
ParamètreTypeDescription
case_sensitiveBooléenDétermine si le tri prend en compte la casse
sort_by"key" | "value"Détermine si le tri doit se faire par key ou par value.

difference

Renvoie la différence de deux ensembles ou listes. La liste renvoyée par le filtre contient tous les éléments uniques qui se trouvent dans la première liste, mais pas dans la seconde.
{{ [1, 2, 3]|difference([2, 3, 4, 5]) }}
ParamètreTypeDescription
listTableauLa deuxième liste à comparer pour trouver les différences par rapport à la liste originale.

divide

Divise la valeur actuelle par un diviseur. Le paramètre transmis est le diviseur. Ce filtre est une alternative à l’opérateur /.
{% set numerator = 106 %}
{{ numerator|divide(2) }}
ParamètreTypeDescription
divisorNombreLe nombre par lequel il faut diviser la variable.

divisible

Une alternative au test d’expression divisibleby, le filtre divisible sera évalué comme true si la valeur est divisible par le nombre donné.
{% set num = 10 %}
{% if num|divisible(2) %}
The number is divisible by 2
{% endif %}
ParamètreTypeDescription
divisorNombreLe nombre à utiliser pour évaluer si la valeur est divisible.

escape_html

Échappe le contenu d’une entrée HTML. Accepte une chaîne et convertit les caractères &, <, >, , et escape_jinjava en séquences conformes à HTML. Utilisez ce filtre pour les variables HubL qui sont utilisées en HTML mais qui ne doivent autoriser aucun HTML.
{% set escape_string = "<div>This markup is printed as text</div>" %}
{{ escape_string|escape_html }}

escape_attr

Échappe le contenu d’une entrée d’attribut HTML. Accepte une chaîne et convertit les caractères &, <, , et escape_jinjava en séquences conformes à HTML. Utilisez ce filtre pour les variables HubL qui sont ajoutées aux attributs HTML. Notez que lorsque vous échappez des valeurs d’attributs qui acceptent les URL, telles que href, vous devez utiliser le filtre escape_url à la place.
{% set escape_string = "This <br> markup is printed as text" %}
<img src="test.com/imageurl" alt="{{escape_string|escape_attr}}">

escape_jinjava

Convertit les caractères { et } de la chaîne en séquences conformes à Jinjava. Utilisez ce filtre si vous devez afficher un texte susceptible de contenir de tels caractères dans Jinjava.
{% set escape_string = "{{This markup is printed as text}}" %}
{{ escape_string|escape_jinjava }}

escape_js

Échappe les chaînes, notamment escape_jinjava, afin qu’elles puissent être insérées en toute sécurité dans une déclaration de variable JavaScript. Utilisez ce filtre pour les variables HubL utilisées dans les éléments de script HTML.
{% set escape_string = "\tThey said 'This string can safely be inserted into JavaScript.'" %}
{{ escape_string|escape_js }}

escape_url

Échappe le contenu d’une entrée d’URL, applique les protocoles spécifiés, supprime les caractères invalides et dangereux et code les entités HTML. Renvoie une valeur vierge si une URL est valide. Utilisez ce filtre pour les variables HubL qui sont utilisées dans les attributs HTML qui doivent être des URL valides.
{% set escape_string = "http://example.com/with space/<html>" %}
<a href="https://developers.hubspot.fr/docs{{ escape_string|escape_url }}"></a>

escapejson

Échappe les chaînes de caractères afin qu’elles puissent être utilisées comme des valeurs JSON.
{% set escape_string = "<script>alert('oh no!')</script>" %}
{% require_js position="head" %}
<script data-search_input-config="config_{{ name }}" type="application/json">
{
"autosuggest_results_message": "{{ escape_string|escapejson }}"
}
</script>
{% end_require_js %}

filesizeformat

Formate une valeur numérique dans une taille de fichier lisible par l’homme (c.-à-d. 13 kB, 4,1 Mo, 102 octets, etc.). Par défaut, les préfixes décimaux sont utilisés (par exemple, MB et GB), mais vous pouvez définir le paramètre binary sur true pour utiliser des préfixes binaires tels que Mebi (MiB) et Gibi (GiB).
{% set bytes = 10000 %}
{{ bytes|filesizeformat(binary=true) }}
ParamètreTypeDescription
binaryBooléenS’il est défini sur true, des préfixes binaires sont utilisés, tels que Mebi (MiB) et Gibi (GiB).

first

Renvoie le premier élément d’une séquence.
{% set my_sequence = ["Item 1", "Item 2", "Item 3"] %}
{{ my_sequence|first }}

float

Convertit la valeur en un nombre à virgule flottante. Si la conversion ne fonctionne pas, elle renvoie 0.0. Vous pouvez remplacer cette valeur par défaut en utilisant le premier paramètre.
{% set my_text="25" %}
{{ my_text|float + 17 }}
ParamètreTypeDescription
defaultNombreNombre entier à renvoyer si la conversion ne fonctionne pas.

forceescape

Applique strictement l’échappement HTML. Dans l’environnement de HubSpot, il n’y a pas vraiment de cas d’utilisation pour l’échappement double, donc cette option se comporte généralement de la même manière que le filtre escape.
{% set escape_string = "<div>This markup is printed as text</div>" %}
{{ escape_string|forceescape }}

format

Applique le formatage des chaînes Python à un objet. %s peut être remplacé par une autre variable.
{{ "Hi %s %s"|format(contact.firstname, contact.lastname) }}

format_currency (obsolète)

Remarque:

ce filtre est obsolète. Utilisez plutôt le filtre format_currency_value.

format_currency_value

Formate un nombre donné sous forme de devise en fonction de la devise par défaut du portail et du paramètre régional transmis sous forme de paramètre. Remplace le filtre obsolète format_currency.
{{ 100 | format_currency_value(locale='en-GB', currency='EUR', maxDecimalDigits=6, minDecimalDigits=1) }}
ParamètreTypeDescription
localeChaîneLa balise du langage local Java. La valeur par défaut est le paramètre locale.Format : ISO639LanguageCodeInLowercase-ISO3166CountryCodeInUppercase de la page.
currencyChaîneLe code alphabétique ISO 4217 de la devise, la valeur par défaut est la devise par défaut du portail. Les codes numériques ne sont pas acceptés.
minDecimalDigitsNombreLe nombre minimum de décimales à inclure dans le résultat. Le nombre de décimales de la devise est utilisé par défaut.
maxDecimalDigitsNombreLe nombre maximum de décimales à inclure dans le résultat. Le nombre de décimales de la devise est utilisé par défaut.

format_date

Formate le composant de date d’un objet de date.

Remarque:

vous devez uniquement utiliser ce filtre avec les variables qui renvoient une date. À compter du 30 septembre 2024, ce filtre ne renverra plus la date du jour lorsqu’une valeur nulle est transmise. Après cette date, une valeur nulle dans le filtre renverra la date 30 septembre 2024.
{{ content.publish_date | format_date('long') }}
{{ content.publish_date | format_date('yyyy.MMMM.dd') }}
{{ content.publish_date | format_date('medium', 'America/New_York', 'de-DE') }}
ParamètreTypeDescription
formatModèle personnalisé 'short' &#124, 'medium' &#124, 'long' &#124, 'full' &#124Le format à utiliser. Un modèle personnalisé reposant sur Unicode LDML.
timeZoneChaîneLe fuseau horaire de la date de sortie au format IANA TZDB.
localeChaîneLes paramètres régionaux à utiliser pour les formats reposant sur des paramètres régionaux. Voir la liste des paramètres régionaux pris en charge.

format_datetime

Formate les composants de date et d’heure d’un objet de date. Ce filtre remplace le filtre obsolète datetimeformat. Par défaut, renvoie une date et une heure dans le fuseau horaire UTC-00:00.

Remarque:

vous devez uniquement utiliser ce filtre avec les variables qui renvoient une date. À compter du 30 septembre 2024, ce filtre ne renverra plus la date du jour lorsqu’une valeur nulle est transmise. Après cette date, une valeur nulle dans le filtre renverra la date 30 septembre 2024.
{{ content.publish_date | format_datetime('medium', 'America/New_York', 'de-DE') }}
ParamètreTypeDescription
formatModèle personnalisé 'short' &#124, 'medium' &#124, 'long' &#124, 'full' &#124Le format à utiliser. Un modèle personnalisé reposant sur Unicode LDML. En cas d’utilisation de long ou full, l’horodatage inclura un Z pour indiquer le décalage d’origine du fuseau UTC (c.-à-d. 2:23:00 PM Z). Pour supprimer l’indicateur Z, spécifiez un attribut timeZone.
timeZoneChaîneLe fuseau horaire de la date de sortie au format IANA TZDB. Par défaut, renvoie l’heure UTC.
localeChaîneLes paramètres régionaux à utiliser pour les formats reposant sur des paramètres régionaux. Voir la liste des paramètres régionaux pris en charge.

format_number

Formate un nombre donné en fonction d’un paramètre régional spécifié. Inclut un second paramètre qui définit la précision décimale maximale.
{{ 1000|format_number('en-US') }}
{{ 1000.333|format_number('fr') }}
{{ 1000.333|format_number('en-US', 2) }}
ParamètreTypeDescription
localeChaîneLes paramètres régionaux à utiliser pour le formatage. Voir la liste des paramètres régionaux pris en charge.
maxDecimalDigitsNombreLe nombre maximum de décimales à inclure dans le résultat. Par défaut, le nombre de chiffres décimaux de la valeur saisie est utilisé.

format_time

Formate le composant d’heure d’un objet de date.

Remarque:

vous devez uniquement utiliser ce filtre avec les variables qui renvoient une date. À compter du 30 septembre 2024, ce filtre ne renverra plus la date du jour lorsqu’une valeur nulle est transmise. Après cette date, une valeur nulle dans le filtre renverra la date 30 septembre 2024.
{{ content.updated | format_time('long') }}
{{ content.updated | format_time('hh:mm a') }}
{{ content.updated | format_time('medium', 'America/New_York', 'de-DE') }}
ParamètreTypeDescription
formatModèle personnalisé 'short' &#124, 'medium' &#124, 'long' &#124, 'full' &#124Le format à utiliser. Un modèle personnalisé reposant sur Unicode LDML. En cas d’utilisation de long ou full, l’horodatage inclura un Z pour indiquer le décalage d’origine du fuseau UTC (c.-à-d. 2:23:00 PM Z). Pour supprimer l’indicateur Z, spécifiez un attribut timeZone.
timeZoneChaîneLe fuseau horaire de la date de sortie au format IANA TZDB. Par défaut, renvoie l’heure UTC.
localeChaîneLes paramètres régionaux à utiliser pour les formats reposant sur des paramètres régionaux. Voir la liste des paramètres régionaux pris en charge.

fromjson

Convertit une chaîne JSON en un objet.
{% set obj ='{ "name":"Brian","role":"Owner" }' %}
{{ obj|fromjson }}

geo_distance

Calcule la distance ellipsoïdale 2D entre deux points sur la Terre.
<!-- in the example below
the HubDB Location =
42.3667, -71.1060 (Cambridge, MA) |
Chicago, IL = 37.3435, -122.0344 -->
{{ row.location | geo_distance(37.3435, -122.0344, "mi") }} MI

groupby

Regroupe une séquence d’objets selon un attribut commun. Le paramètre définit l’attribut commun pour le regroupement.
<ul>
{% for group in contents|groupby("blog_post_author") %}
<li>{{ group.grouper }}
<ul>
{% for content in group.list %}
<li>{{ content.name }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
ParamètreDescription
attributeL’attribut à utiliser pour le regroupement.

indent

Met en retrait le texte dans une longueur de champ donnée en utilisant les espaces. Ce filtre n’est pas recommandé et n’est pas particulièrement utile, car le compilateur HTML de HubSpot élimine automatiquement les espaces blancs. Toutefois, il est inclus ici par souci d’exhaustivité. L’exemple ci-dessous montre un filtre indent appliqué à une variable dans une balise <pre>, de sorte que les espaces blancs ne sont pas supprimés. Le premier paramètre contrôle la quantité d’espaces blancs et le second booléen permet d’indenter ou non la première ligne.
<pre>
{% set var = "string to indent" %}
{{ var|indent(2, true) }}
</pre>
ParamètreTypeDescription
widthNombreLa quantité d’espaces blancs à appliquer.
indent-firstBooléenLorsque cette option est définie sur true, la première ligne sera mise en retrait.

int

Convertit la valeur en un nombre entier. Si la conversion ne fonctionne pas, elle renvoie 0. Vous pouvez remplacer cette valeur par défaut en utilisant le premier paramètre.
{% set string="25" %}
{{ string|int + 17 }}
ParamètreTypeDescription
defaultNombreNombre entier à renvoyer si la conversion ne fonctionne pas.

intersect

Renvoie l’intersection de deux ensembles ou listes. La liste renvoyée par le filtre contient tous les éléments uniques qui sont contenus dans les deux listes.
{{ [1, 2, 3]|intersect([2, 3, 4, 5]) }}
ParamètreTypeDescription
listTableauLa deuxième liste à comparer pour trouver l’intersection de la liste avec la liste originale.

ipaddr

Évalue comme true si la valeur est une adresse IPv4 ou IPv6 valide.
{% set ip = "1.0.0.1" %}
{% if ip|ipaddr %}
The string is a valid IP address
{% endif %}

join

Renvoie une chaîne qui est la concaténation des chaînes de la séquence. Le séparateur entre les éléments est une chaîne vide par défaut, vous pouvez le définir avec le paramètre facultatif. Le deuxième paramètre peut être utilisé pour indiquer un attribut à joindre.
{% set my_list = [1, 2, 3] %}
{% set sep = "---" %}
{{ my_list|join }}
{{ my_list|join("|") }}
{{ my_list|join(sep) }}
ParamètreTypeDescription
delimiterChaîneLe délimiteur à utiliser lors de la concaténation de chaînes.
attributeVariable HubLAttribut de valeur à joindre à un objet.

last

Renvoie le dernier élément d’une séquence.
{% set my_sequence = ["Item 1", "Item 2", "Item 3"] %}
{% my_sequence|last %}

length

Renvoie le nombre d’éléments d’une séquence ou d’un mappage.
{% set services = ["Web design", "SEO", "Inbound Marketing", "PPC"] %}
{{ services|length }}

list

Convertit les valeurs en une liste. Les chaînes seront renvoyées sous forme de caractères distincts, sauf si elles sont contenues dans des délimiteurs de séquence entre crochets [ ].
{% set one = 1 %}
{% set two = 2 %}
{% set three = "three" %}
{% set four = ["four"] %}
{% set list_num = one|list + two|list + three|list + four|list %}
{{ list_num }}

log

Calcule le logarithme naturel d’un nombre.
{{ 10|log }}
{{ 65536|log(2) }}
ParamètreTypeDescription
baseNombreLa base à utiliser pour le calcul du journal.

lower

Convertit toutes les lettres d’une valeur en minuscules.
{% set text="Text to MAKE LowercaSe" %}
{{ text|lower }}

map

Applique un filtre sur une séquence d’objets ou recherche un attribut. C’est utile lorsque vous traitez une liste d’objets lorsque vous n’êtes réellement intéressé que par une certaine valeur de celle-ci. L’utilisation de base est le mappage d’un attribut. Par exemple, si vous voulez utiliser la logique conditionnelle pour vérifier si une valeur est présente dans un attribut particulier d’un dictionnaire. Vous pouvez également le laisser utiliser un filtre en transmettant le nom du filtre et les arguments après.
{# Usage 1 #}
Apply a filter to a sequence:
{% set seq = ["item1", "item2", "item3"] %}
{{ seq|map("upper") }}

{# Usage 2 #}
Look up an attribute:
{{ content|map("currentState")}}
ParamètreTypeDescription
filterChaîneFiltre à appliquer à la séquence d’objets.

md5

Calcule le hachage md5 de l’objet donné
{{ content.absolute_url|md5 }}

minus_time

Soustrait un nombre d’heures à partir d’un objet datetime.
{% set date = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %}
{{ date }}
{{ date|minus_time(2, "months") }}
ParamètreTypeDescription
diffNombreMontant à soustraire.
timeunitChaîneLes unités de temps valides sont nanos, micros, millis, seconds, minutes, hours, half_days, days, weeks, months, years, decades, centuries, millennia et eras.

multiply

Multiplie une valeur par un nombre. Fonctionne de la même manière que l’opérateur *.
{% set n = 20 %}
{{ n|multiply(3) }}

plus_time

Ajoute un nombre d’heures à un objet datetime.
{% set date = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %}
{{ date }}
{{ date|plus_time(5, "days") }}
ParamètreTypeDescription
diffNombreMontant à soustraire.
timeunitChaîneLes unités de temps valides sont nanos, micros, millis, seconds, minutes, hours, half_days, days, weeks, months, years, decades, centuries, millennia et eras.

pprint

Impression d’une variable avec mise en forme. Ceci imprime le type de variable et d’autres informations utiles pour le débogage.
{% set this_var ="Variable that I want to debug" %}
{{ this_var|pprint }}

random

Renvoie un élément aléatoire de la séquence.

Remarque:

si vous utilisez ce filtre, la page sera pré-rendue périodiquement et non pas chaque fois que le contenu de la page est mis à jour. Cela signifie que le contenu filtré ne sera pas mis à jour à chaque rechargement de page.Cela peut ne pas être un problème pour certains types de contenu, tels que l’affichage d’une liste aléatoire d’articles de blog. Cependant, si vous souhaitez que le contenu change aléatoirement à chaque chargement de page, vous devez plutôt utiliser JavaScript pour rendre aléatoire le contenu côté client.
{% for content in contents|random %}
<div class="post-item">Post item markup</div>
{% endfor %}

regex_replace

Recherche un motif regex et le remplace par une séquence de caractères. Le premier argument est un motif regex de style RE2, le second est la chaîne de remplacement. Découvrez-en davantage sur la syntaxe des regex RE2.
{{ "contact-us-2"|regex_replace("[^a-zA-Z]", "") }}

reject

Filtre une séquence d’objets en appliquant un test d’expression à l’objet et en rejetant ceux dont le test a réussi.
{% set some_numbers = [10, 12, 13, 3, 5, 17, 22] %}
{{ some_numbers|reject("even") }}
ParamètreTypeDescription
exp_textChaîneLe nom du test d’expression à appliquer à l’objet.

rejectattr

Filtre une séquence d’objets en appliquant un test à l’attribut d’un objet et en rejetant ceux dont le test a réussi.
{% for content in contents|rejectattr("post_list_summary_featured_image") %}
<div class="post-item">
{% if content.post_list_summary_featured_image %}
<div class="hs-featured-image-wrapper">
<a href="https://developers.hubspot.fr/docs{{content.absolute_url}}" title="" class="hs-featured-image-link">
<img src="{{ content.post_list_summary_featured_image }}" class="hs-featured-image">
</a>
</div>
{% endif %}
{{ content.post_list_content|safe }}
</div>
{% endfor %}
ParamètreTypeDescription
attribute_nameChaîneIndique l’attribut à sélectionner. Vous pouvez accéder aux attributs imbriqués en utilisant la notation par points.
exp_testChaîneLe nom du test d’expression à appliquer à l’objet.

render

Rend les chaînes contenant HubL au début afin que la sortie puisse être transmise dans d’autres filtres.
{{ personalization_token("contact.lastname", "default value")|render|lower }}

replace

Remplace toutes les instances d’une sous-chaîne par une nouvelle.
{% if topic %}
<h3>Posts about {{ page_meta.html_title|replace("Blog | ", "") }}</h3>
{% endif %}
ParamètreTypeDescription
oldChaîneLa sous-chaîne qui doit être remplacée.
newChaîneChaîne de remplacement.
countNombreSi ce paramètre est fourni, seules les occurrences du premier décompte sont remplacées.

reverse

Inverse l’objet ou renvoie un itérateur qui parcours dans l’autre sens. Pour inverser une liste, utilisez .reverse()
{% set nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] %}
{% for num in nums|reverse %}
{{ num }}
{% endfor %}

root

Calcule la racine carrée d’une valeur
{{ 16|root }}
{{ 625|root(4) }}
ParamètreTypeDescription
nth_rootNombreLa racine nième à utiliser pour le calcul.

round

Arrondit un nombre à une précision donnée.
{{ 52.5|round }}
{{ 52.5|round(0, "floor") }}
ParamètreTypeDescription
precisionNombreIndique la précision de l’arrondi.
rounding_method'common' (défaut) | 'ceil' | 'floor'common arrondit vers le haut ou vers le bas (par défaut) ; ceil arrondit toujours vers le haut ; floor arrondit toujours vers le bas.

safe

Marquer une valeur comme sûre, ce qui signifie que dans un environnement où l’échappement automatique est activé, cette variable ne sera pas échappée.
{{ content.post_list_content|safe }}

sanitize_html

Nettoie le contenu d’une entrée HTML pour la sortie de contenu en texte enrichi. Accepte une chaîne, puis supprime les balises HTML qui ne sont pas autorisées. Utilisez ce filtre pour les variables HubL utilisées en HTML qui devraient permettre un HTML sécurisé. Vous pouvez inclure les paramètres suivants pour autoriser des types spécifiques de balises HTML : FORMATTING, BLOCKS, STYLES, LINKS, TABLES. IMAGES. Par exemple : sanitize_html(IMAGES). L’utilisation de sanitize_html inclura tous les paramètres dans le filtre. Vous pouvez également inclure un paramètre STRIP pour supprimer tout le HTML. Tout le contenu est également exécuté via escape_jinjava pour empêcher l’interprétation imbriquée.
{% set escape_string = "This <br> <div>markup is <img src='test.com/image'> <span>printed</span> as text.</div>" %}
{{ escape_string|sanitize_html("IMAGES") }}

select

Filtre une séquence d’objets en appliquant un test aux objets et en ne sélectionnant que ceux dont le test a réussi.
{% set some_numbers = [10, 12, 13, 3, 5, 17, 22] %}
{{ some_numbers|select("even") }}
ParamètreTypeDescription
exp_textChaîneLe test d’expression à appliquer à l’objet.

selectattr

Filtre une séquence d’objets en appliquant un test à un attribut d’un objet et en ne sélectionnant que ceux dont le test a réussi.
{% for content in contents|selectattr("post_list_summary_featured_image") %}
<div class="post-item">
{% if content.post_list_summary_featured_image %}
<div class="hs-featured-image-wrapper">
<a href="https://developers.hubspot.fr/docs{{content.absolute_url}}" title="" class="hs-featured-image-link">
<img src="{{ content.post_list_summary_featured_image }}" class="hs-featured-image">
</a>
</div>
{% endif %}
{{ content.post_list_content|safe }}
</div>
{% endfor %}
ParamètreTypeDescription
attribute_nameChaîneL’attribut à tester. Vous pouvez accéder aux attributs imbriqués en utilisant la notation par points.
exp_testChaîneLe nom du test d’expression à appliquer à l’objet.
valChaîneValeur à tester.

shuffle

Rend aléatoire l’ordre d’itération d’une séquence. L’exemple ci-dessous mélange une boucle de blog standard.

Remarque:

si vous utilisez ce filtre, la page sera pré-rendue périodiquement et non pas chaque fois que le contenu de la page est mis à jour. Cela signifie que le contenu filtré ne sera pas mis à jour à chaque rechargement de page.Cela peut ne pas être un problème pour certains types de contenu, tels que l’affichage d’une liste aléatoire d’articles de blog. Cependant, si vous souhaitez que le contenu change aléatoirement à chaque chargement de page, vous devez plutôt utiliser JavaScript pour rendre aléatoire le contenu côté client.
{% for content in contents|shuffle %}
<div class="post-item">Markup of each post</div>
{% endfor %}

slice

Découpe un itérateur et renvoie une liste de listes contenant ces éléments. Le premier paramètre indique le nombre d’éléments qui seront découpés, et le second paramètre indique les caractères à utiliser pour remplir les tranches vides.
{% set items = ["laptops", "tablets", "smartphones", "smart watches", "TVs"] %}
<div class="columwrapper">
{% for column in items|slice(3," ") %}
<ul class="column-{{ loop.index }}">
{% for item in column %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endfor %}
</div>
ParamètreTypeDescription
slicesNombreCombien d’éléments seront découpés.
fillerChaîneIndique les caractères à utiliser pour remplir les tranches vides.

sort

Trie une table itérative. Ce filtre nécessite que tous les paramètres soient triés en utilisant un attribut dans HubSpot. Le premier paramètre est un booléen pour inverser l’ordre de tri. Le deuxième paramètre détermine si le tri prend en compte la casse. Et le dernier paramètre indique l’attribut à utiliser pour le tri. Dans l’exemple ci-dessous, les articles d’un blog sont rendus et classés par ordre alphabétique de leur nom.
{% set my_posts = blog_recent_posts("default", limit=5) %}

{% for item in my_posts|sort(False, False, "name") %}
{{ item.name }}<br>

{% endfor %}
ParamètreTypeDescription
reverseBooléenÀ définir sur true pour inverser l’ordre de tri.
case_sensitiveBooléenÀ définir sur true pour rendre le tri sensible à la casse.
attributeChaîneAttribut à utiliser pour le tri. Omettre lors du tri d’une liste.

split

Divise la chaîne d’entrée en une liste selon le séparateur donné. Le premier paramètre indique le séparateur avec lequel la variable doit être divisée. Le deuxième paramètre détermine combien de fois la variable doit être divisée. Tous les autres éléments restent groupés. Dans l’exemple ci-dessous, une chaîne de noms est séparée au niveau du ; pour les quatre premiers noms.
{% set string_to_split = "Mark; Irving; Helly; Dylan; Milchick; Harmony;" %}
{% set names = string_to_split|split(";", 4) %}
<ul>
{% for name in names %}
<li>{{ name }}</li>
{% endfor %}
</ul>
ParamètreTypeDescription
character_to_split_byChaîneIndique le séparateur avec lequel la variable doit être divisée.
number_of_splitsNombreDétermine le nombre de fois que la variable doit être divisée. Tous les autres éléments resteraient groupés.

chaîne

Convertit un type de variable différent en une chaîne. Dans l’exemple ci-dessous, un entier est converti en chaîne (pprint est utilisé pour confirmer le changement de type de variable).
{% set number_to_string = 45 %}
{{ number_to_string|string|pprint }}

striptags

Efface les balises SGML/XML et remplace les espaces blancs adjacents par un espace. Ce filtre peut être utilisé pour supprimer toutes les balises HTML d’une variable.
{% set some_html = "<div><strong>Some text</strong></div>" %}
{{ some_html|striptags }}

strtodate

Convertit une chaîne de date et un format de date en un objet de date.
{{ '3/3/21'|strtodate('M/d/yy') }}
ParamètreTypeDescription
dateFormatChaîneLe format de date à utiliser.

strtotime

Convertit une chaîne datetime et un format datetime en un objet datetime.
{{ "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ")|unixtimestamp }}
ParamètreTypeDescription
datetimeFormatChaîneLe format de date et d’heure à utiliser.

sum

Ajoute des valeurs numériques dans une séquence. Le premier paramètre peut indiquer un attribut facultatif et le second paramètre définit une valeur à renvoyer s’il n’y a rien dans la variable à additionner.
// Simple sum
{% set sum_this = [1, 2, 3, 4, 5] %}
{{ sum_this|sum }}

// Sum of attribute
{% set items = [15, 10] %}
{% set dict_var = [{"name": "Item1", "price": "20"}, {"name": "Item2", "price": "10"}] %}
Total: {{ dict_var|sum(attribute="price") }}
ParamètreTypeDescription
attributeChaîneAttribut à additionner.
return_if_nothingChaîneValeur à renvoyer s’il n’y a rien dans la variable à additionner.

symmetric_difference

Renvoie la différence symétrique de deux ensembles ou listes. La liste renvoyée par le filtre contient tous les éléments uniques qui figurent dans la première liste, mais pas dans la seconde, ou qui figurent dans la seconde liste, mais pas dans la première.
{{ [1, 2, 3]|symmetric_difference([2, 3, 4, 5]) }}
ParamètreTypeDescription
listTableauLa deuxième liste à comparer pour trouver la différence symétrique avec la liste originale.

title

Renvoie une version au format titre de la valeur (c’est-à-dire que les mots commencent par des lettres majuscules mais que tous les autres caractères sont des minuscules).
{% set my_title="my title should be title case" %}
{{ my_title|title }}

tojson

Écrit un objet sous forme de chaîne JSON.
{% for content in contents %}
{{ content.blog_post_author|tojson }}
{% endfor %}

trim

Supprime les espaces blancs de début et de fin. HubSpot supprime déjà les espaces blancs du balisage, mais ce filtre est documenté par souci d’exhaustivité.
{{ " remove whitespace " }}
{{ " remove whitespace "|trim }}

truncate

Coupe le texte après un certain nombre de caractères. La valeur par défaut est 255. Les caractères HTML sont inclus dans ce décompte.
Remarque : comme ce filtre s’appuie sur les espaces entre les mots pour raccourcir les chaînes, il se peut qu’elle ne fonctionne pas comme prévu pour les langues sans espace entre caractères, comme le japonais.
{{ "I only want to show the first sentence. Not the second."|truncate(40) }}
{{ "I only want to show the first sentence. Not the second."|truncate(35, true, "..........") }}
ParamètreTypeDescription
number_of_charactersNombreNombre de caractères autorisés avant que le texte ne soit tronqué. La valeur par défaut est 255.
breakwordBooléenSi true, le filtre coupe le texte en longueur. Si false, le dernier mot est supprimé.
endChaîneRemplace les caractères de fin par « … » par défaut après la troncature.

truncatehtml

Tronque une chaîne donnée, en respectant le balisage HTML (c’est-à-dire qu’il fermera correctement toutes les balises imbriquées). Cela empêchera une balise de rester ouverte après la troncature. Les caractères HTML ne sont pas pris en compte dans le total des caractères.
Remarque : comme ce filtre s’appuie sur les espaces entre les mots pour raccourcir les chaînes, il se peut qu’elle ne fonctionne pas comme prévu pour les langues sans espace entre caractères, comme le japonais.
{% set html_text = "<p>I want to truncate this text without breaking my HTML<p>" %}
{{ html_text|truncatehtml(28, "..." , false) }}
ParamètreTypeDescription
number_of_charactersNombreNombre de caractères autorisés avant que le texte ne soit tronqué. La valeur par défaut est 255.
endChaîneRemplace les caractères de fin par « … » par défaut après la troncature.
breakwordBooléenValeur booléenne. Si true, le filtre coupe le texte en longueur. Si false (par défaut), le dernier mot est supprimé. Si vous n’utilisez qu’un seul des paramètres facultatifs, utilisez des arguments de type mot-clé, comme truncatehtml(70, breakwords = false).

unescape_html

Convertit le texte avec des entités codées en HTML en leurs équivalents Unicode.
{% set escape_string = "me & you" %}
{{ escape_string|unescape_html }}

union

Renvoie l’union de deux ensembles ou listes. La liste renvoyée par le filtre contient tous les éléments uniques qui se trouvent dans l’une ou l’autre des listes.
{{ [1, 2, 3]|union([2, 3, 4, 5]) }}
ParamètreTypeDescription
listTableauLa deuxième liste à joindre à la liste originale.

unique

Extrait un ensemble unique d’une séquence ou d’un dictionnaire d’objets. Lors du filtrage d’un dictionnaire, tel qu’une liste d’articles renvoyée par une fonction, vous pouvez indiquer quel attribut est utilisé pour dédupliquer les éléments du dictionnaire.
{% set my_sequence = ["one", "one", "two", "three" ] %}
{{ my_sequence|unique }}
ParamètreTypeDescription
attrChaîneIndique l’attribut qui doit être utilisé lors du filtrage d’une valeur dictionnaire.

unixtimestamp

Ce filtre convertit un objet datetime en un horodatage unix.

Remarque:

vous devez uniquement utiliser ce filtre avec les variables qui renvoient une date. À compter du 30 septembre 2024, ce filtre ne renverra plus la date du jour lorsqu’une valeur nulle est transmise. Après cette date, une valeur nulle dans le filtre renverra la date 30 septembre 2024.
{{ local_dt }}
{{ local_dt|unixtimestamp }}

upper

Convertit toutes les lettres d’une valeur en majuscules.
{% set text="text to make uppercase" %}
{{ text|upper }}

urlencode

Quitte et encode l’URL d’une chaîne utilisant le formatage UTF-8. Accepte à la fois les dictionnaires et les chaînes régulières ainsi que les itérables par paire.
{% set encode_value="Escape & URL encode this string" %}
{{ encode_value|urlencode }}

urldecode

Décode les chaînes d’URL encodées vers l’URL d’origine. Accepte à la fois les dictionnaires et les chaînes régulières ainsi que les itérables par paire.
{% set decode_value="Escape+%26+URL+decode+this+string" %}
{{ decode_value|urldecode }}

urlize

Convertit les URL en texte brut en liens cliquables. Si vous transmettez au filtre un nombre entier supplémentaire, il raccourcira les URL à ce nombre. Le deuxième paramètre est un booléen qui indique si le lien est rel=“no follow”. Le dernier paramètre vous permet de préciser si le lien s’ouvrira dans un nouvel onglet.
ParamètreTypeDescription
shorten_textNombreNombre entier qui raccourcira les URL au nombre désiré.
no_followBooléenLorsqu’il est défini sur true, le lien inclura rel="no follow".
target="_blank"ChaîneIndique si le lien s’ouvrira dans un nouvel onglet.
{{ "http://hubspot.com/"|urlize }}
{{ "http://hubspot.com/"|urlize(10,true) }}
{{ "http://hubspot.com/"|urlize("",true) }}
{{ "http://hubspot.com/"|urlize("",false,target="_blank") }}

wordcount

Compte le nombre de mots dans une chaîne.
Si la chaîne contient du HTML, utilisez le filtre striptags pour obtenir un compte précis.
{%  set count_words = "Count the number of words in this variable"  %}
{{ count_words|wordcount }}

wordwrap

Provoque le retour à la ligne des mots après un nombre de caractères donné. Cela fonctionne mieux dans un <pre> car HubSpot supprime les espaces blancs par défaut.
{% set wrap_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur, ipsum non sagittis euismod, ex risus rhoncus lectus, vel maximus leo enim sit amet dui. Ut laoreet ultricies quam at fermentum." %}
{{ wrap_text|wordwrap(10) }}
ParamètreDescription
character_countNombre de caractères avec le retour à la ligne du contenu.

xmlattr

Crée une chaîne d’attributs HTML/XML, basée sur les éléments d’un dictionnaire. Toutes les valeurs qui ne sont ni nulles ni indéfinies sont automatiquement échappées. Il ajoute automatiquement un espace devant l’élément si le filtre renvoie quelque chose, sauf si le premier paramètre est false.
{% set html_attributes = {"class": "bold", "id": "sidebar"} %}
<div {{ html_attributes|xmlattr }}></div>
ParamètreTypeDescription
autospaceBooléenÀ définir sur true pour ajouter un espace devant l’élément.