> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.fr/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Filtres HubL

> Liste de filtres HubL et exemples pour les développeurs CMS Hub.

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.

<Warning>
  ### Remarque:

  vous pouvez appliquer les filtres HubL aux [jetons de personnalisation](https://knowledge.hubspot.com/website-pages/personalize-your-content), tels que les jetons de contact et d'entreprise, sur les pages de CMS Hub et de blog, mais <u>pas</u> dans les e-mails.
</Warning>

## abs

Obtient la valeur absolue d'un nombre. Vous pouvez utiliser ce filtre pour vérifier qu'un nombre est positif.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_number = -53 %}
  {{ my_number|abs }}
  ```

  ```text sortie rendue.txt theme={null}
  53
  ```
</CodeGroup>

## add

Ajoute une valeur numérique à une autre valeur numérique. Ce filtre fonctionne de la même manière que l'[opérateur +](/docs/cms/reference/hubl/operators-and-expression-tests#math). Le paramètre entre parenthèses est l'addendum que vous combinez avec votre valeur numérique initiale.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_num = 40 %}
  {{ my_num|add(13) }}
  ```

  ```text sortie rendue.txt theme={null}
  53
  ```
</CodeGroup>

## 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`.

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ content|attr("absolute_url") }}
  ```

  ```text sortie rendue.txt theme={null}
  https://developers.hubspot.com/docs/cms/hubl/filters
  ```
</CodeGroup>

| Paramètre        | Description                   |
| ---------------- | ----------------------------- |
| `attribute_name` | Indique 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 `&nbsp;` (le deuxième paramètre).

<CodeGroup>
  ```html example.html theme={null}
  {% 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>
  ```

  ```html example.html theme={null}
  <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>
  ```
</CodeGroup>

| Paramètre   | Type   | Description                                                         |
| ----------- | ------ | ------------------------------------------------------------------- |
| `linecount` | Nombre | Le nombre d'éléments à inclure dans le lot.                         |
| `fill_with` | Chaîne | Indique 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.

<Warning>
  ### Remarque:

  vous devez <u>uniquement</u> 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.
</Warning>

<CodeGroup>
  ```text hubl.txt theme={null}
  {% 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") }}
  ```

  ```text sortie rendue.txt theme={null}
  6
  ```
</CodeGroup>

| Paramètre  | Type           | Description                                                                                                                                                                                  |
| ---------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `end`      | Objet datetime | L'objet datetime de fin.                                                                                                                                                                     |
| `timeunit` | Chaîne         | Les 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% if "true"|bool == true %}hello world{% endif %}
  ```

  ```text sortie rendue.txt theme={null}
  hello world
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set sentence = "the first letter of a sentence should always be capitalized." %}
  {{ sentence|capitalize }}
  ```

  ```text sortie rendue.txt theme={null}
  The first letter of a sentence should always be capitalized.
  ```
</CodeGroup>

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

<CodeGroup>
  ```html example.html theme={null}
  <pre>
  {% set var = "string to center" %}
  before{{ var|center(80) }}after
  </pre>
  ```

  ```html example.html theme={null}
  <pre>
  before                                string to center                                after
  </pre>
  ```
</CodeGroup>

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

<CodeGroup>
  ```html example.html theme={null}
  {% set my_color = "#FFFFFF" %}
  {{ my_color|convert_rgb }}
  {% set my_color2="#000000" %}
  <div style="background: rgba({{ my_color2|convert_rgb }}, .5)"></div>
  ```

  ```html example.html theme={null}
  255, 255, 255

  <div style="background: rgba(0, 0, 0, .5)"></div>
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_string = "Hello world." %}
  {{ my_string|cut(" world") }}
  ```

  ```text sortie rendue.txt theme={null}
  Hello.
  ```
</CodeGroup>

| Paramètre           | Type   | Description                                     |
| ------------------- | ------ | ----------------------------------------------- |
| `characters_to_cut` | Chaîne | La partie de la chaîne qui doit être supprimée. |

## datetimeformat (obsolète)

<Warning>
  ### Remarque:

  Ce filtre est [obsolète](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions#datetimeformat-function). Vous devrez plutôt utiliser le filtre [format\_datetime](#format-datetime), qui utilise une syntaxe plus standardisée.
</Warning>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ my_variable|default("my_variable is not defined") }}
  {{ ""|default("the string was empty", true) }}
  ```

  ```text sortie rendue.txt theme={null}
  my_variable is not defined the string was empty
  ```
</CodeGroup>

| Paramètre       | Type    | Description                                                                                                                    |
| --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `default_value` | Chaîne  | Valeur à renvoyer si la variable est indéfinie. Si la variable est définie, la valeur de la variable sera renvoyée à la place. |
| `truthy`        | Boolé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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% for item in contact|dictsort(false, "value") %}
  {{item}}
  {% endfor %}
  ```

  ```text sortie rendue.txt theme={null}
  A sorted contact dictionary
  ```
</CodeGroup>

| Paramètre        | Type                 | Description                                                 |
| ---------------- | -------------------- | ----------------------------------------------------------- |
| `case_sensitive` | Booléen              | Dé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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ [1, 2, 3]|difference([2, 3, 4, 5]) }}
  ```

  ```text sortie rendue.txt theme={null}
  [1]
  ```
</CodeGroup>

| Paramètre | Type    | Description                                                                                 |
| --------- | ------- | ------------------------------------------------------------------------------------------- |
| `list`    | Tableau | La 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 /.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set numerator = 106 %}
  {{ numerator|divide(2) }}
  ```

  ```text sortie rendue.txt theme={null}
  53
  ```
