Filtres HubL

Last updated:

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 HubSpot CMS 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 }}53

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

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.

ParameterDescription
attribute_name
Obligatoire

Indique l'attribut à imprimer

{{ content|attr("absolute_url") }} https://developers.hubspot.com/docs/cms/hubl/filters

batch

Un filtre de lot regroupe les éléments d'une séquence.

ParameterDescription
linecount
Obligatoire

Le nombre d'éléments à inclure dans le lot

fill_with
Facultatif

Indique ce qu'il faut inclure pour compléter les éléments manquants

Dans l'exemple ci-dessous, il existe une variable contenant une séquence de types de fruits. Le filtre de lot 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 &nbsp (le deuxième paramètre).

{% set rows = ["apples", "oranges", "pears", "grapes", "blueberries"] %} <table> {% for row in rows|batch(3, "&nbsp;") %} <tr> {% for column in row %} <td>{{ column }}</td> {% endfor %} </tr> {% endfor %} </table><table> <tbody> <tr> <td>apples</td> <td>oranges</td> <td>pears</td> </tr> <tr> <td>grapes</td> <td>blueberries</td> <td>&nbsp;</td> </tr> </tbody> </table>

between_times

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

Remarque : Il est fortement recommandé d'utiliser ce filtre uniquement avec les variables qui renvoient une date. Si une date n'est pas dépassée, le filtre sera utilisé à la date actuelle, ce qui peut entraîner l'affichage d'informations de date inexactes sur votre page.
ParameterDescription
end
Obligatoire

L'objet datetime de fin

timeunit
Obligatoire

Les unités de temps valides sont nanos , micros , millis , seconds , minutes , hours , half_days , days , weeks , months , years , decades , centuries , millennia , et eras .

{% 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") }}6

bool

Convertit une valeur de chaîne de texte en un booléen.

{% if "true"|bool == true %}hello world{% endif %}hello world

capitalize

Mettez 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 }}The first letter of a sentence should always be capitalized.

center

Le filtre centre utilise les espaces blancs pour centrer le texte dans une longueur de champ donnée. 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é.

ParameterDescription
width
Obligatoire

Précise la longueur de l'espace blanc dans lequel le texte doit être centré.

L'exemple ci-dessous montre un filtre center 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><pre> before string to center after </pre>

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 }} {% color "my_color" color="#000000", export_to_template_context=True %} <div style="background: rgba({{ widget_data.my_color.color|convert_rgb }}, .5)"></div>255, 255, 255 <div style="background: rgba(0, 0, 0, .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.

ParameterDescription
characters_to_cut
Obligatoire

La partie de la chaîne qui doit être supprimée.

{% set my_string = "Hello world." %} {{ my_string|cut(" world") }}Hello.

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.

ParameterDescription
default_variable
Obligatoire

Valeur à renvoyer si la variable est indéfinie. Si la variable est définie, la valeur de la variable sera renvoyée à la place.

boolean
Facultatif

Renvoie default_value si la variable est une chaîne vide

{{ my_variable|default("my_variable is not defined") }} {{ ""|default("the string was empty", true) }}my_variable is not defined the string was empty

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.

ParameterDescription
case_sensitive
Obligatoire

Détermine si le tri prend en compte la casse

sort_by
Obligatoire

Détermine si le tri doit se faire par key ou par value

{% for item in contact|dictsort(false, "value") %} {{item}} {% endfor %}A sorted contact dictionary

difference

Ce filtre 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.

ParameterDescription
list
Obligatoire

La deuxième liste à comparer pour trouver les différences par rapport à la liste originale.

{{ [1, 2, 3]|difference([2, 3, 4, 5]) }}[1]

divide

Divise la valeur actuelle par un diviseur. Le paramètre transmis est le diviseur. Ce filtre est une alternative à l'opérateur /.

ParameterDescription
divisor
Obligatoire

Le nombre par lequel il faut diviser la variable.

{% set numerator = 106 %} {{ numerator|divide(2) }}53

divisible

