Filtros HubL

Last updated:

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.

Observação: você pode aplicar os filtros do HubL a tokens de personalização, como tokens de contato e da empresa, nas páginas do CMS e do blog do HubSpot, mas não nos e-mails. 

abs

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

{% set my_number = -53 %} {{ my_number|abs }}53

add

Adiciona um valor numérico a outro valor numérico. Este filtro funciona da mesma forma que o operador +. O parâmetro entre parênteses é o adendo que você está combinando com o seu valor numérico inicial.

{% set my_num = 40 %} {{ my_num|add(13) }}53

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.

ParameterDescription
attribute_name
Obrigatório

Especifica qual o atributo imprimir

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

batch

Um filtro de lote agrupa itens dentro de uma sequência.

ParameterDescription
linecount
Obrigatório

O número de itens a incluir no lote

fill_with
Opcional

Especifica o que incluir para preencher qualquer item em falta

No exemplo abaixo, há uma variável contendo uma sequência de tipos de frutas. O filtro de lote é aplicado a um loop que é iterado 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).

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

between_times

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

Observação: é altamente recomendado usar este filtro apenas com variáveis que retornam uma data. Se uma data não for passada, o filtro será usado na data atual, o que pode resultar na exibição de informações de data imprecisas na sua página.
ParameterDescription
end
Obrigatório

O objeto de data/hora final

timeunit
Obrigatório

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 .