</CodeGroup>

| Paramètre | Type   | Description                                       |
| --------- | ------ | ------------------------------------------------- |
| `divisor` | Nombre | Le 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é.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set num = 10 %}
  {% if num|divisible(2) %}
  The number is divisible by 2
  {% endif %}
  ```

  ```text sortie rendue.txt theme={null}
  The number is divisible by 2
  ```
</CodeGroup>

| Paramètre | Type   | Description                                                   |
| --------- | ------ | ------------------------------------------------------------- |
| `divisor` | Nombre | Le 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.

<CodeGroup>
  ```html example.html theme={null}
  {% set escape_string = "<div>This markup is printed as text</div>" %}
  {{ escape_string|escape_html }}
  ```

  ```html example.html theme={null}
  <div>This markup is printed as text</div>
  ```
</CodeGroup>

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

<CodeGroup>
  ```html example.html theme={null}
  {% set escape_string = "This <br> markup is printed as text" %}
  <img src="test.com/imageurl" alt="{{escape_string|escape_attr}}">
  ```

  ```html example.html theme={null}
  <img src="test.com/imageurl" alt="This <br> markup is printed as text" />
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set escape_string = "{{This markup is printed as text}}" %}
  {{ escape_string|escape_jinjava }}
  ```

  ```text sortie rendue.txt theme={null}
  {{This markup is printed as text}}
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set escape_string = "\tThey said 'This string can safely be inserted into JavaScript.'" %}
  {{ escape_string|escape_js }}
  ```

  ```text sortie rendue.txt theme={null}
  \tThey said \x27This string can safely be inserted into JavaScript.\x27
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set escape_string = "http://example.com/with space/<html>" %}
  <a href="https://developers.hubspot.fr/docs{{ escape_string|escape_url }}"></a>
  ```

  ```text sortie rendue.txt theme={null}
  <a href="http://example.com/with%20space/%3Chtml%3E"></a>
  ```
</CodeGroup>

## escapejson

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% 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 %}
  ```

  ```text sortie rendue.txt theme={null}
  <script
  data-search_input-config="config_widget_1234567"
  type="application/json"
  >
  {
  "autosuggest_results_message": "<script>alert('oh no!')<\/script>"
  }
  </script>
  ```
</CodeGroup>

## 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).

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set bytes = 10000 %}
  {{ bytes|filesizeformat(binary=true) }}
  ```

  ```text sortie rendue.txt theme={null}
  9.8 KiB
  ```
</CodeGroup>

| Paramètre | Type    | Description                                                                                         |
| --------- | ------- | --------------------------------------------------------------------------------------------------- |
| `binary`  | Booléen | S'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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_sequence = ["Item 1", "Item 2", "Item 3"] %}
  {{ my_sequence|first }}
  ```

  ```text sortie rendue.txt theme={null}
  Item 1
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_text="25" %}
  {{ my_text|float + 17 }}
  ```

  ```text sortie rendue.txt theme={null}
  42.0
  ```
</CodeGroup>

| Paramètre | Type   | Description                                                  |
| --------- | ------ | ------------------------------------------------------------ |
| `default` | Nombre | Nombre 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.

<CodeGroup>
  ```html example.html theme={null}
  {% set escape_string = "<div>This markup is printed as text</div>" %}
  {{ escape_string|forceescape }}
  ```

  ```html example.html theme={null}
  <div>This markup is printed as text</div>
  ```
</CodeGroup>

## format

Applique le formatage des chaînes Python à un objet. `%s` peut être remplacé par une autre variable.

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ "Hi %s %s"|format(contact.firstname, contact.lastname) }}
  ```

  ```text sortie rendue.txt theme={null}
  Hi Monty Python
  ```
</CodeGroup>

## format\_currency (obsolète)

<Warning>
  ### Remarque:

  ce filtre est [obsolète](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions). Utilisez plutôt le filtre [format\_currency\_value](#format-currency-value).
</Warning>

## 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](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions#format-currency).

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ 100 | format_currency_value(locale='en-GB', currency='EUR', maxDecimalDigits=6, minDecimalDigits=1) }}
  ```

  ```text sortie rendue.txt theme={null}
  €100.0
  ```