Une alternative au test d'expression divisibleby, le filtre divisible sera évalué comme true si la valeur est divisible par le nombre donné.

ParameterDescription
divisor
Obligatoire

Le nombre à utiliser pour évaluer si la valeur est divisible.

{% set num = 10 %} {% if num|divisible(2) %} The number is divisble by 2 {% endif %}The number is divisible by 2

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 }}&lt;div&gt;This markup is printed as text&lt;/div&gt;

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/testimageurl" alt="{{escape_string|escape_attr}}"><img src="test.com/testimageurl" alt="This &lt;br&gt; markup is printed as text">

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 }}{{This markup is printed as text}}

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 }}\tThey said \x27This string can safely be inserted into JavaScript.\x27

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 = "https://www.google.com<" %} <a href="{{ escape_string|escape_url }}"> <a href="">

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 %}<script data-search_input-config="config_widget_1234567" type="application/json"> { "autosuggest_results_message": "<script>alert('oh no!')<\/script>" } </script>

filesizeformat

Formate la valeur comme une taille de fichier « lisible par l'homme » (c'est-à-dire 13 ko, 4,1 Mo, 102 octets, etc.). Par défaut, les préfixes décimaux sont utilisés (Mega, Giga, etc.), si le paramètre est défini sur True, les préfixes binaires sont utilisés (Mebi, Gibi).

ParameterDescription
boolean
Facultatif

S'il est défini sur true, des préfixes binaires sont utilisés tels que Mebi et Gibi.

{% set bytes = 100000 %} {{ bytes|filesizeformat }}100.0 KB

first

Renvoie le premier élément d'une séquence.

{% set my_sequence = ["Item 1", "Item 2", "Item 3"] %} {{ my_sequence|first }}Item 1

float

Convertir 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.

ParameterDescription
default
Facultatif

Nombre entier à renvoyer si la conversion ne fonctionne pas. 

{% text "my_text" value="25", export_to_template_context=True %} {{ widget_data.my_text.value|float + 28 }}53.0

forceescape

Appliquer 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 }}<div>This markup is printed as text</div>

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) }} Hi Brian Halligan

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) }}€100.0
ParameterDescription
locale
Facultatif

La balise du langage local Java. Les paramètres régionaux de la page constituent la valeur par défaut. Format : ISO639LanguageCodeInLowercase-ISO3166CountryCodeInUppercase

currency
Facultatif

le 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.

minDecimalDigits
Facultatif

Le nombre minimum de décimales à utiliser. Par défaut, le nombre de décimales par défaut de la devise.

maxDecimalDigits
Facultatif

Le nombre maximum de décimales à utiliser. Par défaut, le nombre de décimales par défaut de la devise.

format_date

Formate le composant de date d'un objet de date.
Remarque : Il est fortement recommandé d'utiliser ce filtre uniquement avec les variables qui renvoient une date. Si une date n'est pas dépassée, le filtre sera utilisé à la date actuelle, ce qui peut entraîner l'affichage d'informations de date inexactes sur votre page.
ParameterDescription
format
Facultatif

Le format à utiliser. Peut être l'un des éléments suivants :

  • short
  • medium
  • long
  • full
  • un modèle personnalisé reposant sur Unicode LDML
timeZone
Facultatif

Le fuseau horaire de la date de sortie au format IANA TZDB.

locale
Facultatif

Les paramètres régionaux à utiliser pour les formats reposant sur des paramètres régionaux.

{{ content.publish_date | format_date('long') }} {{ content.publish_date | format_date('yyyyy.MMMM.dd') }} {{ content.publish_date | format_date('medium', 'America/New_York', 'de-DE') }}November 28, 2022 02022.November.28 28.11.2022

format_datetime

Formate les composants de date et d'heure d'un objet de date. Ce filtre remplace le filtre datetimeformat obsolète. Par défaut, renvoie une date et une heure dans le fuseau horaire UTC-00:00.
Remarque : Il est fortement recommandé d'utiliser ce filtre uniquement avec les variables qui renvoient une date. Si une date n'est pas dépassée, le filtre sera utilisé à la date actuelle, ce qui peut entraîner l'affichage d'informations de date inexactes sur votre page.
ParameterDescription
format
Facultatif