{% set begin = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %} {% set end = "2018-07-20T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %} {{ begin|between_times(end, "days") }}6

bool

Converte um valor de string de texto em booleano.

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

capitalize

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

{% set sentence = "the first letter of a sentence should always be capitalized." %} {{ sentence|capitalize }}The first letter of a sentence should always be capitalized.

center

O filtro center utiliza espaços em branco para centralizar o texto dentro de um determinado comprimento de campo. Este filtro não é recomendado ou útil, pois o compilador HTML da HubSpot removerá automaticamente os espaços em branco; no entanto, ele está incluído aqui por uma questão de abrangência.

ParameterDescription
width
Obrigatório

Especifica o comprimento dos espaços em branco para centralizar o texto.

O exemplo abaixo mostra um filtro center aplicado a uma variável em uma tag prévia, para que os espaços em branco não sejam removidos.

<pre> {% set var = "string to center" %} before{{ var|center(80) }}after </pre><pre> before string to center after </pre>

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.

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

cut

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.

ParameterDescription
characters_to_cut
Obrigatório

A parte da string que deve ser removida.

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

datetimeformat (obsoleto)

Observação: este filtro foi descontinuado. Em vez disso, você deve usar o filtro format_datetime, que usa uma sintaxe mais padronizada.

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 verdadeiro. O primeiro exemplo abaixo imprimiria a mensagem se a variável não estivesse definida. O segundo exemplo aplicou o filtro a uma string vazia, que não é indefinida, mas imprime uma mensagem devido ao segundo parâmetro.

ParameterDescription
default_variable
Obrigatório

Valor a retornar se a variável não estiver definida. Se a variável estiver definida, o valor da variável será retornado em seu lugar.

boolean
Opcional

Retorna default_value se a variável for uma string vazia

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

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.

ParameterDescription
case_sensitive
Obrigatório

Determina se a classificação diferencia maiúsculas de minúsculas

sort_by
Obrigatório

Determina se deve ser classificado por key ou por value

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

difference

Este filtro 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.

ParameterDescription
list
Obrigatório

A segunda lista a ser comparada para encontrar as diferenças em relação à lista original.

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

divide

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

ParameterDescription
divisor
Obrigatório

O número pelo qual dividir a variável.

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

divisible

Uma alternativa ao teste de divisibilidade por expressão; o filtro divisible avaliará se o valor pode ser dividido pelo número dado.

ParameterDescription
divisor
Obrigatório

O número a usar ao avaliar se o valor pode ser dividido.

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

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.

{% set escape_string = "<div>This markup is printed as text</div>" %} {{ escape_string|escape_html }}&lt;div&gt;This markup is printed as text&lt;/div&gt;

escape_attr

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.

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

escape_jinjava

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

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

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.

{% set escape_string = "\tThey said 'This string can safely be inserted into JavaScript.'" %} {{ escape_string|escape_js }}\tThey said \x27This string can safely be inserted into JavaScript.\x27

escape_url

Limpa o conteúdo de uma entrada de URL, impondo protocolos especificados e removendo caracteres inválidos e perigosos, além de codificar 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.

{% set escape_string = "https://www.google.com<" %} <a href="{{ escape_string|escape_url }}"> <a href="">

escapejson

Limpa as strings para que possam ser usadas como valores JSON.

{% set escape_string = "<script>alert('oh no!')</script>" %} {% require_js position="head" %} <script data-search_input-config="config_{{ name }}" type="application/json"> { "autosuggest_results_message": "{{ escape_string|escapejson }}" } </script> {% end_require_js %}<script data-search_input-config="config_widget_1234567" type="application/json"> { "autosuggest_results_message": "<script>alert('oh no!')<\/script>" } </script>

filesizeformat

Formate o valor como um arquivo de tamanho "legível por humanos" (ou seja, 13 kB, 4,1 MB, 102 Bytes etc.). Prefixos decimais (Mega, Giga etc.); são usados por padrão; se o parâmetro estiver definido como True, serão usados prefixos binários (Mebi, Gibi).

ParameterDescription
boolean
Opcional

Se definido como verdadeiro, são usados prefixos binários, como Mebi e Gibi.

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

first

Retorna o primeiro item de uma sequência.

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

float

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

ParameterDescription
default
Opcional

Número inteiro a retornar se a conversão não funcionar. 

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

forceescape

Força a limpeza do 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.

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

format

Aplique a formatação de strings Python a um objeto. %s podem ser substituídos por outra variável.

{{ "Hi %s %s"|format(contact.firstname, contact.lastname) }} Hi Brian Halligan

format_currency (descontinuado)

Observação: este filtro foi descontinuado. Em vez disso, use o filtro format_currency_value.

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.

{{ 100 | format_currency_value(locale='en-GB', currency='EUR', maxDecimalDigits=6, minDecimalDigits=1) }}€100.0
ParameterDescription
locale
Opcional

A tag da linguagem local Java. O padrão é locale.Format da página: ISO639LanguageCodeInLowercase-ISO3166CountryCodeInUppercase

currency
Opcional

o código alfabético ISO 4217 da moeda; o padrão é a moeda padrão dos portais. Códigos numéricos não são aceitos.

minDecimalDigits
Opcional

O número mínimo de dígitos decimais a serem usados. O padrão é o número padrão de dígitos decimais da moeda.

maxDecimalDigits
Opcional

O número máximo de dígitos decimais a serem usados. 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.
Observação: é altamente recomendado usar este filtro apenas com variáveis que retornam uma data. Se uma data não for passada, o filtro será usado na data atual, o que pode resultar na exibição de informações de data imprecisas na sua página.
ParameterDescription
format
Opcional

O formato a ser usado. Pode ser um dos seguintes:

  • short
  • medium
  • long
  • full
  • um padrão personalizado seguindo o Unicode de LDML
timeZone
Opcional

O fuso horário da data de saída no formato IANA TZDB.

locale
Opcional

A localidade a ser usada para formatos com reconhecimento de localidade.

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

format_datetime

Formata os componentes de data e hora de um objeto de data. Este filtro substitui o filtro datetimeformat descontinuado. Por padrão, retorna uma data e hora no fuso horário UTC -00:00.
Observação: é altamente recomendado usar este filtro apenas com variáveis que retornam uma data. Se uma data não for passada, o filtro será usado na data atual, o que pode resultar na exibição de informações de data imprecisas na sua página.
ParameterDescription
format
Opcional

O formato a ser usado. Pode ser um dos seguintes:

  • short
  • medium
  • long
  • full
  • um padrão personalizado seguindo o Unicode de LDML

Ao usar long ou full, o timestamp incluirá um Z para denotar o tempo UTC com deslocamento zero (ou seja, 2:23:00 PM Z). Para remover o designador Z, especifique um timeZone.

timeZone
Opcional

O fuso horário da data de saída no formato IANA TZDB. Por padrão, retorna a hora UTC.

locale
Opcional

A localidade a ser usada para formatos com reconhecimento de localidade.

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

format_time

Formata o componente de hora de um objeto de data.
Observação: é altamente recomendado usar este filtro apenas com variáveis que retornam uma data. Se uma data não for passada, o filtro será usado na data atual, o que pode resultar na exibição de informações de data imprecisas na sua página.
ParameterDescription
format
Opcional

O formato a ser usado. Pode ser um dos seguintes:

  • short
  • medium
  • long
  • full
  • um padrão personalizado seguindo o Unicode de LDML
timeZone
Opcional

O fuso horário da data de saída no formato IANA TZDB.

locale
Opcional

A localidade a ser usada para formatos com reconhecimento de localidade.

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

fromjson

Converte uma string JSON em um objeto.

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

geo_distance

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

<!-- in the example below the HubDB Location = 42.3667, -71.1060 (Cambridge, MA) | Chicago, IL = 37.3435, -122.0344 --> {{ row.location | geo_distance(37.3435, -122.0344, "mi") }} MI861.1655563461395 MI

groupby

O filtro groupby agrupa uma sequência de objetos por um atributo comum. O parâmetro define o atributo comum pelo qual deve-se fazer o agrupamento.

ParameterDescription
attribute
Obrigatório

O atributo pelo qual agrupar.

<ul> {% for group in contents|groupby("blog_post_author") %} <li>{{ group.grouper }} <ul> {% for content in group.list %} <li>{{ content.name }}</li> {% endfor %} </ul> </li> {% endfor %} </ul><ul> <li>Blog author 1 <ul> <li>Post by Blog author 1<li> <li>Post by Blog author 1<li> <li>Post by Blog author 1<li> </ul> </li> <li>Blog author 2 <ul> <li>Post by Blog author 2<li> <li>Post by Blog author 2<li> <li>Post by Blog author 2<li> </ul> </li> <li>Blog author 3 <ul> <li>Post by Blog author 3<li> <li>Post by Blog author 3<li> <li>Post by Blog author 3<li> </ul> </li> </ul>

indent

O filtro indent usa espaços em branco para recuar o texto dentro de um determinado comprimento de campo. Este filtro não é recomendado ou útil, pois o compilador HTML da 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 center aplicado a uma variável em uma tag prévia, para que os espaços em branco não sejam removidos. O primeiro parâmetro controla a quantidade de espaços em branco e o segundo booleano alterna se a primeira linha deve ser recuada.

ParameterDescription
width
Obrigatório

A quantidade de espaços em branco a ser aplicada.

boolean
Obrigatório

Um valor booleano sobre se a primeira linha deve ser recuada.

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

int

Converte o valor em um número inteiro. Se a conversão não funcionar, ela retornará zero. Você pode substituir este padrão usando o primeiro parâmetro.

ParameterDescription
default
Obrigatório

Número inteiro a retornar se a conversão não funcionar.

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

intersect

Este filtro retorna a intersecçã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.

ParameterDescription
list
Obrigatório

A segunda lista a ser comparada ao buscar a intersecção com a lista original.

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

ipaddr

Avalia como true se o valor é um endereço IPv4 ou IPv6 válido.

{% set ip = "1.0.0.1" %} {% if ip|ipaddr %} The string is a valid IP address {% endif %} The string is a valid IP address

join

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.

ParameterTypeDescription
delimiter
Opcional
String

O delimitador que será usado para concatenar as strings.

attribute
Opcional
Variável HubL

Atributo de valor para participar de um objeto.

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

last

Retorna o último item de uma sequência.

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

length

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

{% set services = ["Web design", "SEO", "Inbound Marketing", "PPC"] %} {{ services|length }}4

list

Converte valores numéricos em uma lista. Caso seja uma string, a lista retornada será uma lista de caracteres. Para adicionar strings a uma sequência, basta adicioná-la às variáveis da string nos delimitadores da sequência [ ].

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

log

Calcula o logaritmo natural de um número.

ParameterDescription
base
Opcional

Calcule o logaritmo na nona base.

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

lower

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

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

map

Aplica um filtro em uma sequência de objetos ou procura um atributo. É útil ao lidar com listas de objetos, quando você só está interessado 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.

Você pode usar qualquer um dos parâmetros listados abaixo.
ParameterDescription
attribute

Atributo a retornar na sequência de objetos.

filter

Filtro a aplicar à sequência de objetos.

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

md5

Calcula o hash md5 do objeto em questão

{{ content.absolute_url|md5 }} 923adb4ce05a4c6342c04c80be88d15e

minus_time

Subtrai uma quantidade de tempo de um objeto de data/hora.

ParameterDescription
diff
Obrigatório

Valor a subtrair.

timeunit
Obrigatório

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 .

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

multiply

Multiplica um valor por um número. Funciona da mesma forma que o operador *.

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

plus_time

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

ParameterDescription
diff
Obrigatório

Valor a adicionar.

timeunit
Obrigatório

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 .

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

pprint

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

{% set this_var ="Variable that I want to debug" %} {{ this_var|pprint }}(String: Variable that I want to debug)

random

Retorna um item aleatório da sequência.

Observação: ao usar este filtro, a página será pré-renderizada periodicamente, em vez de sempre que o conteúdo da página for atualizado. Isso significa que o conteúdo filtrado não 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.

{% for content in contents|random %} <div class="post-item">Post item markup</div> {% endfor %}<div class="post-item">Random post</div>

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.

Informações sobre a sintaxe regex RE2 podem ser encontradas aqui.

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

reject

Filtra uma sequência de objetos aplicando um teste de expressão ao objeto e rejeitando aqueles que passaram com sucesso no teste.

ParameterDescription
exp_text

O teste de expressão a aplicar ao objeto.

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

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. 

ParameterDescription
attribute_name
Obrigatório

Especifica o atributo a selecionar. Você pode acessar os atributos aninhados usando a notação de pontos.

exp_test
Opcional

A expressão para testar

val
Opcional

Valor a testar.

{% for content in contents|rejectattr("post_list_summary_featured_image") %} <div class="post-item"> {% if content.post_list_summary_featured_image %} <div class="hs-featured-image-wrapper"> <a href="{{content.absolute_url}}" title="" class="hs-featured-image-link"> <img src="{{ content.post_list_summary_featured_image }}" class="hs-featured-image"> </a> </div> {% endif %} {{ content.post_list_content|safe }} </div> {% endfor %}<div class="post-item">Post with no featured image</div> <div class="post-item">Post with no featured image</div> <div class="post-item">Post with no featured image</div>

render

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

{{ personalization_token("contact.lastname", "default value")|render|lower }} mclaren

replace

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

ParameterDescription
old
Obrigatório

A substring que deve ser substituída.

new
Obrigatório

A string de substituição.

count
Opcional

Se fornecido, apenas as ocorrências de primeira contagem são substituídas.

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

reverse

Reverte o objeto ou retorna um iterador que itera sobre ele ao contrário. Para reverter uma lista, use .reverse()

{% set nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] %} {% for num in nums|reverse %} {{ num }} {% endfor %}10 9 8 7 6 5 4 3 2 1