</CodeGroup>

| Paramètre          | Type   | Description                                                                                                                                                                                                                                         |
| ------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `locale`           | Chaîne | [La balise du langage local Java](https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html). La valeur par défaut est le paramètre `locale.Format : ISO639LanguageCodeInLowercase-ISO3166CountryCodeInUppercase` de la page. |
| `currency`         | Chaîne | Le [code alphabétique ISO 4217](https://en.wikipedia.org/wiki/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` | Nombre | Le nombre minimum de décimales à inclure dans le résultat. Le nombre de décimales de la devise est utilisé par défaut.                                                                                                                              |
| `maxDecimalDigits` | Nombre | Le 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.

<Warning>
  ### Remarque:

  vous devez <u>uniquement</u> 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.
</Warning>

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ 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') }}
  ```

  ```text sortie rendue.txt theme={null}
  November 28, 2022 02022.November.28 28.11.2022
  ```
</CodeGroup>

| Paramètre  | Type                                                                                      | Description                                                                                                                                                                                                             |
| ---------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `format`   | Modèle personnalisé `'short'` \&#124, `'medium'` \&#124, `'long'` \&#124, `'full'` \&#124 | Le format à utiliser. Un modèle personnalisé reposant sur [Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns).                                                                        |
| `timeZone` | Chaîne                                                                                    | Le fuseau horaire de la date de sortie au format [IANA TZDB](https://data.iana.org/time-zones/tzdb/).                                                                                                                   |
| `locale`   | Chaîne                                                                                    | Les 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](https://www.oracle.com/java/technologies/javase/java8locales.html). |

## format\_datetime

Formate les composants de date et d'heure d'un objet de date. Ce filtre remplace le filtre obsolète [datetimeformat](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions#datetimeformat-filter). Par défaut, renvoie une date et une heure dans le fuseau horaire UTC-00:00.

<Warning>
  ### Remarque:

  vous devez <u>uniquement</u> 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.
</Warning>

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ content.publish_date | format_datetime('medium', 'America/New_York', 'de-DE') }}
  ```

  ```text sortie rendue.txt theme={null}
  12/31/69 7:00 PM
  ```
</CodeGroup>

| Paramètre  | Type                                                                                      | Description                                                                                                                                                                                                                                                                                                                                                       |
| ---------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `format`   | Modèle personnalisé `'short'` \&#124, `'medium'` \&#124, `'long'` \&#124, `'full'` \&#124 | Le format à utiliser. Un modèle personnalisé reposant sur [Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns). 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` | Chaîne                                                                                    | Le fuseau horaire de la date de sortie au format [IANA TZDB](https://data.iana.org/time-zones/tzdb/). Par défaut, renvoie l'heure UTC.                                                                                                                                                                                                                            |
| `locale`   | Chaîne                                                                                    | Les 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](https://www.oracle.com/java/technologies/javase/java8locales.html).                                                                                                                                           |

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ 1000|format_number('en-US') }}
  {{ 1000.333|format_number('fr') }}
  {{ 1000.333|format_number('en-US', 2) }}
  ```

  ```text sortie rendue.txt theme={null}
  1,000
  1 000,333
  1,000.33
  ```
</CodeGroup>

| Paramètre          | Type   | Description                                                                                                                                                                        |
| ------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `locale`           | Chaîne | Les paramètres régionaux à utiliser pour le formatage. Voir la [liste des paramètres régionaux pris en charge](https://www.oracle.com/java/technologies/javase/java8locales.html). |
| `maxDecimalDigits` | Nombre | Le 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.

<Warning>
  ### Remarque:

  vous devez <u>uniquement</u> 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.
</Warning>

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ content.updated | format_time('long') }}
  {{ content.updated | format_time('hh:mm a') }}
  {{ content.updated | format_time('medium', 'America/New_York', 'de-DE') }}
  ```

  ```text sortie rendue.txt theme={null}
  3:25:06 PM Z 03:25 PM 10:25:44
  ```
</CodeGroup>