Le format à utiliser. Peut être l'un des éléments suivants :

  • short
  • medium
  • long
  • full
  • 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.

timeZone
Facultatif

Le fuseau horaire de la date de sortie au format IANA TZDB. Par défaut, renvoie l'heure UTC.

locale
Facultatif

Les paramètres régionaux à utiliser pour les formats reposant sur des paramètres régionaux.

{{ content.publish_date | format_datetime('medium', 'America/New_York', 'de-DE') }}12/31/69 7:00 PM

format_time

Formate le composant d'heure d'un objet de date.
Remarque : Il est fortement recommandé d'utiliser ce filtre uniquement avec les variables qui renvoient une date. Si une date n'est pas dépassée, le filtre sera utilisé à la date actuelle, ce qui peut entraîner l'affichage d'informations de date inexactes sur votre page.
ParameterDescription
format
Facultatif

Le format à utiliser. Peut être l'un des éléments suivants :

  • short
  • medium
  • long
  • full
  • un modèle personnalisé reposant sur Unicode LDML
timeZone
Facultatif

Le fuseau horaire de la date de sortie au format IANA TZDB.

locale
Facultatif

Les paramètres régionaux à utiliser pour les formats reposant sur des paramètres régionaux.

{{ content.updated | format_time('long') }} {{ content.updated | format_time('hh:mm a') }} {{ content.updated | format_time('medium', 'America/New_York', 'de-DE') }}3:25:06 PM Z 03:25 PM 10:25:44

fromjson

Convertit une chaîne JSON en un objet.

{% set obj ="{ "name":"Brian","role":"Owner" }" %} {{ obj|fromjson }}{role=Owner, name=Brian}

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") }} MI861.1655563461395 MI

groupby

Le filtre groupby regroupe une séquence d'objets selon un attribut commun. Le paramètre définit l'attribut commun pour le regroupement.

ParameterDescription
attribute
Obligatoire

L'attribut à utiliser 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><ul> <li>Blog author 1 <ul> <li>Post by Blog author 1<li> <li>Post by Blog author 1<li> <li>Post by Blog author 1<li> </ul> </li> <li>Blog author 2 <ul> <li>Post by Blog author 2<li> <li>Post by Blog author 2<li> <li>Post by Blog author 2<li> </ul> </li> <li>Blog author 3 <ul> <li>Post by Blog author 3<li> <li>Post by Blog author 3<li> <li>Post by Blog author 3<li> </ul> </li> </ul>

indent

Le filtre indent utilise les espaces blancs pour indenter le texte dans une longueur de champ donnée. 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 un filtre center appliqué à une variable dans une pré-balise, 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.

ParameterDescription
width
Obligatoire

La quantité d'espaces blancs à appliquer.

boolean
Obligatoire

Une valeur booléenne indiquant si la première ligne doit être indentée.

<pre> {% set var = "string to indent" %} {{ var|indent(2, true) }} </pre> string to indent

int

Convertir 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.

ParameterDescription
default
Obligatoire

Nombre entier à renvoyer si la conversion ne fonctionne pas.

{% text "my_text" value="25", export_to_template_context=True %} {{ widget_data.my_text.value|int + 28 }}53

intersect

Ce filtre 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.

ParameterDescription
list
Obligatoire

La deuxième liste à comparer pour trouver l'intersection de la liste avec la liste originale.

{{ [1, 2, 3]|intersect([2, 3, 4, 5]) }}[2, 3]

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 %} The string is a valid IP address

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.

ParameterTypeDescription
delimiter
Facultatif
Chaîne

Le délimiteur à utiliser lors de la concaténation de chaînes.

attribute
Facultatif
Variable HubL

Attribut de valeur à joindre à un objet.