root

Calcula a raiz quadrada de um valor.

ParameterDescription
nth_root
Opcional

Calcule a enésima raiz de um número.

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

round

Arredonde o número para uma determinada precisão.

ParameterDescription
precision
Opcional

Especifica a precisão do arredondamento.

rounding_method
Opcional

As opções de arredondamento incluem common, para cima ou para baixo (padrão); ceil, sempre arredonda para cima; floor, sempre arredonda para baixo.

Se você não especificar um método, common será usado.

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

safe

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

{{ content.post_list_content|safe }} <p>HTML post content that is not escaped. </p>

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.

Ao usar esse filtro, 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 todo o HTML. Todo o conteúdo também é executado por escape_jinjava para evitar interpretações aninhadas.

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

select

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

ParameterDescription
exp_text

O teste de expressão a aplicar ao objeto.

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

selectattr

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

ParameterDescription
attribute_name
Obrigatório

Especifica o atributo a selecionar. Você pode acessar os atributos aninhados usando a notação de pontos.

exp_test
Opcional

A expressão para testar

val
Opcional

Valor a testar.

{% for content in contents|selectattr("post_list_summary_featured_image") %} <div class="post-item"> {% if content.post_list_summary_featured_image %} <div class="hs-featured-image-wrapper"> <a href="{{content.absolute_url}}" title="" class="hs-featured-image-link"> <img src="{{ content.post_list_summary_featured_image }}" class="hs-featured-image"> </a> </div> {% endif %} {{ content.post_list_content|safe }} </div> {% endfor %}<div class="post-item"> <div class="hs-featured-image-wrapper"> <a href="http://blog.hubspot.com/marketing/how-to-get-a-job" title="" class="hs-featured-image-link"> <img src="//cdn2.hubspot.net/hub/53/hubfs/00-Blog-Related_Images/landing-a-job-featured-image.png?t=1431452322770&width=761" class="hs-featured-image"> </a> </div> Post with featured image </div>

