HubL Filtres supportés

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") }} http://developers.hubspot.com/docs/cms/hubl/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.

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

Formate un objet datetime. Le filtre datetimeformat est utilisé pour convertir cet horodatage en une date et/ou une heure lisible. Les paramètres du filtre, énumérés dans le tableau ci-dessous, déterminent le rendu final de la variable temporelle. 

  • Une date nulle saisie dans le filtre suppose la date et l'heure actuelles.
  • Un deuxième paramètre facultatif peut être utilisé pour indiquer un fuseau horaire. Le fuseau horaire doit être dans un format Java 8 pris en charge.
  • Vous pouvez également indiquer un paramètre régional comme troisième paramètre, dans un format Java 8 pris en charge.

Ce filtre attend un horodatage datetime. Si vos informations de date et d'heure sont dans un format différent, utilisez le filtre strtotime pour formater les données en premier lieu.

ParameterDescription
format
Obligatoire

Format de la directive pour l'objet datetime. Voir le tableau des directives sous l'exemple pour les valeurs. 

timezone
Facultatif

Indique un fuseau horaire. Doit être dans un format Java 8 pris en charge.

locale
Facultatif

Indique un paramètre régional. Doit être dans un format Java 8 pris en charge.

{{ content.updated|datetimeformat("%B %e, %Y") }} {{ content.publish_date|datetimeformat("%B %e, %Y %l %p") }} {{ content.publish_date|datetimeformat("%B %e, %Y %l %p", "America/Los_Angeles") }} {{ content.publish_date|datetimeformat("%B %e, %Y %l %p", "America/Los_Angeles", "es-US") }}October 17, 2020 October 1, 2020 4 PM October 1, 2020 9 AM octubre 1, 2020 9 a.m.
datetime formatting
DirectiveExempleDescription
%a
Sun, Mon, ..., Sat (en-US);So, Mo, ..., Sa (de-DE)Le jour de la semaine comme nom abrégé du paramètre régional.
%A
Sunday, Monday, ..., Saturday (en-US);Sonntag, Montag, ..., Samstag (de-DE)

Le jour de la semaine comme nom complet du paramètre régional.

%w
1, 2, ..., 7

Jour de la semaine sous forme de nombre décimal, où 1 correspond au dimanche et 7 au samedi.

REMARQUE : Cela diffère des numéros de jours python qui commencent à 0.

%d
01, 02, ..., 31

Le jour du mois sous la forme d'un nombre décimal complété par des zéros.

%e
1, 2, ..., 31

Le jour du mois sous la forme d'un nombre décimal, sans complément.

%b
Jan, Feb, ..., Dec (en-US);Jan, Feb, ..., Dez (de-DE)

Le mois comme nom abrégé du paramètre régional.

%B
January, February, ..., December (en-US);Januar, Februar, ..., Dezember (de-DE)

Le mois comme nom complet du paramètre régional.

%OB
1月, 2月, ..., 12月 (ja)

Obtenir la version nominative du nom du mois.

%m
01, 02, ..., 12

Le mois sous la forme d'un nombre décimal complété par des zéros.

%y
00, 01, ..., 99

L'année sans le siècle sous la forme d'un nombre décimal complété par des zéros.

%Y
1970, 1988, 2001, 2013

L'année avec le siècle sous la forme d'un nombre décimal.

%H
00, 01, ..., 23

L'heure (horloge de 24 heures) sous la forme d'un nombre décimal complété par des zéros.

%I
01, 02, ..., 12

L'heure (horloge de 12 heures) sous la forme d'un nombre décimal complété par des zéros.

%k
0, 1, ..., 24

L'heure (horloge de 24 heures) sous la forme d'un nombre décimal (de 0 à 23) ; les chiffres uniques sont précédés d'un blanc.

%l
1, 2, ..., 12