{% set my_list = [1, 2, 3] %} {% set sep = "---" %} {{ my_list|join }} {{ my_list|join("|") }} {{ my_list|join(sep) }}123 1|2|3 1---2---3

last

Renvoie le dernier élément d'une séquence.

{% set my_sequence = ["Item 1", "Item 2", "Item 3"] %} {% my_sequence|last %}Item 3

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

list

Convertit les valeurs numériques en une liste. S'il s'agit d'une chaîne, la liste renvoyée sera une liste de caractères. Pour ajouter des chaînes à une séquence, il suffit de les ajouter aux variables de chaîne des délimiteurs de séquence [ ].

{% set one = 1 %} {% set two = 2 %} {% set three = 3 %} {% set four = ["four"] %} {% set list_num = one|list + two|list + three|list + four|list %} {{ list_num }}[1,2,3]

log

Calcule le logarithme naturel d'un nombre.

ParameterDescription
base
Facultatif

Calculez le logarithme à la nième base.

{{ 10|log }} {{ 65536|log(2) }}2.302585092994046 16.0

lower

Convertit une valeur en lettres minuscules.

{{ text "text" value="Text to MAKE Lowercase", export_to_template_context=True }} {{ widget_data.text.value|lower }}text to make lowercase

map

Applique un filtre sur une séquence d'objets ou recherche un attribut. C'est utile lorsque vous traitez des listes d'objets, mais que 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.

Vous pouvez utiliser l'un ou l'autre des paramètres énumérés ci-dessous.
ParameterDescription
attribute

Attribut à renvoyer dans la séquence d'objets.

filter

Filtre à appliquer à la séquence d'objets.

{% set seq = ["item1", "item2", "item3"] %} {{ seq|map("upper") }} {{ content|map("currentState")}}[ITEM1, ITEM2, ITEM3] DRAFT

md5

Calcule le hachage md5 de l'objet donné

{{ content.absolute_url|md5 }} 923adb4ce05a4c6342c04c80be88d15e

minus_time

Soustrait un nombre d'heures à un objet datetime.

ParameterDescription
diff
Obligatoire

Montant à soustraire.

timeunit
Obligatoire

Les unités de temps valides sont nanos , micros , millis , seconds , minutes , hours , half_days , days , weeks , months , years , decades , centuries , millennia , et eras .

{% set date = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %} {{ date }} {{ date|minus_time(2, "months") }}2018-07-14 14:31:30 2018-05-14 14:31:30

multiply

Multiplie une valeur par un nombre. Fonctionne de la même manière que l'opérateur *.

{% set n = 20 %} {{ n|multiply(3) }}60

plus_time

Ajoute un nombre d'heures à un objet datetime.

ParameterDescription
diff
Obligatoire

Montant à ajouter.

timeunit
Obligatoire

Les unités de temps valides sont nanos , micros , millis , seconds , minutes , hours , half_days , days , weeks , months , years , decades , centuries , millennia , et eras .

{% set date = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %} {{ date }} {{ date|plus_time(5, "days") }}2018-07-14 14:31:30 2018-07-19 14:31:30

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 }}(String: Variable that I want to debug)

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 %}<div class="post-item">Random post</div>

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.

Des informations sur la syntaxe des regex RE2 sont disponibles ici.

{{ "contact-us-2"|regex_replace("[^a-zA-Z]", "") }} contactus

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.

ParameterDescription
exp_text

Le test d'expression à appliquer à l'objet.

{% set some_numbers = [10, 12, 13, 3, 5, 17, 22] %} {{ some_numbers|reject("even") }}[13, 3, 5, 17]

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. 

ParameterDescription
attribute_name
Obligatoire

Indique l'attribut à sélectionner. Vous pouvez accéder aux attributs imbriqués en utilisant la notation par points.

exp_test
Facultatif

L'expression à tester

val
Facultatif

Valeur à tester.

