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

# Filtros HubL

> Lista de filtros do HubL e exemplos para desenvolvedores do HubSpot CMS.

Os filtros afetam a saída final do HubL. Eles podem ser aplicados a várias instruções e expressões do HubL para alterar a marcação do modelo emitido pelo servidor.

A sintaxe básica de um filtro é `|filtername`. O filtro é adicionado diretamente após a instrução ou a expressão, dentro dos seus delimitadores. Alguns filtros têm parâmetros adicionais que podem ser adicionados entre parênteses. A sintaxe básica de um filtro com uma string, um número e um parâmetro booleano é: `|filtername("stringParameter", 10, true)`. Observe que os parâmetros das strings devem ser escritos entre aspas. Observe também que os filtros do HubL têm alias que podem ser usados da mesma forma que o filtro principal.

O artigo a seguir contém todos os filtros do HubL suportados.

<Warning>
  ### Observação:

  Você pode aplicar os filtros do HubL a [tokens de personalização](https://knowledge.hubspot.com/website-pages/personalize-your-content), como tokens de contato e da empresa, nas páginas do CMS e do blog do HubSpot, mas <u>não</u> nos e-mails.
</Warning>

## abs

Calcula o valor absoluto de um número. Você pode usar essa Filtrar para garantir que um número seja positivo.

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

  ```text saída renderizada.txt theme={null}
  53
  ```
</CodeGroup>

## add

Adiciona um valor numérico a outro valor numérico. Este filtro funciona da mesma forma que o [operador +](/cms/reference/hubl/operators-and-expression-tests#math). O parâmetro entre parênteses é o adendo que você está combinando com o seu valor numérico inicial.

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

  ```text saída renderizada.txt theme={null}
  53
  ```
</CodeGroup>

## attr

Renderiza o atributo de um dicionário. Este filtro é o equivalente a imprimir uma variável que existe dentro de um dicionário, tal como `content.absolute_url`.

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

  ```text saída renderizada.txt theme={null}
  https://developers.hubspot.com/docs/cms/hubl/filters
  ```
</CodeGroup>

| Descrição        | Parâmetro                           |
| ---------------- | ----------------------------------- |
| `attribute_name` | Especifica qual o atributo imprimir |

## lote

Agrupa itens dentro de uma sequência.

No exemplo abaixo, há uma variável contendo uma sequência de tipos de frutas. O filtro `batch` é aplicado a um loop que itera pela sequência. O loop agrupado é executado três vezes para imprimir três tipos de fruta por linha, antes de o loop externo ser executado novamente. Observe na saída final que existem apenas cinco tipos de fruta: o item final é substituído por `&nbsp;` (o segundo parâmetro).

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

| Parâmetro   | Tipo   | Descrição                                                         |
| ----------- | ------ | ----------------------------------------------------------------- |
| `linecount` | Número | O número de itens a serem incluídos no lote.                      |
| `fill_with` | String | Especifica o que incluir para preencher quaisquer itens ausentes. |

## between\_times

Calcula o tempo entre dois objetos de data e hora na unidade de tempo especificada.

<Warning>
  ### Observação:

  Você deve usar este filtro <u>somente</u> com variáveis que retornam uma data. A partir de 30 de setembro de 2024, este filtro não retornará mais a data atual quando um valor nulo for passado. Após essa data, um valor nulo no filtro retornará 30 de setembro de 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 saída renderizada.txt theme={null}
  6
  ```
</CodeGroup>

| Parâmetro  | Tipo                  | Descrição                                                                                                                                                                                    |
| ---------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `end`      | objeto de data e hora | O objeto de data e hora final.                                                                                                                                                               |
| `timeunit` | String                | As unidades de tempo válidas são `nanos`, `micros`, `millis`, `seconds`, `minutes`, `hours`, `half_days`, `days`, `weeks`, `months`, `years`, `decades`, `centuries`, `millennia`, e `eras`. |

## bool

Converte um valor de string de texto em booleano.

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

  ```text saída renderizada.txt theme={null}
  hello world
  ```
</CodeGroup>

## capitalizar

Coloca em maiúscula a primeira letra de um valor de variável. O primeiro caractere será maiúsculo, todas as outras letras serão minúsculas. As palavras subsequentes separadas por espaços ou hifens não terão a primeira letra em maiúscula.

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

  ```text saída renderizada.txt theme={null}
  The first letter of a sentence should always be capitalized.
  ```
</CodeGroup>

## centralizar

Centraliza o texto dentro de um determinado comprimento de campo usando espaços em branco. Este filtro não é recomendado nem particularmente útil, pois o compilador HTML do HubSpot removerá automaticamente os espaços em branco; no entanto, ele foi incluído aqui por uma questão de abrangência.

O exemplo abaixo mostra esse filtro sendo aplicado a uma variável em uma tag pre, para que o espaço em branco não seja removido.

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

| Parâmetro | Tipo   | Descrição                                                              |
| --------- | ------ | ---------------------------------------------------------------------- |
| `width`   | Número | Especifica o comprimento do espaço em branco para centralizar o texto. |

## convert\_rgb

Converte um valor HEX para uma string RGB. É útil se você precisar converter variáveis de cor para RGB para usá-las com uma declaração CSS RGBA. No exemplo abaixo, o valor definido por um módulo de cor é convertido para um valor RGB e usado em uma declaração CSS RGBA.

<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

Remove uma string de um valor. Este filtro pode ser usado para combinar e cortar uma parte específica de uma string. O parâmetro especifica a parte da string que deve ser removida. O exemplo abaixo remove o espaço e a palavra "world" do valor da variável original.

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

  ```text saída renderizada.txt theme={null}
  Hello.
  ```
</CodeGroup>

| Parâmetro           | Tipo   | Descrição                               |
| ------------------- | ------ | --------------------------------------- |
| `characters_to_cut` | String | A parte da corda que deve ser removida. |

## datetimeformat (descontinuado)

<Warning>
  **Observação**: este filtro foi [descontinuado](/cms/versions-deprecations/deprecated/hubl/filters-functions#datetimeformat-function). Em vez disso, você deve usar o filtro [format\_datetime](#format_datetime), que usa uma sintaxe mais padronizada.
</Warning>

## default

Se o valor não estiver definido, retornará o primeiro parâmetro; caso contrário, o valor da variável será impresso. Se você quiser usar o padrão com variáveis que avaliam como falso, precisará definir o segundo parâmetro como `true`verdadeiro.

O primeiro exemplo abaixo imprimiria a mensagem se a variável não estivesse definida. O segundo exemplo aplica o filtro a uma string vazia, que não é indefinida, mas imprime uma mensagem devido ao segundo parâmetro.

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

  ```text saída renderizada.txt theme={null}
  my_variable is not defined the string was empty
  ```
</CodeGroup>

| Parâmetro       | Tipo     | Descrição                                                                                                                              |
| --------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `default_value` | String   | O valor a ser retornado se a variável for indefinida. Se a variável estiver definida, o valor da variável será retornado em seu lugar. |
| `truthy`        | Booleano | Definir para `true` para usar com variáveis que avaliam `false`.                                                                       |

## dictsort

Classifica um dicionário e produz pares (chave, valor). Os dicionários não são classificados por padrão, mas você pode imprimir um dicionário classificado por chave ou valor. O primeiro parâmetro é um booleano para determinar se a classificação diferencia ou não maiúsculas de minúsculas. O segundo parâmetro determina se o dicionário deve ser classificado por chave ou por valor. O exemplo abaixo imprime um dicionário de contatos classificado, com todos os detalhes conhecidos sobre o contato.

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

  ```text saída renderizada.txt theme={null}
  A sorted contact dictionary
  ```
</CodeGroup>

| Parâmetro        | Tipo                 | Descrição                                                         |
| ---------------- | -------------------- | ----------------------------------------------------------------- |
| `case_sensitive` | Booleano             | Determina se a classificação diferencia maiúsculas de minúsculas. |
| `sort_by`        | `"key"` \| `"value"` | Determina se deve classificar por `key` ou `value`.               |

## difference

Retorna a diferença de dois conjuntos ou listas. A lista retornada pelo filtro contém todos os elementos únicos que estão na primeira lista, mas não na segunda.

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

  ```text saída renderizada.txt theme={null}
  [1]
  ```
</CodeGroup>

| Parâmetro | Tipo   | Descrição                                                                                 |
| --------- | ------ | ----------------------------------------------------------------------------------------- |
| `list`    | Matriz | A segunda lista para comparação e uso na busca de diferenças em relação à lista original. |

## divide

Divide o valor atual por um divisor. O parâmetro passado é o divisor. Este filtro é uma alternativa ao operador /.

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

  ```text saída renderizada.txt theme={null}
  53
  ```
</CodeGroup>

| Parâmetro | Tipo   | Descrição                              |
| --------- | ------ | -------------------------------------- |
| `divisor` | Número | O número pelo qual dividir a variável. |

## divisible

Uma alternativa para o teste de expressão `divisibleby`, este filtro será avaliado como verdadeiro se o valor for divisível pelo número fornecido.

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

  ```text saída renderizada.txt theme={null}
  The number is divisible by 2
  ```
</CodeGroup>

| Parâmetro | Tipo   | Descrição                                               |
| --------- | ------ | ------------------------------------------------------- |
| `divisor` | Número | O número a ser usado ao avaliar se o valor é divisível. |

## escape\_html

Limpa o conteúdo de uma entrada HTML. Aceita uma string e converte os caracteres `&`, `<`, `>`, `‘`, `”` e `escape_jinjava` em sequências seguras para HTML. Use esse filtro para variáveis HubL usadas em HTML, mas que não devem permitir nenhum 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

Limpa o conteúdo de uma entrada de atributo de HTML. Aceita uma string e converte os caracteres `&`, `<`, `‘`, `”` e `escape_jinjava` em sequências seguras para HTML. Use esse filtro para variáveis HubL que estão sendo adicionadas aos atributos HTML.

Observe que, ao limpar valores de atributos que aceitam URLs, como `href`, você deve usar o filtro `escape_url`.

<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

Converte os caracteres `{` e `}` em strings para sequências seguras para Jinjava. Use este filtro se você precisar exibir texto que possa conter tais caracteres em Jinjava.

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

  ```text saída renderizada.txt theme={null}
  {{This markup is printed as text}}
  ```
</CodeGroup>

## escape\_js

Limpa as strings, incluindo `escape_jinjava`, para que possam ser inseridas em segurança em uma declaração de variável JavaScript. Use esse filtro para variáveis HubL usadas dentro de elementos 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 saída renderizada.txt theme={null}
  \tThey said \x27This string can safely be inserted into JavaScript.\x27
  ```
</CodeGroup>

## escape\_url

Escapa o conteúdo de uma entrada de URL, aplicando protocolos especificados, removendo caracteres inválidos e perigosos e codificando entidades HTML. Retorna em branco se um URL for válido. Use esse filtro para variáveis HubL usadas em atributos HTML que devem ser URLs válidos.

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

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

## escapejson

Limpa as strings para que possam ser usadas como valores 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 saída renderizada.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

Formata um valor numérico em um tamanho de arquivo legível por humanos (por exemplo, 13 kB, 4,1 MB, 102 bytes, etc.). Por padrão, prefixos decimais são usados (por exemplo, MB e GB), mas você pode definir o `binary` parâmetro para `true` usar prefixos binários como Mebi (MiB) e Gibi (GiB).

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

  ```text saída renderizada.txt theme={null}
  9.8 KiB
  ```
</CodeGroup>

| Parâmetro | Tipo     | Descrição                                                                            |
| --------- | -------- | ------------------------------------------------------------------------------------ |
| `binary`  | Booleano | Se definido como `true`, prefixos binários são usados, como Mebi (MiB) e Gibi (GiB). |

## first

Retorna o primeiro item de uma sequência.

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

  ```text saída renderizada.txt theme={null}
  Item 1
  ```
</CodeGroup>

## float

Converte um valor em um número de ponto flutuante. Se a conversão não funcionar, ela retornará `0.0`. Você pode substituir esse padrão usando o primeiro parâmetro.

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

  ```text saída renderizada.txt theme={null}
  42.0
  ```
</CodeGroup>

| Parâmetro | Tipo   | Descrição                                             |
| --------- | ------ | ----------------------------------------------------- |
| `default` | Número | Inteiro a ser retornado se a conversão não funcionar. |

## forceescape

Aplica rigorosamente o escape de HTML. No ambiente HubSpot, não há um caso de uso para escape duplo; isso geralmente se comporta da mesma forma que o filtro de 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

Aplica formatação de string Python a um objeto. `%s` pode ser substituído por outra variável.

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

  ```text saída renderizada.txt theme={null}
  Hi Monty Python
  ```
</CodeGroup>

## format\_currency (descontinuado)

<Warning>
  **Observação**: este filtro foi [descontinuado](/cms/versions-deprecations/deprecated/hubl/filters-functions). Em vez disso, use o filtro [format\_currency\_value](#format_currency_value).
</Warning>

## format\_currency\_value

Formata um determinado número como uma moeda com base na moeda padrão do portal e no local passado como parâmetro. Substitui o filtro [format\_currency descontinuado](/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 saída renderizada.txt theme={null}
  €100.0
  ```
</CodeGroup>

| Parâmetro          | Tipo   | Descrição                                                                                                                                                                                                         |
| ------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `locale`           | String | [A tag de idioma local Java](https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html). O padrão é a página `locale.Format : ISO639LanguageCodeInLowercase-ISO3166CountryCodeInUppercase`. |
| `currency`         | String | o [código ISO 4217 alfabético](https://en.wikipedia.org/wiki/ISO_4217) da moeda, o padrão é a moeda padrão dos portais. Códigos numéricos não são aceitos.                                                        |
| `minDecimalDigits` | Número | O número mínimo de dígitos decimais a serem incluídos na saída. O padrão é o número padrão de dígitos decimais da moeda.                                                                                          |
| `maxDecimalDigits` | Número | O número máximo de dígitos decimais a serem incluídos na saída. O padrão é o número padrão de dígitos decimais da moeda.                                                                                          |

## format\_date

Formata o componente de data de um objeto de data.

<Warning>
  ### Observação:

  Você deve usar este filtro <u>somente</u> com variáveis que retornam uma data. A partir de 30 de setembro de 2024, este filtro não retornará mais a data atual quando um valor nulo for passado. Após essa data, um valor nulo no filtro retornará 30 de setembro de 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 saída renderizada.txt theme={null}
  November 28, 2022 02022.November.28 28.11.2022
  ```
</CodeGroup>

| Parâmetro  | Tipo                                                                    | Descrição                                                                                                                                                                         |
| ---------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `format`   | `'short'` \| `'medium'` \| `'long'` \| `'full'` \| padrão personalizado | O formato a ser usado. Pode ser um padrão personalizado seguindo [Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns).                           |
| `timeZone` | String                                                                  | O fuso horário da data de saída em [Formato IANA TZDB](https://data.iana.org/time-zones/tzdb/).                                                                                   |
| `locale`   | String                                                                  | O local a ser usado para formatos com reconhecimento de localidade. Consulte a [lista de locales com suporte](https://www.oracle.com/java/technologies/javase/java8locales.html). |

## format\_datetime

Formata os componentes de data e hora de um objeto de data. Este filtro substitui o filtro [datetimeformat](/cms/versions-deprecations/deprecated/hubl/filters-functions#datetimeformat-filter) descontinuado. Por padrão, retorna uma data e hora no fuso horário UTC -00:00.

<Warning>
  ### Observação:

  Você deve usar este filtro <u>somente</u> com variáveis que retornam uma data. A partir de 30 de setembro de 2024, este filtro não retornará mais a data atual quando um valor nulo for passado. Após essa data, um valor nulo no filtro retornará 30 de setembro de 2024.
</Warning>

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

  ```text saída renderizada.txt theme={null}
  12/31/69 7:00 PM
  ```
</CodeGroup>

| Parâmetro  | Tipo                                                                    | Descrição                                                                                                                                                                                                                                                                                                                                                    |
| ---------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `format`   | `'short'` \| `'medium'` \| `'long'` \| `'full'` \| padrão personalizado | O formato a ser usado. Pode ser um padrão personalizado a seguir [Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns). Ao usar `long` ou `full`, o registro de data e hora incluirá um Z para indicar o deslocamento zero do horário UTC (ou seja, `2:23:00 PM Z`). Para remover o designador Z, especifique um `timeZone`. |
| `timeZone` | String                                                                  | O fuso horário da data de saída em [Formato IANA TZDB](https://data.iana.org/time-zones/tzdb/). Por padrão, retorna a hora UTC.                                                                                                                                                                                                                              |
| `locale`   | String                                                                  | O local a ser usado para formatos com reconhecimento de localidade. Consulte a [lista de locales com suporte](https://www.oracle.com/java/technologies/javase/java8locales.html).                                                                                                                                                                            |

## format\_number

Formata um determinado número com base em uma localidade especificada. Inclui um segundo parâmetro que define a precisão decimal máxima.

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

  ```text saída renderizada.txt theme={null}
  1,000
  1 000,333
  1,000.33
  ```
</CodeGroup>

| Parâmetro          | Tipo   | Descrição                                                                                                                                           |
| ------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `locale`           | String | O locale a ser usado para formatação. Consulte a [lista de locales com suporte](https://www.oracle.com/java/technologies/javase/java8locales.html). |
| `maxDecimalDigits` | Número | O número máximo de dígitos decimais a serem incluídos na saída. Por padrão, será usado o número de dígitos decimais do valor de entrada.            |

## format\_time

Formata o componente de hora de um objeto de data.

<Warning>
  ### Observação:

  Você deve usar este filtro <u>somente</u> com variáveis que retornam uma data. A partir de 30 de setembro de 2024, este filtro não retornará mais a data atual quando um valor nulo for passado. Após essa data, um valor nulo no filtro retornará 30 de setembro de 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 saída renderizada.txt theme={null}
  3:25:06 PM Z 03:25 PM 10:25:44
  ```
</CodeGroup>

| Parâmetro  | Tipo                                                                    | Descrição                                                                                                                                                                                                                                                                                                                                                    |
| ---------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `format`   | `'short'` \| `'medium'` \| `'long'` \| `'full'` \| padrão personalizado | O formato a ser usado. Pode ser um padrão personalizado a seguir [Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns). Ao usar `long` ou `full`, o registro de data e hora incluirá um Z para indicar o deslocamento zero do horário UTC (ou seja, `2:23:00 PM Z`). Para remover o designador Z, especifique um `timeZone`. |
| `timeZone` | String                                                                  | O fuso horário da data de saída em [Formato IANA TZDB](https://data.iana.org/time-zones/tzdb/). Por padrão, retorna a hora UTC.                                                                                                                                                                                                                              |
| `locale`   | String                                                                  | O local a ser usado para formatos com reconhecimento de localidade. Consulte a [lista de locales com suporte](https://www.oracle.com/java/technologies/javase/java8locales.html).                                                                                                                                                                            |

## fromjson

Converte uma string JSON em um objeto.

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

  ```text saída renderizada.txt theme={null}
  {role=Owner, name=Brian}
  ```
</CodeGroup>

## geo\_distance

Calcula a distância elipsoidal 2D entre dois pontos na Terra.

<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 saída renderizada.txt theme={null}
  861.1655563461395 MI
  ```
</CodeGroup>

## groupby

Agrupa uma sequência de objetos por um atributo comum. O parâmetro define o atributo comum a ser agrupado.

<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 saída renderizada.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>

| Parâmetro   | Descrição                     |
| ----------- | ----------------------------- |
| `attribute` | O atributo pelo qual agrupar. |

## indent

Recua o texto dentro de um determinado comprimento de campo usando espaços em branco. Este filtro não é recomendado nem particularmente útil porque o compilador HTML do HubSpot removerá automaticamente os espaços em branco. No entanto, ele está incluído aqui por uma questão de abrangência. O exemplo abaixo mostra um filtro `indent` sendo aplicado a uma variável em uma tag `<pre>`, para que o espaço em branco não seja removido. O primeiro parâmetro controla a quantidade de espaços em branco e o segundo booleano alterna se a primeira linha deve ser recuada.

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

  ```text saída renderizada.txt theme={null}
  string to indent
  ```
</CodeGroup>

| Parâmetro      | Tipo     | Descrição                                                   |
| -------------- | -------- | ----------------------------------------------------------- |
| `width`        | Número   | A quantidade de espaço em branco a ser aplicada.            |
| `indent-first` | Booleano | Quando definido para `true`, a primeira linha será recuada. |

## int

Converte o valor em um inteiro. Se a conversão não funcionar, ela retornará `0`. Você pode substituir esse padrão usando o primeiro parâmetro.

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

  ```text saída renderizada.txt theme={null}
  42
  ```
</CodeGroup>

| Parâmetro | Tipo   | Descrição                                             |
| --------- | ------ | ----------------------------------------------------- |
| `default` | Número | Inteiro a ser retornado se a conversão não funcionar. |

## intersect

Retorna a interseção de dois conjuntos ou listas. A lista retornada pelo filtro contém todos os elementos únicos que estão contidos em ambas as listas.

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

  ```text saída renderizada.txt theme={null}
  [2, 3]
  ```
</CodeGroup>

| Parâmetro | Tipo      | Descrição                                                                                             |
| --------- | --------- | ----------------------------------------------------------------------------------------------------- |
| `list`    | Variedade | A segunda lista a ser comparada para uso na descoberta de onde a lista se cruza com a lista original. |

## ipaddr

Avalia para `true` se o valor for um endereço IPv4 ou IPv6 válido.

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

  ```text saída renderizada.txt theme={null}
  The string is a valid IP address
  ```
</CodeGroup>

## join

Retorna uma string que é a concatenação das strings na sequência. O separador entre os elementos é uma string vazia por padrão. Você pode defini-la com o parâmetro opcional. O segundo parâmetro pode ser usado para especificar um atributo para unir.

<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 saída renderizada.txt theme={null}
  123 1|2|3 1---2---3
  ```
</CodeGroup>

| Parâmetro   | Tipo          | Descrição                                        |
| ----------- | ------------- | ------------------------------------------------ |
| `delimiter` | String        | O delimitador a ser usado ao concatenar strings. |
| `attribute` | Variável HubL | Atributo de valor a ser unido em um objeto.      |

## last

Retorna o último item de uma sequência.

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

  ```text saída renderizada.txt theme={null}
  Item 3
  ```
</CodeGroup>

## length

Retorna o número de itens de uma sequência ou mapeamento.

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

  ```text saída renderizada.txt theme={null}
  4
  ```
</CodeGroup>

## list

Converte valores em uma lista. As strings serão retornadas como caracteres separados, a menos que estejam contidas em delimitadores de sequência de colchetes `[ ]`.

<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 saída renderizada.txt theme={null}
  [1, 2, t, h, r, e, e, four]
  ```
</CodeGroup>

## log

Calcula o logaritmo natural de um número.

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

  ```text saída renderizada.txt theme={null}
  2.302585092994046 16.0
  ```
</CodeGroup>

| Parâmetro | Tipo   | Descrição                                       |
| --------- | ------ | ----------------------------------------------- |
| `base`    | Número | A base a ser usada para o cálculo do logaritmo. |

## lower

Converte todas as letras de um valor em minúsculas.

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

  ```text saída renderizada.txt theme={null}
  text to make lowercase
  ```
</CodeGroup>

## map

Aplica um filtro em uma sequência de objetos ou procura um atributo. Isso é útil ao lidar com uma lista de objetos em que você está interessado apenas em um determinado valor.

Geralmente, é usado para mapear um atributo. Por exemplo, se você quiser usar a lógica condicional para verificar se um valor está presente em um determinado atributo de um dicionário. Como alternativa, você pode deixá-lo invocar um filtro, passando o nome do filtro e os argumentos depois.

<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 saída renderizada.txt theme={null}
  Apply a filter to a sequence: [ITEM1, ITEM2, ITEM3]
  Look up an attribute: [DRAFT]
  ```
</CodeGroup>

| Parâmetro | Tipo   | Descrição                                     |
| --------- | ------ | --------------------------------------------- |
| `filter`  | String | Filtro a ser aplicado à sequência de objetos. |

## md5

Calcula o [hash md5](https://en.wikipedia.org/wiki/MD5) do objeto fornecido.

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

  ```text saída renderizada.txt theme={null}
  923adb4ce05a4c6342c04c80be88d15e
  ```
</CodeGroup>

## minus\_time

Subtrai uma quantidade de tempo de um objeto 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 saída renderizada.txt theme={null}
  2018-07-14 14:31:30 2018-05-14 14:31:30
  ```
</CodeGroup>

| Parâmetro  | Tipo   | Descrição                                                                                                                                                                                    |
| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `diff`     | Número | Quantidade a subtrair.                                                                                                                                                                       |
| `timeunit` | String | As unidades de tempo válidas são `nanos`, `micros`, `millis`, `seconds`, `minutes`, `hours`, `half_days`, `days`, `weeks`, `months`, `years`, `decades`, `centuries`, `millennia`, e `eras`. |

## multiply

Multiplica um valor por um número. Funciona da mesma forma que o [operador \*](/cms/reference/hubl/operators-and-expression-tests).

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

  ```text saída renderizada.txt theme={null}
  60
  ```
</CodeGroup>

## plus\_time

Adiciona uma quantidade de tempo a um objeto de data/hora.

<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 saída renderizada.txt theme={null}
  2018-07-14 14:31:30 2018-07-19 14:31:30
  ```
</CodeGroup>

| Parâmetro  | Tipo   | Descrição                                                                                                                                                                                    |
| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `diff`     | Número | Quantidade a subtrair.                                                                                                                                                                       |
| `timeunit` | String | As unidades de tempo válidas são `nanos`, `micros`, `millis`, `seconds`, `minutes`, `hours`, `half_days`, `days`, `weeks`, `months`, `years`, `decades`, `centuries`, `millennia`, e `eras`. |

## pprint

Imprime uma variável. Imprime o tipo de variável e outras informações úteis para a depuração.

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

  ```text saída renderizada.txt theme={null}
  (String: Variable that I want to debug)
  ```
</CodeGroup>

## random

Retorna um item aleatório da sequência.

<Warning>
  ### Observação:

  Ao usar este filtro, a página será [pré-renderizada](/cms/best-practices/testing-staging-performance/prerendering) periodicamente, em vez de sempre que o conteúdo da página for atualizado. Isso significa que o conteúdo filtrado <u>não</u> será atualizado em cada recarga de página.

  Isso pode não ser um problema para certos tipos de conteúdo, como exibir uma lista aleatória de posts de blog. No entanto, se você precisar que o conteúdo seja alterado aleatoriamente em cada carregamento de página, use o JavaScript para randomizar o conteúdo do lado do cliente.
</Warning>

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

  ```text saída renderizada.txt theme={null}
  <div class="post-item">Random post</div>
  ```
</CodeGroup>

## regex\_replace

Procura um padrão regex e o substitui por uma sequência de caracteres. O primeiro argumento é um padrão regex no estilo RE2; o segundo é a string de substituição.

Saiba mais sobre [Sintaxe regex RE2](https://github.com/google/re2/wiki/Syntax).

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

  ```text saída renderizada.txt theme={null}
  contactus
  ```
</CodeGroup>

## reject

Filtra uma sequência de objetos aplicando um [teste de expressão](/cms/reference/hubl/operators-and-expression-tests) ao objeto e rejeitando aqueles que passaram com sucesso no teste.

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

  ```text saída renderizada.txt theme={null}
  [13, 3, 5, 17]
  ```
</CodeGroup>

| Parâmetro  | Tipo   | Descrição                                                                                                                   |
| ---------- | ------ | --------------------------------------------------------------------------------------------------------------------------- |
| `exp_text` | String | O nome do [teste de expressão](/cms/reference/hubl/operators-and-expression-tests#expression-tests) para aplicar ao objeto. |

## rejectattr

Filtra uma sequência de objetos aplicando um teste a um atributo de um objeto e rejeitando aqueles que passaram com sucesso no teste.

<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://br.developers.hubspot.com/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>

| Parâmetro        | Tipo   | Descrição                                                                                                                   |
| ---------------- | ------ | --------------------------------------------------------------------------------------------------------------------------- |
| `attribute_name` | String | Especifica o atributo a ser selecionado. Você pode acessar os atributos aninhados usando a notação de pontos.               |
| `exp_test`       | String | O nome do [teste de expressão](/cms/reference/hubl/operators-and-expression-tests#expression-tests) para aplicar ao objeto. |

## render

Renderiza rapidamente as strings que contêm HubL para que a saída possa ser passada para outros filtros.

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

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

## replace

Substitui todas as instâncias de uma substring por uma nova.

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

| Parâmetro | Tipo   | Descrição                                                          |
| --------- | ------ | ------------------------------------------------------------------ |
| `old`     | String | A substring que deve ser substituída.                              |
| `new`     | String | Corda de substituição.                                             |
| `count`   | Número | Se fornecido, apenas as ocorrências firstcount serão substituídas. |

## reverse

Inverte o objeto ou retorna um iterador que itera sobre ele no sentido inverso. Para reverter uma lista, use [.reverse()](/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 saída renderizada.txt theme={null}
  10 9 8 7 6 5 4 3 2 1
  ```
</CodeGroup>

## root

Calcula a raiz quadrada de um valor.

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

  ```text saída renderizada.txt theme={null}
  4 5
  ```
</CodeGroup>

| Parâmetro  | Tipo   | Descrição                            |
| ---------- | ------ | ------------------------------------ |
| `nth_root` | Número | A raiz n a ser usada para o cálculo. |

## round

Arredonda um número para uma precisão fornecida.

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

  ```text saída renderizada.txt theme={null}
  53 52
  ```
</CodeGroup>

| Parâmetro         | Tipo                                         | Descrição                                                                                                                                       |
| ----------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `precision`       | Número                                       | Especifica a precisão do arredondamento.                                                                                                        |
| `rounding_method` | `'common'` (padrão) \| `'ceil'` \| `'floor'` | As opções incluem `common` arredondar para cima ou para baixo (padrão); `ceil` sempre arredonda para cima; `floor` sempre arredonda para baixo. |

## safe

Marque um valor como seguro, o que significa que, em um ambiente com escape automático habilitado, esta variável não sofrerá escape.

<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

Limpa o conteúdo de uma entrada HTML para a saída de conteúdo de rich text. Aceita uma string e, em seguida, remove as tags HTML que não são permitidas. Use esse filtro para variáveis HubL usadas em HTML que devem permitir HTML seguro.

Você pode incluir os seguintes parâmetros para permitir tipos específicos de tags HTML: `FORMATTING`, `BLOCKS`, `STYLES`, `LINKS`, `TABLES`, `IMAGES`. Por exemplo, `sanitize_html(IMAGES)`.

Usar `sanitize_html` incluirá todos os parâmetros no filtro.

Você também pode incluir um parâmetro `STRIP` para remover <u>todo</u> o HTML. Todo o conteúdo também é executado por `escape_jinjava` para evitar interpretações aninhadas.

<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

Filtra uma sequência de objetos, aplicando um teste aos objetos e selecionando apenas aqueles que passaram com sucesso no teste.

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

| Parâmetro  | Tipo   | Descrição                                      |
| ---------- | ------ | ---------------------------------------------- |
| `exp_text` | String | O teste de expressão a ser aplicado ao objeto. |

## selectattr

Filtra uma sequência de objetos aplicando um teste a um atributo dos objetos e selecionando apenas aqueles cujo teste foi bem-sucedido.

<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://br.developers.hubspot.com/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>

| Parâmetro        | Tipo        | Descrição                                                                                                                   |
| ---------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------- |
| `attribute_name` | obrigatório | O atributo a ser testado. Você pode acessar os atributos aninhados usando a notação de pontos.                              |
| `exp_test`       | String      | O nome do [teste de expressão](/cms/reference/hubl/operators-and-expression-tests#expression-tests) para aplicar ao objeto. |
| `val`            | String      | Valor para testar.                                                                                                          |

## shuffle

Randomiza a ordem de iteração por uma sequência. O exemplo abaixo randomiza um loop padrão do blog.

<Warning>
  ### Observação:

  Ao usar este filtro, a página será [pré-renderizada](/cms/best-practices/testing-staging-performance/prerendering) periodicamente, em vez de sempre que o conteúdo da página for atualizado. Isso significa que o conteúdo filtrado <u>não</u> será atualizado em cada recarga de página.

  Isso pode não ser um problema para certos tipos de conteúdo, como exibir uma lista aleatória de posts de blog. No entanto, se você precisar que o conteúdo seja alterado aleatoriamente em cada carregamento de página, use o JavaScript para randomizar o conteúdo do lado do cliente.
</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

Divide um iterador e retorna uma lista de listas que contêm esses itens. O primeiro parâmetro especifica quantos itens serão divididos, e o segundo parâmetro especifica os caracteres para preencher as divisões vazias.

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

| Parâmetro | Tipo   | Descrição                                           |
| --------- | ------ | --------------------------------------------------- |
| `slices`  | Número | Quantos itens serão fatiados.                       |
| `filler`  | Corda  | Especifica caracteres para preencher fatias vazias. |

## sort

Classifica um iterável. Este filtro requer todos os parâmetros para classificar por um atributo no HubSpot. O primeiro parâmetro é um booleano para inverter a ordem de classificação. O segundo parâmetro determina se a classificação diferencia ou não maiúsculas de minúsculas. E o parâmetro final especifica por qual atributo classificar. No exemplo abaixo, os posts de um blog foram renderizados e classificados em ordem alfabética por nome.

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

| Parâmetro        | Tipo     | Descrição                                                                           |
| ---------------- | -------- | ----------------------------------------------------------------------------------- |
| `reverse`        | Booleano | Definir para `true` para inverter a ordem de classificação.                         |
| `case_sensitive` | Booleano | Definir para `true` para tornar a classificação sensível a maiúsculas e minúsculas. |
| `attribute`      | String   | Atributo para classificar. Omita ao classificar uma lista.                          |

## split

Divide a string de entrada em uma lista em um determinado separador. O primeiro parâmetro especifica o separador pelo qual a variável deve ser dividida. O segundo parâmetro determina quantas vezes a variável deve ser dividida. Qualquer item restante permanece agrupado. No exemplo abaixo, uma string de nomes é dividida no `;` para os quatro primeiros nomes.

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

| Parâmetro               | Tipo   | Descrição                                                                                        |
| ----------------------- | ------ | ------------------------------------------------------------------------------------------------ |
| `character_to_split_by` | String | Especifica o separador para dividir a variável.                                                  |
| `number_of_splits`      | Número | Determina quantas vezes a variável deve ser dividida. Qualquer item restante permanece agrupado. |

## string

Converte um tipo de variável diferente em uma string. No exemplo abaixo, um número inteiro é convertido em uma string (`pprint` é usado para confirmar a mudança no tipo de variável).

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

  ```text saída renderizada.txt theme={null}
  (String: 45)
  ```
</CodeGroup>

## striptags

Remove tags SGML/XML e substitui espaços em branco adjacentes por um espaço. Este filtro pode ser usado para remover quaisquer tags HTML de uma variável.

<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

Converte uma sequência de data e um formato de data em um objeto de data.

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

  ```text saída renderizada.txt theme={null}
  2021-03-03 00:00:00
  ```
</CodeGroup>

| Parâmetro    | Tipo   | Descrição                                                                                                 |
| ------------ | ------ | --------------------------------------------------------------------------------------------------------- |
| `dateFormat` | String | O [formato de data](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) para usar. |

## strtotime

Converte uma string e um formato de data/hora em um objeto de data/hora.

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

  ```text saída renderizada.txt theme={null}
  1531558890000
  ```
</CodeGroup>

| Parâmetro        | Tipo   | Descrição                                                                                                        |
| ---------------- | ------ | ---------------------------------------------------------------------------------------------------------------- |
| `datetimeFormat` | String | O [Formato de data e hora](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) para usar. |

## sum

Soma valores numéricos em uma sequência. O primeiro parâmetro pode especificar um atributo opcional e o segundo parâmetro define o valor a retornar se não houver nada na variável a somar.

<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 saída renderizada.txt theme={null}
  15 Total: 30
  ```
</CodeGroup>

| Parâmetro           | Tipo   | Descrição                                                        |
| ------------------- | ------ | ---------------------------------------------------------------- |
| `attribute`         | Strin  | Atributo para soma.                                              |
| `return_if_nothing` | String | Valor a ser retornado se não houver nada na variável para somar. |

## symmetric\_difference

Retorna a diferença simétrica de dois conjuntos ou listas. A lista retornada pelo filtro contém todos os elementos únicos que estão na primeira lista, mas não na segunda, ou que estão na segunda lista, mas não na primeira

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

  ```text saída renderizada.txt theme={null}
  [1, 4, 5]
  ```
</CodeGroup>

| Parâmetro | Tipo      | Descrição                                                                                   |
| --------- | --------- | ------------------------------------------------------------------------------------------- |
| `list`    | Variedade | A segunda lista para comparação e uso na busca da diferença simétrica com a lista original. |

## title

Retorna uma versão do valor em caixa alta (ou seja, as palavras começarão com letras maiúsculas, mas todos os caracteres restantes serão minúsculos).

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

  ```text saída renderizada.txt theme={null}
  My Title Should Be Title Case
  ```
</CodeGroup>

## tojson

Escreve um objeto como uma string 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

Remove espaços em branco antes e depois. O HubSpot já remove os espaços em branco da marcação, mas este filtro está documentado por uma questão de abrangência.

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

  ```text saída renderizada.txt theme={null}
  remove whitespace remove whitespace
  ```
</CodeGroup>

## truncate

Corta o texto após um certo número de caracteres. O padrão é 255. Os caracteres HTML estão incluídos nesta contagem.

<Warning>
  **Observação:** como esse filtro depende dos espaços entre as palavras para encurtar as strings, ele pode não funcionar como esperado para idiomas sem espaços entre caracteres, como japonês.
</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 saída renderizada.txt theme={null}
  I only want to show the first sente..........
  ```
</CodeGroup>

| Parâmetro              | Tipo        | Descrição                                                                                        |
| ---------------------- | ----------- | ------------------------------------------------------------------------------------------------ |
| `number_of_characters` | obrigatório | Número de caracteres permitido antes de truncar o texto. O padrão é 255.                         |
| `breakword`            | Booleano    | Se `true`, o filtro cortará o texto no comprimento. Se `false`, ele descartará a última palavra. |
| `end`                  | String      | Substituir os caracteres finais padrão '...' após o truncamento.                                 |

## truncatehtml

Trunca uma determinada string, respeitando a marcação html (ou seja, fecha adequadamente todas as tags aninhadas). Isso evita que uma tag permaneça aberta após o truncamento. Os caracteres HTML não são contabilizados no total de caracteres.

<Warning>
  **Observação:** como esse filtro depende dos espaços entre as palavras para encurtar as strings, ele pode não funcionar como esperado para idiomas sem espaços entre caracteres, como japonês.
</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>

| Parâmetro              | Tipo        | Descrição                                                                                                                                                                                                                                                 |
| ---------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `number_of_characters` | obrigatório | Número de caracteres permitido antes de truncar o texto. O padrão é 255.                                                                                                                                                                                  |
| `end`                  | String      | Substituir os caracteres finais padrão '...' após o truncamento.                                                                                                                                                                                          |
| `breakword`            | Booleano    | Valor booleano. Se `true`, o filtro cortará o texto no comprimento. Se `false` (padrão), descartará a última palavra. Se estiver usando apenas um dos parâmetros opcionais, use argumentos de palavra-chave, como `truncatehtml(70, breakwords = false)`. |

## unescape\_html

Converte texto com entidades codificadas em HTML para seus equivalentes em Unicode.

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

  ```text saída renderizada.txt theme={null}
  me & you
  ```
</CodeGroup>

## union

Retorna a união de dois conjuntos ou listas. A lista retornada do filtro contém todos os elementos exclusivos que estão em qualquer uma das listas.

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

  ```text saída renderizada.txt theme={null}
  [1, 2, 3, 4, 5]
  ```
</CodeGroup>

| Parâmetro | Tipo      | Descrição                                   |
| --------- | --------- | ------------------------------------------- |
| `list`    | Variedade | A segunda lista a se unir à lista original. |

## unique

Extrai um conjunto exclusivo de uma sequência ou dicionário de objetos. Ao filtrar um dicionário, como uma lista de postagens retornadas por uma função, você pode especificar qual atributo é usado para desduplicar itens no dicionário.

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

  ```text saída renderizada.txt theme={null}
  [one, two, three]
  ```
</CodeGroup>

| Parâmetro | Tipo   | Descrição                                                                   |
| --------- | ------ | --------------------------------------------------------------------------- |
| `attr`    | String | Especifica o atributo que deve ser usado ao filtrar um valor de dicionário. |

## unixtimestamp

Converte um objeto datetime em um registro de data e hora Unix.

<Warning>
  ### Observação:

  Você deve usar este filtro <u>somente</u> com variáveis que retornam uma data. A partir de 30 de setembro de 2024, este filtro não retornará mais a data atual quando um valor nulo for passado. Após essa data, um valor nulo no filtro retornará `September 30, 2024`.
</Warning>

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

  ```text saída renderizada.txt theme={null}
  2017-01-30 17:11:44 1485814304000
  ```
</CodeGroup>

## upper

Converte todas as letras de um valor em maiúsculas.

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

  ```text saída renderizada.txt theme={null}
  TEXT TO MAKE UPPERCASE
  ```
</CodeGroup>

## urlencode

Escapes e URL codificam uma string usando a formatação UTF-8. Aceita dicionários e strings regulares, bem como iteráveis em pares.

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

  ```text saída renderizada.txt theme={null}
  Escape+%26+URL+encode+this+string
  ```
</CodeGroup>

## urldecode

Decodifica as strings de URL codificadas para a URL original. Aceita dicionários e strings regulares, bem como iteráveis em pares.

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

  ```text saída renderizada.txt theme={null}
  Escape & URL decode this string
  ```
</CodeGroup>

## urlize

Converte URLs de texto simples em links clicáveis. Se você passar um número inteiro adicional para o filtro, ele encurtará as urls para esse número. O segundo parâmetro é um booleano que determina se o link é rel="no follow". O parâmetro final permite especificar se o link será aberto em uma nova aba.

| Parâmetro         | Tipo     | Descrição                                                       |
| ----------------- | -------- | --------------------------------------------------------------- |
| `shorten_text`    | Número   | Inteiro que encurtará as URLs para o número desejado.           |
| `no_follow`       | Booleano | Quando definido para `true`, o link incluirá `rel="no follow"`. |
| `target="_blank"` | String   | Especifica se o link será aberto em uma nova aba.               |

<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://br.developers.hubspot.com/docs//hubspot.com/">http://hubspot.com/</a>
  <a href="https://br.developers.hubspot.com/docs//hubspot.com/" rel="nofollow">http://...</a>
  <a href="https://br.developers.hubspot.com/docs//hubspot.com/" rel="nofollow">http://hubspot.com/</a>
  <a href="https://br.developers.hubspot.com/docs//hubspot.com/" target="_blank">http://hubspot.com/</a>
  ```
</CodeGroup>

## wordcount

Conta o número de palavras em uma string.

<Warning>
  Se a string contiver HTML, use o `striptags` filtre para obter uma contagem precisa.
</Warning>

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

  ```text saída renderizada.txt theme={null}
  8
  ```
</CodeGroup>

## wordwrap

Insere uma quebra nas palavras após um determinado número de caracteres. Funciona melhor em um `<pre>` porque o HubSpot remove os espaços em branco por padrão.

<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 saída renderizada.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>

| Descrição         | Parâmetro                                        |
| ----------------- | ------------------------------------------------ |
| `character_count` | Número de caracteres para encapsular o conteúdo. |

## xmlattr

Cria uma string de atributo HTML/XML, com base nos itens em um dicionário. Todos os valores que não são none nem undefined são escapados automaticamente. Se o filtro retornar algo, adiciona automaticamente um espaço na frente do item, a menos que o primeiro parâmetro seja falso.

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

| Parâmetro   | Tipo     | Descrição                                                       |
| ----------- | -------- | --------------------------------------------------------------- |
| `autospace` | Booleano | Definir para `true` para adicionar um espaço na frente do item. |