| Paramètre  | Type                                                                                      | Description                                                                                                                                                                                                                                                                                                                                                       |
| ---------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `format`   | Modèle personnalisé `'short'` \&#124, `'medium'` \&#124, `'long'` \&#124, `'full'` \&#124 | Le format à utiliser. Un modèle personnalisé reposant sur [Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns). 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` | Chaîne                                                                                    | Le fuseau horaire de la date de sortie au format [IANA TZDB](https://data.iana.org/time-zones/tzdb/). Par défaut, renvoie l'heure UTC.                                                                                                                                                                                                                            |
| `locale`   | Chaîne                                                                                    | Les 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](https://www.oracle.com/java/technologies/javase/java8locales.html).                                                                                                                                           |

## fromjson

Convertit une chaîne JSON en un objet.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set obj ='{ "name":"Brian","role":"Owner" }' %}
  {{ obj|fromjson }}
  ```

  ```text sortie rendue.txt theme={null}
  {role=Owner, name=Brian}
  ```
</CodeGroup>

## geo\_distance

Calcule la distance ellipsoïdale 2D entre deux points sur la Terre.

<CodeGroup>
  ```text hubl.txt theme={null}
  <!-- 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
  ```

  ```text sortie rendue.txt theme={null}
  861.1655563461395 MI
  ```
</CodeGroup>

## groupby

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

<CodeGroup>
  ```html example.html theme={null}
  <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>
  ```

  ```text sortie rendue.txt theme={null}
  <ul>
  <li>
  Blog author 1
  <ul>
  <li>Post by Blog author 1</li>
  <li></li>
  <li>Post by Blog author 1</li>
  <li></li>
  <li>Post by Blog author 1</li>
  <li></li>
  </ul>
  </li>
  <li>
  Blog author 2
  <ul>
  <li>Post by Blog author 2</li>
  <li></li>
  <li>Post by Blog author 2</li>
  <li></li>
  <li>Post by Blog author 2</li>
  <li></li>
  </ul>
  </li>
  <li>
  Blog author 3
  <ul>
  <li>Post by Blog author 3</li>
  <li></li>
  <li>Post by Blog author 3</li>
  <li></li>
  <li>Post by Blog author 3</li>
  <li></li>
  </ul>
  </li>
  </ul>
  ```
</CodeGroup>

| Paramètre   | Description                                 |
| ----------- | ------------------------------------------- |
| `attribute` | L'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.

<CodeGroup>
  ```html example.html theme={null}
  <pre>
  {% set var = "string to indent" %}
  {{ var|indent(2, true) }}
  </pre>
  ```

  ```text sortie rendue.txt theme={null}
  string to indent
  ```
</CodeGroup>

| Paramètre      | Type    | Description                                                                          |
| -------------- | ------- | ------------------------------------------------------------------------------------ |
| `width`        | Nombre  | La quantité d'espaces blancs à appliquer.                                            |
| `indent-first` | Booléen | Lorsque 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set string="25" %}
  {{ string|int + 17 }}
  ```

  ```text sortie rendue.txt theme={null}
  42
  ```
</CodeGroup>

| Paramètre | Type   | Description                                                  |
| --------- | ------ | ------------------------------------------------------------ |
| `default` | Nombre | Nombre 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ [1, 2, 3]|intersect([2, 3, 4, 5]) }}
  ```

  ```text sortie rendue.txt theme={null}
  [2, 3]
  ```
</CodeGroup>

| Paramètre | Type    | Description                                                                                   |
| --------- | ------- | --------------------------------------------------------------------------------------------- |
| `list`    | Tableau | La 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set ip = "1.0.0.1" %}
  {% if ip|ipaddr %}
  The string is a valid IP address
  {% endif %}
  ```

  ```text sortie rendue.txt theme={null}
  The string is a valid IP address
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_list = [1, 2, 3] %}
  {% set sep = "---" %}
  {{ my_list|join }}
  {{ my_list|join("|") }}
  {{ my_list|join(sep) }}
  ```

  ```text sortie rendue.txt theme={null}
  123 1|2|3 1---2---3
  ```
</CodeGroup>

| Paramètre   | Type          | Description                                                   |
| ----------- | ------------- | ------------------------------------------------------------- |
| `delimiter` | Chaîne        | Le délimiteur à utiliser lors de la concaténation de chaînes. |
| `attribute` | Variable HubL | Attribut de valeur à joindre à un objet.                      |

## last

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_sequence = ["Item 1", "Item 2", "Item 3"] %}
  {% my_sequence|last %}
  ```

  ```text sortie rendue.txt theme={null}
  Item 3
  ```
</CodeGroup>

## length

Renvoie le nombre d'éléments d'une séquence ou d'un mappage.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set services = ["Web design", "SEO", "Inbound Marketing", "PPC"] %}
  {{ services|length }}
  ```

  ```text sortie rendue.txt theme={null}
  4
  ```
</CodeGroup>

## 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 `[ ]`.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% 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 }}
  ```

  ```text sortie rendue.txt theme={null}
  [1, 2, t, h, r, e, e, four]
  ```
</CodeGroup>

## log

Calcule le logarithme naturel d'un nombre.

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ 10|log }}
  {{ 65536|log(2) }}
  ```

  ```text sortie rendue.txt theme={null}
  2.302585092994046 16.0
  ```