{% 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="{{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 %}<div class="post-item">Post with no featured image</div> <div class="post-item">Post with no featured image</div> <div class="post-item">Post with no featured image</div>

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

replace

Remplace toutes les instances d'une sous-chaîne par une nouvelle. 

ParameterDescription
old
Obligatoire

La sous-chaîne qui doit être remplacée.

new
Obligatoire

Chaîne de remplacement.

count
Facultatif

Si elle est fournie, seules les occurrences du premier décompte sont remplacées.

{% if topic %} <h3>Posts about {{ page_meta.html_title|replace("Blog | ", "") }}</h3> {% endif %} <h3>Posts about topic name</h3>

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 %}10 9 8 7 6 5 4 3 2 1

root

Calcule la racine carrée d'une valeur

ParameterDescription
nth_root
Facultatif

Calculez la nième racine d'un nombre.

{{ 16|root }} {{ 625|root(4) }}4 5

round

Arrondit le nombre à une précision donnée.

ParameterDescription
precision
Facultatif

Indique la précision de l'arrondi.

rounding_method
Facultatif

Les options sont : common arrondit vers le haut ou vers le bas (par défaut) ; ceil arrondit toujours vers le haut ; floor arrondit toujours vers le bas.

Si vous n'indiquez pas de méthode, la méthode common est utilisée.

{{ 52.5|round }} {{ 52.5|round(0, "floor") }}53 52

safe

Marquer la 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 }} <p>HTML post content that is not escaped. </p>

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é.

Lorsque vous utilisez ce filtre, 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") }}This markup is <img src="test.com/image"> printed as text.</div>

select

Filtre une séquence d'objets en appliquant un test à l'objet et en ne sélectionnant que ceux dont le test a réussi.

ParameterDescription
exp_text

Le test d'expression à appliquer à l'objet.

{% set some_numbers = [10, 12, 13, 3, 5, 17, 22] %} {{ some_numbers|select("even") }}[10, 12, 22]

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.

ParameterDescription
attribute_name
Obligatoire

Indique l'attribut à sélectionner. Vous pouvez accéder aux attributs imbriqués en utilisant la notation par points.

exp_test
Facultatif

L'expression à tester

val
Facultatif

Valeur à tester.

{% 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="{{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 %}<div class="post-item"> <div class="hs-featured-image-wrapper"> <a href="http://blog.hubspot.com/marketing/how-to-get-a-job" title="" class="hs-featured-image-link"> <img src="//cdn2.hubspot.net/hub/53/hubfs/00-Blog-Related_Images/landing-a-job-featured-image.png?t=1431452322770&width=761" class="hs-featured-image"> </a> </div> Post with featured image </div>

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 %}<div class="post-item">Markup of each post 5</div> <div class="post-item">Markup of each post 3</div> <div class="post-item">Markup of each post 1</div> <div class="post-item">Markup of each post 2</div> <div class="post-item">Markup of each post 4</div>

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.

ParameterDescription
slices
Obligatoire

Combien d'éléments seront découpés.

filler
Obligatoire

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><div class="columwrapper"> <ul class="column-1"> <li>laptops</li> <li>tablets</li> <li>smartphones</li> </ul> <ul class="column-2"> <li>smart watches</li> <li>TVs</li> <li>&nbsp;</li> </ul> </div>

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.

ParameterDescription
reverse
Obligatoire

Valeur booléenne permettant d'inverser l'ordre de tri.

case_sensitive
Obligatoire

Valeur booléenne qui détermine si le tri prend en compte la casse. 

attribute
Obligatoire

Attribut à utiliser pour le tri. Omettre lors du tri d'une liste.

{% set my_posts = blog_recent_posts("default", limit=5) %} {% for item in my_posts|sort(False, False, "name") %} {{ item.name }}<br> {% endfor %}A post<br> B post<br> C post<br> D post<br> E post<br>

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 resteraient groupés. Dans l'exemple ci-dessous, une chaîne de noms est séparée au niveau du « ; » pour les 4 premiers noms.

ParameterDescription
character_to_split_by
Obligatoire

Indique le séparateur avec lequel la variable doit être divisée.

number_of_splits
Facultatif