shuffle

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

Observação: ao usar este filtro, a página será pré-renderizada periodicamente, em vez de sempre que o conteúdo da página for atualizado. Isso significa que o conteúdo filtrado não 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.

{% for content in contents|shuffle %} <div class="post-item">Markup of each post</div> {% endfor %}<div class="post-item">Markup of each post 5</div> <div class="post-item">Markup of each post 3</div> <div class="post-item">Markup of each post 1</div> <div class="post-item">Markup of each post 2</div> <div class="post-item">Markup of each post 4</div>

slice

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.

ParameterDescription
slices
Obrigatório

A quantidade de itens que serão divididos.

filler
Obrigatório

Especifica os caracteres para preencher as divisões vazias. 

{% set items = ["laptops", "tablets", "smartphones", "smart watches", "TVs"] %} <div class="columwrapper"> {% for column in items|slice(3," ") %} <ul class="column-{{ loop.index }}"> {% for item in column %} <li>{{ item }}</li> {% endfor %} </ul> {% endfor %} </div><div class="columwrapper"> <ul class="column-1"> <li>laptops</li> <li>tablets</li> <li>smartphones</li> </ul> <ul class="column-2"> <li>smart watches</li> <li>TVs</li> <li>&nbsp;</li> </ul> </div>

sort

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.