</CodeGroup>

| Paramètre | Type   | Description                                   |
| --------- | ------ | --------------------------------------------- |
| `base`    | Nombre | La base à utiliser pour le calcul du journal. |

## lower

Convertit toutes les lettres d'une valeur en minuscules.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set text="Text to MAKE LowercaSe" %}
  {{ text|lower }}
  ```

  ```text sortie rendue.txt theme={null}
  text to make lowercase
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {# 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")}}
  ```

  ```text sortie rendue.txt theme={null}
  Apply a filter to a sequence: [ITEM1, ITEM2, ITEM3]
  Look up an attribute: [DRAFT]
  ```
</CodeGroup>

| Paramètre | Type   | Description                                |
| --------- | ------ | ------------------------------------------ |
| `filter`  | Chaîne | Filtre à appliquer à la séquence d'objets. |

## md5

Calcule le [hachage md5](https://en.wikipedia.org/wiki/MD5) de l'objet donné

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ content.absolute_url|md5 }}
  ```

  ```text sortie rendue.txt theme={null}
  923adb4ce05a4c6342c04c80be88d15e
  ```
</CodeGroup>

## minus\_time

Soustrait un nombre d'heures à partir d'un objet datetime.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set date = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %}
  {{ date }}
  {{ date|minus_time(2, "months") }}
  ```

  ```text sortie rendue.txt theme={null}
  2018-07-14 14:31:30 2018-05-14 14:31:30
  ```
</CodeGroup>

| Paramètre  | Type   | Description                                                                                                                                                                                  |
| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `diff`     | Nombre | Montant à soustraire.                                                                                                                                                                        |
| `timeunit` | Chaîne | Les 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 \*](/docs/cms/reference/hubl/operators-and-expression-tests).

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set n = 20 %}
  {{ n|multiply(3) }}
  ```

  ```text sortie rendue.txt theme={null}
  60
  ```
</CodeGroup>

## plus\_time

Ajoute un nombre d'heures à un objet datetime.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set date = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %}
  {{ date }}
  {{ date|plus_time(5, "days") }}
  ```

  ```text sortie rendue.txt theme={null}
  2018-07-14 14:31:30 2018-07-19 14:31:30
  ```
</CodeGroup>

| Paramètre  | Type   | Description                                                                                                                                                                                  |
| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `diff`     | Nombre | Montant à soustraire.                                                                                                                                                                        |
| `timeunit` | Chaîne | Les 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set this_var ="Variable that I want to debug" %}
  {{ this_var|pprint }}
  ```

  ```text sortie rendue.txt theme={null}
  (String: Variable that I want to debug)
  ```
</CodeGroup>

## random

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

<Warning>
  ### Remarque:

  si vous utilisez ce filtre, la page sera [pré-rendue](/docs/cms/best-practices/testing-staging-performance/prerendering) périodiquement et non pas chaque fois que le contenu de la page est mis à jour. Cela signifie que le contenu filtré ne sera <u>pas</u> 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.
</Warning>

<CodeGroup>
  ```text hubl.txt theme={null}
  {% for content in contents|random %}
  <div class="post-item">Post item markup</div>
  {% endfor %}
  ```

  ```text sortie rendue.txt theme={null}
  <div class="post-item">Random post</div>
  ```
</CodeGroup>

## 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](https://github.com/google/re2/wiki/Syntax).

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ "contact-us-2"|regex_replace("[^a-zA-Z]", "") }}
  ```

  ```text sortie rendue.txt theme={null}
  contactus
  ```
</CodeGroup>

## reject

Filtre une séquence d'objets en appliquant un [test d'expression](/docs/cms/reference/hubl/operators-and-expression-tests) à l'objet et en rejetant ceux dont le test a réussi.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set some_numbers = [10, 12, 13, 3, 5, 17, 22] %}
  {{ some_numbers|reject("even") }}
  ```

  ```text sortie rendue.txt theme={null}
  [13, 3, 5, 17]
  ```
</CodeGroup>