Détermine le nombre de fois que la variable doit être divisée. Tous les autres éléments resteraient groupés.

{% set string_to_split = "Stephen; David; Cait; Nancy; Mike; Joe; Niall; Tim; Amanda" %} {% set names = string_to_split|split(";", 4) %} <ul> {% for name in names %} <li>{{ name }}</li> {% endfor %} </ul><ul> <li>Stephen</li> <li>David</li> <li>Cait</li> <li>Nancy; Mike; Joe; Niall; Tim; Amanda</li> </ul>

string

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 }}(String: 45)

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

strtotime

Convertit une chaîne datetime et un format datetime en un objet datetime.

ParameterDescription
datetimeFormat
Obligatoire

Modèles de date et d'heure.

{{ "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ")|unixtimestamp }} 1531558890000

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.

ParameterDescription
attribute
Facultatif

Attribut à additionner.

return_if_nothing
Facultatif

Valeur à renvoyer s'il n'y a rien dans la variable à additionner.

{% set sum_this = [1, 2, 3, 4, 5] %} {{ sum_this|sum }} Total: {{ items|sum(attribute="price:") }}15 Total: 20

symmetric_difference

Ce filtre 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.

ParameterDescription
list
Obligatoire

La deuxième liste à comparer pour trouver la différence symétrique avec la liste originale.

{{ [1, 2, 3]|symmetric_difference([2, 3, 4, 5]) }}[1, 4, 5]

title

Renvoie une version titlecased de la valeur. C'est-à-dire que les mots commencent par des lettres majuscules, tous les autres caractères sont des minuscules.

{% text "my_title" label="Enter a title", value="My title should be titlecase", export_to_template_context=True %} {{ widget_data.my_title.value|title }}My Title Should Be Titlecase

tojson

Écrit un objet sous forme de chaîne JSON.

{% for content in contents %} {{ content.blog_post_author|tojson }} {% endfor %}{ "portalId":1234567, "id":12312253109, "created":1566413741989, "updated":1566414012799, "deletedAt":0, "fullName":"Sample User", "email":"sampleUser@example.com", "userId":null, "username":null, "slug":"sample-user", "jsonBody":{ "avatar":"https://app.hubspot.com/settings/avatar/109d6874a0cb066c1c7263ac5df6ce7a", "bio":"Sample Bio", "facebook":"", "linkedin":"", "twitter":"", "website":"https://www.hubspot.com" }, "bio":"Sample Bio", "facebook":"", "linkedin":"", "avatar":"https://app.hubspot.com/settings/avatar/109d6874a0cb066c1c7263ac5df6ce7a", "gravatarUrl":"https://app.hubspot.com/settings/avatar/108bb5ac667ded34796271437dfe8d58", "twitterUsername":"", "hasSocialProfiles":false, "website":"https://www.hubspot.com", "twitter":"", "displayName":"Sample User" }

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

truncate

Coupe le texte après un certain nombre de caractères. La valeur par défaut est 255. Veuillez noter que les caractères HTML sont inclus dans ce décompte. La longueur est indiquée avec le premier paramètre qui a la valeur 255 par défaut. Si le deuxième paramètre est true, le filtre coupera le texte en longueur. Sinon, le dernier mot est rejeté. Si le texte a été tronqué, il ajoutera un signe d'ellipse (« ... »). Si vous souhaitez un autre signe d'ellipse que « ... », vous pouvez l'indiquer en utilisant le troisième paramètre.

Use this table to describe parameters / fields
ParameterDescription
number_of_characters
Obligatoire

Nombre de caractères après lesquels le texte doit être tronqué. La valeur par défaut est 255.

breakword
Facultatif

Valeur booléenne. Si sur true, le filtre coupe le texte en longueur. Si sur false, le dernier mot est supprimé. 

end
Facultatif

Remplace les caractères de fin par « ... » par défaut après la troncature.