ParameterDescription
reverse
Obrigatório

O valor booleano para inverter a ordem de classificação.

case_sensitive
Obrigatório

O valor booleano que determina se a classificação diferencia maiúsculas de minúsculas. 

attribute
Obrigatório

O atributo pelo qual classificar. Omita ao classificar uma lista.

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

split

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.

ParameterDescription
character_to_split_by
Obrigatório

Especifica o separador pelo qual a variável deve ser dividida.

number_of_splits
Opcional

Determina quantas vezes a variável deve ser dividida. Qualquer item restante permanece agrupado.

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

string

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

{% set number_to_string = 45 %} {{ number_to_string|string|pprint }}(String: 45)

striptags

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

{% set some_html = "<div><strong>Some text</strong></div>" %} {{ some_html|striptags }} some text

strtotime

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

ParameterDescription
datetimeFormat
Obrigatório

Padrões de data e hora.

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

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.

ParameterDescription
attribute
Opcional

Atributo a somar.

return_if_nothing
Opcional

Valor a retornar se não houver nada na variável a somar.

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

symmetric_difference

Este filtro retorna a diferença simétrica entre 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

ParameterDescription
list
Obrigatório

A segunda lista a ser comparada para encontrar a diferença simétrica com a lista original.

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

title

Retorna uma versão em titlecase do valor. Ou seja, as palavras começarão com letras maiúsculas e todos os caracteres restantes estarão em letra minúscula.

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

tojson

Escreve um objeto como uma string JSON.

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

trim

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.

{{ " remove whitespace " }} {{ " remove whitespace "|trim }} remove whitespace remove whitespace

truncate

Corta o texto após um certo número de caracteres. O padrão é 255. Observe que os caracteres HTML estão incluídos nesta contagem. O comprimento é especificado pelo primeiro parâmetro, que é 255 por padrão. Se o segundo parâmetro for verdadeiro, o filtro cortará o texto no comprimento. Caso contrário, descartará a última palavra. Se o texto foi, de fato, truncado, um sinal de elipse ("...") será adicionado. Se você quiser um sinal de elipse diferente de "...", poderá especificá-lo usando o terceiro parâmetro.

Use this table to describe parameters / fields
ParameterDescription
number_of_characters
Obrigatório

Número de caracteres para truncar o texto. O valor padrão é 255.