| Paramètre  | Type   | Description                                                                                                               |
| ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------- |
| `exp_text` | Chaîne | Le nom du [test d'expression](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests) à 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.

<CodeGroup>
  ```html example.html theme={null}
  {% 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 %}
  ```

  ```html example.html theme={null}
  <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>
  ```
</CodeGroup>

| Paramètre        | Type   | Description                                                                                                               |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------- |
| `attribute_name` | Chaîne | Indique l'attribut à sélectionner. Vous pouvez accéder aux attributs imbriqués en utilisant la notation par points.       |
| `exp_test`       | Chaîne | Le nom du [test d'expression](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests) à appliquer à l'objet. |

## render

Rend les chaînes contenant HubL au début afin que la sortie puisse être transmise dans d'autres filtres.

<CodeGroup>
  ```html example.html theme={null}
  {{ personalization_token("contact.lastname", "default value")|render|lower }}
  ```

  ```html example.html theme={null}
  mclaren
  ```
</CodeGroup>

## replace

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

<CodeGroup>
  ```html example.html theme={null}
  {% if topic %}
  <h3>Posts about {{ page_meta.html_title|replace("Blog | ", "") }}</h3>
  {% endif %}
  ```

  ```html example.html theme={null}
  <h3>Posts about topic name</h3>
  ```
</CodeGroup>

| Paramètre | Type   | Description                                                                             |
| --------- | ------ | --------------------------------------------------------------------------------------- |
| `old`     | Chaîne | La sous-chaîne qui doit être remplacée.                                                 |
| `new`     | Chaîne | Chaîne de remplacement.                                                                 |
| `count`   | Nombre | Si 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()](/docs/cms/reference/hubl/functions#reverse)

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] %}
  {% for num in nums|reverse %}
  {{ num }}
  {% endfor %}
  ```

  ```text sortie rendue.txt theme={null}
  10 9 8 7 6 5 4 3 2 1
  ```
</CodeGroup>

## root

Calcule la racine carrée d'une valeur

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ 16|root }}
  {{ 625|root(4) }}
  ```

  ```text sortie rendue.txt theme={null}
  4 5
  ```
</CodeGroup>

| Paramètre  | Type   | Description                                |
| ---------- | ------ | ------------------------------------------ |
| `nth_root` | Nombre | La racine nième à utiliser pour le calcul. |

## round

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ 52.5|round }}
  {{ 52.5|round(0, "floor") }}
  ```

  ```text sortie rendue.txt theme={null}
  53 52
  ```
</CodeGroup>

| Paramètre         | Type                                         | Description                                                                                                                                 |
| ----------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `precision`       | Nombre                                       | Indique 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ content.post_list_content|safe }}
  ```

  ```html example.html theme={null}
  <p>HTML post content that is not escaped.</p>
  ```
</CodeGroup>

## 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 <u>tout</u> le HTML. Tout le contenu est également exécuté via `escape_jinjava` pour empêcher l'interprétation imbriquée.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set escape_string = "This <br> <div>markup is <img src='test.com/image'> <span>printed</span> as text.</div>" %}
  {{ escape_string|sanitize_html("IMAGES") }}
  ```

  ```html example.html theme={null}
  This  markup is <img src="test.com/image"> printed as text.</div>
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set some_numbers = [10, 12, 13, 3, 5, 17, 22] %}
  {{ some_numbers|select("even") }}
  ```

  ```html example.html theme={null}
  [10, 12, 22]
  ```
</CodeGroup>

| Paramètre  | Type   | Description                                 |
| ---------- | ------ | ------------------------------------------- |
| `exp_text` | Chaîne | Le 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.

<CodeGroup>
  ```html example.html theme={null}
  {% 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 %}
  ```

  ```html example.html theme={null}
  <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>
  ```
</CodeGroup>

| Paramètre        | Type   | Description                                                                                                               |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------- |
| `attribute_name` | Chaîne | L'attribut à tester. Vous pouvez accéder aux attributs imbriqués en utilisant la notation par points.                     |
| `exp_test`       | Chaîne | Le nom du [test d'expression](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests) à appliquer à l'objet. |
| `val`            | Chaîne | Valeur à 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.

<Warning>
  ### Remarque:

  si vous utilisez ce filtre, la page sera [pré-rendue](/docs/cms/best-practices/testing-staging-performance/prerendering) périodiquement et non pas chaque fois que le contenu de la page est mis à jour. Cela signifie que le contenu filtré ne sera <u>pas</u> 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.
</Warning>

<CodeGroup>
  ```html example.html theme={null}
  {% for content in contents|shuffle %}
  <div class="post-item">Markup of each post</div>
  {% endfor %}
  ```

  ```html example.html theme={null}
  <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>
  ```
</CodeGroup>

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

<CodeGroup>
  ```html example.html theme={null}
  {% 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>
  ```

  ```html example.html theme={null}
  <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></li>
  </ul>
  </div>
  ```
</CodeGroup>

| Paramètre | Type   | Description                                                        |
| --------- | ------ | ------------------------------------------------------------------ |
| `slices`  | Nombre | Combien d'éléments seront découpés.                                |
| `filler`  | Chaîne | Indique 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.

<CodeGroup>
  ```html example.html theme={null}
  {% set my_posts = blog_recent_posts("default", limit=5) %}

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

  {% endfor %}
  ```

  ```html example.html theme={null}
  A post<br />
  B post<br />
  C post<br />
  D post<br />
  E post<br />
  ```
</CodeGroup>

| Paramètre        | Type    | Description                                                       |
| ---------------- | ------- | ----------------------------------------------------------------- |
| `reverse`        | Booléen | À définir sur `true` pour inverser l'ordre de tri.                |
| `case_sensitive` | Booléen | À définir sur `true` pour rendre le tri sensible à la casse.      |
| `attribute`      | Chaîne  | Attribut à 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.

<CodeGroup>
  ```html example.html theme={null}
  {% 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>
  ```

  ```html example.html theme={null}
  <ul>
  <li>Mark</li>
  <li>Irving</li>
  <li>Helly</li>
  <li>Dylan; Milchick; Harmony;</li>
  </ul>
  ```
</CodeGroup>

| Paramètre               | Type   | Description                                                                                                  |
| ----------------------- | ------ | ------------------------------------------------------------------------------------------------------------ |
| `character_to_split_by` | Chaîne | Indique le séparateur avec lequel la variable doit être divisée.                                             |
| `number_of_splits`      | Nombre | Dé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).

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set number_to_string = 45 %}
  {{ number_to_string|string|pprint }}
  ```

  ```text sortie rendue.txt theme={null}
  (String: 45)
  ```
</CodeGroup>

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

<CodeGroup>
  ```html example.html theme={null}
  {% set some_html = "<div><strong>Some text</strong></div>" %}
  {{ some_html|striptags }}
  ```

  ```html example.html theme={null}
  some text
  ```
</CodeGroup>

## strtodate

Convertit une chaîne de date et un format de date en un objet de date.

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ '3/3/21'|strtodate('M/d/yy') }}
  ```

  ```text sortie rendue.txt theme={null}
  2021-03-03 00:00:00
  ```
</CodeGroup>

| Paramètre    | Type   | Description                                                                                                |
| ------------ | ------ | ---------------------------------------------------------------------------------------------------------- |
| `dateFormat` | Chaîne | Le [format de date](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) à utiliser. |

## strtotime

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ")|unixtimestamp }}
  ```

  ```text sortie rendue.txt theme={null}
  1531558890000
  ```