(notez qu'il s'agit d'un L minuscule) L'heure (horloge de 12 heures) sous la forme d'un nombre décimal (de 1 à 12) ; les chiffres uniques sont précédés d'un blanc.

%p
AM, PM (en-US);am, pm (de-DE)

Le paramètre régional équivalent de AM ou PM.

%M
00, 01, ..., 59

Les minutes sous la forme d'un nombre décimal complété par des zéros.

%S
00, 01, ..., 59

Les secondes sous la forme d'un nombre décimal complété par des zéros.

%f
000000, 000001, ..., 999999

Les microsecondes sous forme d'un nombre décimal, avec un décalage de zéro sur la gauche.

%z
(empty), +0000, -0400, +1030

Décalage UTC sous la forme +HHMM ou -HHMM (chaîne vide si l'objet est naïf).

%Z
(empty), UTC, EST, CST

Nom du fuseau horaire (chaîne vide si l'objet est naïf).

%j
001, 002, ..., 366

Le jour de l'année sous la forme d'un nombre décimal complété par des zéros.

%U
00, 01, ..., 53

Numéro de la semaine de l'année (le dimanche étant le premier jour de la semaine) sous la forme d'un nombre décimal complété par des zéros. Tous les jours d'une nouvelle année précédant le premier dimanche sont considérés comme faisant partie de la semaine 0.

%W
00, 01, ..., 53

Numéro de semaine de l'année (le lundi étant le premier jour de la semaine) sous forme de nombre décimal. Tous les jours d'une nouvelle année précédant le premier lundi sont considérés comme faisant partie de la semaine 0.

%c
Tue Aug 16 21:30:00 1988 (en-US);Di 16 Aug 21:30:00 1988 (de-DE)

Représentation pertinente de la date et de l'heure du paramètre régional.

%x
08/16/88 (None);08/16/1988 (en-US);16.08.1988 (de-DE)

Représentation pertinente de la date du paramètre régional.

%X
21:30:00 (en-US);21:30:00 (de-DE)

Représentation pertinente de l'heure du paramètre régional.

%%
%

Un caractère % littéral.

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

Convertit les caractères &, <, >, ‘, et ” de la chaîne en séquences conformes à HTML. Utilisez cette option si vous devez afficher un texte susceptible de contenir de tels caractères en HTML. Marque la valeur de renvoi comme une chaîne de balisage.

{% set escape_string = "<div>This markup is printed as text</div>" %} {{ escape_string|escape }}<div>This markup is printed as text</div>

escape_jinjava

Convertit les caractères { and } 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. Marque la valeur de renvoi comme une chaîne de balisage.

{% set escape_string = "{{This markup is printed as text}}" %} {{ escape_string|escape_jinjava }}{{This markup is printed as text}}

escapejs

Échappe les chaînes afin qu'elles puissent être insérées en toute sécurité dans une déclaration de variable JavaScript.

{% set escape_string = "\tThey said "This string can safely be inserted into JavaScript."" %} {{ escape_string|escapejs }}They said \'\\tThis string can safely be inserted into JavaScript.\'

escapejson

Échappe les chaînes de caractères afin qu'elles puissent être utilisées comme des valeurs JSON.

{% set your_string = "\tTesting a \"quote for the week\"" {{ your_string|escapejson }}\\tTesting a \\\"quote for the week\\\"

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

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.

ParameterDescription
locale
Facultatif

La balise du langage local Java. La valeur par défaut est le paramètre régional locale.Format de la page : ISO639LanguageCodeInLowercase-ISO3166CountryCodeInUppercase

currency_code
Facultatif

le code ISO 4217 de la devise, la valeur par défaut est la devise par défaut du portail.

use_default_decimal_digits
Facultatif

un booléen qui détermine si le dispositif de mise en forme doit utiliser les chiffres décimaux par défaut du code de la devise. La valeur par défaut est false.

{% set price = 100 %} {{ price|format_currency("en-US") }} {{ price|format_currency("fr-FR") }} {{ price|format_currency("jp-JP", "JPY", true) }}$100<br> 100 $<br> ¥ 100

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 par un attribut commun. Le paramètre définit l'attribut commun pour effectuer 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
String

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

attribute
Facultatif
HubL Variable

Un attribut à utiliser comme délimiteur.

{% 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 : ce filtre empêchera la mise en cache de la page. En conséquence, 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>

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 : ce filtre empêchera la mise en cache de la page. En conséquence, 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>

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.

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