breakword
Opcional

Valor booleano. Se for verdade, o filtro diminuirá o comprimento do texto. Se for falso, descartará a última palavra. 

end
Opcional

Substitua os caracteres padrão '...' após o truncamento.

{{ "I only want to show the first sentence. Not the second."|truncate(40) }} {{ "I only want to show the first sentence. Not the second."|truncate(35, True, "..........") }}I only want to show the first sentence. I only want to show the first sente..........

truncatehtml

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. Este filtro tem um parâmetro de comprimento e um parâmetro de símbolo de truncagem. Há um terceiro parâmetro booleano que especifica se as palavras serão quebradas em comprimento. Este parâmetro é falso por padrão, a fim de preservar o comprimento das palavras. Se utilizar apenas um dos parâmetros opcionais, utilize argumentos de palavras-chave, tais como truncatehtml(70, breakwords = false).

ParameterDescription
number_of_characters
Obrigatório

Número de caracteres para truncar o texto. O valor padrão é 255.

end
Opcional

Substitua os caracteres padrão '...' após o truncamento.

breakword
Opcional

Valor booleano. Se for verdade, o filtro diminuirá o comprimento do texto. Se for falso, descartará a última palavra. 

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

unescape_html

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

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

union

Este filtro retorna a união de dois conjuntos ou listas. A lista retornada pelo filtro contém todos os elementos únicos que estão em ambas as listas.

ParameterDescription
list
Obrigatório

A segunda lista a unir com a lista original.

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

unique

Este filtro extrai um conjunto único de uma sequência ou dicionário de objetos. Ao filtrar um dicionário, como uma lista de posts retornados por uma função, você pode especificar qual atributo é usado para deduplicar itens no dicionário.

ParameterDescription
attr
Opcional

Especifica o atributo que deve ser utilizado ao filtrar um valor do dicionário

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

unixtimestamp

Este filtro converte um objeto datetime em um carimbo de data/hora unix.

Observação: é altamente recomendado usar este filtro apenas com variáveis que retornam uma data. Se uma data não for passada, o filtro será usado na data atual, o que pode resultar na exibição de informações de data imprecisas na sua página.
{{ local_dt }} {{ local_dt|unixtimestamp }}2017-01-30 17:11:44 1485814304000

upper

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

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

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.

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

urldecode

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

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

urlize

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.

ParameterDescription
shorten_text
Opcional

O número inteiro que encurtará as urls para o número desejado.

no_follow
Opcional

O valor booleano para indicar se o link é rel="no follow".

target="_blank"
Opcional

Especifica se o link abrirá em uma nova aba.

{{ "http://hubspot.com/"|urlize }} {{ "http://hubspot.com/"|urlize(10,true) }} {{ "http://hubspot.com/"|urlize("",true) }} {{ "http://hubspot.com/"|urlize("",false,target="_blank") }}<a href="//hubspot.com/">http://hubspot.com/</a> <a href="//hubspot.com/" rel="nofollow">http://...</a> <a href="//hubspot.com/" rel="nofollow">http://hubspot.com/</a> <a href="//hubspot.com/" target="_blank">http://hubspot.com/</a>

contagem de palavras

Conta o número de palavras de uma string.

Se a string contém HTML, use o filtro striptags para obter uma contagem precisa.

{% set count_words = "Count the number of words in this variable" %} {{ count_words|wordcount }}8

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.

ParameterDescription
character_count
Obrigatório

Número de caracteres após o qual quebrar o conteúdo.

{% set wrap_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur, ipsum non sagittis euismod, ex risus rhoncus lectus, vel maximus leo enim sit amet dui. Ut laoreet ultricies quam at fermentum." %} {{ wrap_text|wordwrap(10) }}Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur, ipsum non sagittis euismod, ex risus rhoncus lectus, vel maximus leo enim sit amet dui. Ut laoreet ultricies quam at fermentum.

xmlattr

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

ParameterDescription
autospace
Obrigatório

O valor booleano que preencherá automaticamente um espaço na frente do item, a menos que definido como falso.

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

Este artigo foi útil?
Este formulário deve ser usado apenas para fazer comentários sobre esses artigos. Saiba como obter ajuda para usar a HubSpot..