</CodeGroup>

| Paramètre        | Type   | Description                                                                                                           |
| ---------------- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| `datetimeFormat` | Chaîne | Le [format de date et d'heure](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) à 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  // 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") }}
  ```

  ```text sortie rendue.txt theme={null}
  15 Total: 30
  ```
</CodeGroup>

| Paramètre           | Type   | Description                                                       |
| ------------------- | ------ | ----------------------------------------------------------------- |
| `attribute`         | Chaîne | Attribut à additionner.                                           |
| `return_if_nothing` | Chaîne | Valeur à 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ [1, 2, 3]|symmetric_difference([2, 3, 4, 5]) }}
  ```

  ```text sortie rendue.txt theme={null}
  [1, 4, 5]
  ```
</CodeGroup>

| Paramètre | Type    | Description                                                                                 |
| --------- | ------- | ------------------------------------------------------------------------------------------- |
| `list`    | Tableau | La 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).

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_title="my title should be title case" %}
  {{ my_title|title }}
  ```

  ```text sortie rendue.txt theme={null}
  My Title Should Be Title Case
  ```
</CodeGroup>

## tojson

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% for content in contents %}
  {{ content.blog_post_author|tojson }}
  {% endfor %}
  ```

  ```json example.json theme={null}
  {
  "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"
  }
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ " remove whitespace " }}
  {{ " remove whitespace "|trim }}
  ```

  ```text sortie rendue.txt theme={null}
  remove whitespace remove whitespace
  ```
</CodeGroup>

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

<Warning>
  **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.
</Warning>

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ "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, "..........") }}
  ```

  ```text sortie rendue.txt theme={null}
  I only want to show the first sente..........
  ```
</CodeGroup>

| Paramètre              | Type    | Description                                                                                      |
| ---------------------- | ------- | ------------------------------------------------------------------------------------------------ |
| `number_of_characters` | Nombre  | Nombre de caractères autorisés avant que le texte ne soit tronqué. La valeur par défaut est 255. |
| `breakword`            | Booléen | Si `true`, le filtre coupe le texte en longueur. Si `false`, le dernier mot est supprimé.        |
| `end`                  | Chaîne  | Remplace 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.

<Warning>
  **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.
</Warning>

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

  ```html example.html theme={null}
  <p>I want to truncate this..</p>
  ```
</CodeGroup>

| Paramètre              | Type    | Description                                                                                                                                                                                                                                                              |
| ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `number_of_characters` | Nombre  | Nombre de caractères autorisés avant que le texte ne soit tronqué. La valeur par défaut est 255.                                                                                                                                                                         |
| `end`                  | Chaîne  | Remplace les caractères de fin par « ... » par défaut après la troncature.                                                                                                                                                                                               |
| `breakword`            | Booléen | Valeur 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set escape_string = "me & you" %}
  {{ escape_string|unescape_html }}
  ```

  ```text sortie rendue.txt theme={null}
  me & you
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ [1, 2, 3]|union([2, 3, 4, 5]) }}
  ```

  ```text sortie rendue.txt theme={null}
  [1, 2, 3, 4, 5]
  ```