{{ "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, "..........") }}I only want to show the first sentence. I only want to show the first sente..........

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. Ce filtre a un paramètre de longueur et un paramètre de symbole de troncature. Il existe un troisième paramètre booléen qui indique si les mots seront cassés en longueur. Ce paramètre est faux par défaut afin de préserver la longueur des mots. Si vous n'utilisez qu'un seul des paramètres facultatifs, utilisez des arguments de type mot-clé, comme truncatehtml(70, breakwords = false).

ParameterDescription
number_of_characters
Obligatoire

Nombre de caractères après lesquels le texte doit être tronqué. La valeur par défaut est 255.

end
Facultatif

Remplace les caractères de fin par « ... » par défaut après la troncature.

breakword
Facultatif

Valeur booléenne. Si sur true, le filtre coupe le texte en longueur. Si sur false, le dernier mot est supprimé. 

{% set html_text = "<p>I want to truncate this text without breaking my HTML<p>" %} {{ html_text|truncatehtml(28, "..." , false) }}<p>I want to truncate this..</p>

unescape_html

 Convertit le texte avec des entités codées en HTML en leurs équivalents Unicode.

{% set escape_string = "me &amp; you" %} {{ escape_string|unescape_html }}me & you

union

Ce filtre 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.

ParameterDescription
list
Obligatoire

La deuxième liste à joindre à la liste originale.

{{ [1, 2, 3]|union([2, 3, 4, 5]) }}[1, 2, 3, 4, 5]

unique

Ce filtre 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.

ParameterDescription
attr
Facultatif

Indique l'attribut qui doit être utilisé lors du filtrage d'une valeur dictionnaire

{% set my_sequence = ["one", "one", "two", "three" ] %} {{ my_sequence|unique }}[one, two, three]

unixtimestamp

Ce filtre convertit un objet datetime en un horodatage unix.

Remarque : Il est fortement recommandé d'utiliser ce filtre uniquement avec les variables qui renvoient une date. Si une date n'est pas dépassée, le filtre sera utilisé à la date actuelle, ce qui peut entraîner l'affichage d'informations de date inexactes sur votre page.
{{ local_dt }} {{ local_dt|unixtimestamp }}2017-01-30 17:11:44 1485814304000

upper

Convertit une valeur en lettres majuscules.

{% text "text" value="text to make uppercase", export_to_template_context=True %} {{ widget_data.text.value|upper }}TEXT TO MAKE UPPERCASE

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.

{% text "encode" value="Escape & URL encode this string", label="Enter slug", export_to_template_context=True %} {{ widget_data.encode.value|urlencode }}Escape+%26+URL+encode+this+string

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.

{% text "decode" value="Escape+%26+URL+decode+this+string", label="Enter slug", export_to_template_context=True %} {{ widget_data.decode.value|urldecode }}Escape & URL encode this string

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.

ParameterDescription
shorten_text
Facultatif

Nombre entier qui raccourcira les URL au nombre désiré.

no_follow
Facultatif

Valeur booléenne indiquant si le lien est rel="no follow".

target="_blank"
Facultatif

Indique 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") }}<a href="//hubspot.com/">http://hubspot.com/</a> <a href="//hubspot.com/" rel="nofollow">http://...</a> <a href="//hubspot.com/" rel="nofollow">http://hubspot.com/</a> <a href="//hubspot.com/" target="_blank">http://hubspot.com/</a>

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

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.

ParameterDescription
character_count
Obligatoire

Nombre de caractères avec le retour à la ligne du contenu.

{% 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) }}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.

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.

ParameterDescription
autospace
Obligatoire

Valeur booléenne qui ajoutera automatiquement un espace devant l'élément, sauf si elle est définie sur false.

{% set html_attributes = {"class": "bold", "id": "sidebar"} %} <div {{ html_attributes|xmlattr }}></div><div class="bold" id="sidebar"></div>

Cet article vous a-t-il été utile ?
Ce formulaire est destiné à recueillir les avis sur la documentation pour les développeurs. Si vous souhaitez faire part de votre avis sur les produits HubSpot, veuillez le partager sur le forum des idéesde la communauté.