</CodeGroup>

| Paramètre | Type    | Description                                       |
| --------- | ------- | ------------------------------------------------- |
| `list`    | Tableau | La 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.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set my_sequence = ["one", "one", "two", "three" ] %}
  {{ my_sequence|unique }}
  ```

  ```text sortie rendue.txt theme={null}
  [one, two, three]
  ```
</CodeGroup>

| Paramètre | Type   | Description                                                                          |
| --------- | ------ | ------------------------------------------------------------------------------------ |
| `attr`    | Chaîne | Indique l'attribut qui doit être utilisé lors du filtrage d'une valeur dictionnaire. |

## unixtimestamp

Ce filtre convertit un objet datetime en un horodatage unix.

<Warning>
  ### Remarque:

  vous devez <u>uniquement</u> 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.
</Warning>

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ local_dt }}
  {{ local_dt|unixtimestamp }}
  ```

  ```text sortie rendue.txt theme={null}
  2017-01-30 17:11:44 1485814304000
  ```
</CodeGroup>

## upper

Convertit toutes les lettres d'une valeur en majuscules.

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set text="text to make uppercase" %}
  {{ text|upper }}
  ```

  ```text sortie rendue.txt theme={null}
  TEXT TO MAKE UPPERCASE
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set encode_value="Escape & URL encode this string" %}
  {{ encode_value|urlencode }}
  ```

  ```text sortie rendue.txt theme={null}
  Escape+%26+URL+encode+this+string
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% set decode_value="Escape+%26+URL+decode+this+string" %}
  {{ decode_value|urldecode }}
  ```

  ```text sortie rendue.txt theme={null}
  Escape & URL decode this string
  ```
</CodeGroup>

## 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ètre         | Type    | Description                                                         |
| ----------------- | ------- | ------------------------------------------------------------------- |
| `shorten_text`    | Nombre  | Nombre entier qui raccourcira les URL au nombre désiré.             |
| `no_follow`       | Booléen | Lorsqu'il est défini sur `true`, le lien inclura `rel="no follow"`. |
| `target="_blank"` | Chaîne  | Indique si le lien s'ouvrira dans un nouvel onglet.                 |

<CodeGroup>
  ```text hubl.txt theme={null}
  {{ "http://hubspot.com/"|urlize }}
  {{ "http://hubspot.com/"|urlize(10,true) }}
  {{ "http://hubspot.com/"|urlize("",true) }}
  {{ "http://hubspot.com/"|urlize("",false,target="_blank") }}
  ```

  ```html example.html theme={null}
  <a href="https://developers.hubspot.fr/docs//hubspot.com/">http://hubspot.com/</a>
  <a href="https://developers.hubspot.fr/docs//hubspot.com/" rel="nofollow">http://...</a>
  <a href="https://developers.hubspot.fr/docs//hubspot.com/" rel="nofollow">http://hubspot.com/</a>
  <a href="https://developers.hubspot.fr/docs//hubspot.com/" target="_blank">http://hubspot.com/</a>
  ```
</CodeGroup>

## wordcount

Compte le nombre de mots dans une chaîne.

<Warning>
  Si la chaîne contient du HTML, utilisez le filtre `striptags` pour obtenir un compte précis.
</Warning>

<CodeGroup>
  ```text hubl.txt theme={null}
  {%  set count_words = "Count the number of words in this variable"  %}
  {{ count_words|wordcount }}
  ```

  ```text sortie rendue.txt theme={null}
  8
  ```
</CodeGroup>

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

<CodeGroup>
  ```text hubl.txt theme={null}
  {% 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) }}
  ```

  ```text sortie rendue.txt theme={null}
  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.
  ```
</CodeGroup>

| Paramètre         | Description                                                |
| ----------------- | ---------------------------------------------------------- |
| `character_count` | Nombre 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.

<CodeGroup>
  ```html example.html theme={null}
  {% set html_attributes = {"class": "bold", "id": "sidebar"} %}
  <div {{ html_attributes|xmlattr }}></div>
  ```

  ```html example.html theme={null}
  <div class="bold" id="sidebar"></div>
  ```
</CodeGroup>

| Paramètre   | Type    | Description                                                   |
| ----------- | ------- | ------------------------------------------------------------- |
| `autospace` | Booléen | À définir sur `true` pour ajouter un espace devant l'élément. |
