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)

Note:

  • Este filtro foi descontinuado. Em vez disso, você deve usar o filtro format_datetime, que usa uma sintaxe mais padronizada.
  • É altamente recomendado usar esse 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.

Formata um objeto de data/hora. O filtro datetimeformat é usado para converter esse carimbo de data/hora em uma data e/ou hora legível. Os parâmetros do filtro, listados na tabela abaixo, ditam como a variável de hora é renderizada.

Este filtro espera um carimbo de data/hora. Se a sua informação de data e hora estiver em um formato diferente, primeiro utilize o filtro strtotime para formatar os dados.

ParameterDescription
format
Obrigatório

Formato da diretiva para o objeto de data/hora. Veja o exemplo na tabela de diretivas para obter os valores. 

timezone
Opcional

Especifica um fuso horário. Deve estar em um formato Java 8 compatível.

locale
Opcional

Especifica um local. Deve estar em um formato Java 8 compatível.

{{ content.updated|datetimeformat("%B %e, %Y") }} {{ content.publish_date|datetimeformat("%B %e, %Y %l %p") }} {{ content.publish_date|datetimeformat("%B %e, %Y %l %p", "America/Los_Angeles") }} {{ content.publish_date|datetimeformat("%B %e, %Y %l %p", "America/Los_Angeles", "es-US") }}October 17, 2020 October 1, 2020 4 PM October 1, 2020 9 AM octubre 1, 2020 9 a.m.
datetime formatting
DiretivaExemploDescrição
%a
Sun, Mon, ..., Sat (en-US);So, Mo, ..., Sa (de-DE)Dia da semana como nome abreviado do local.
%A
Sunday, Monday, ..., Saturday (en-US);Sonntag, Montag, ..., Samstag (de-DE)

Dia da semana como nome completo do local.

%w
1, 2, ..., 7

Dia da semana como um número decimal, onde 1 é domingo e 7 é sábado.

OBSERVAÇÃO: isso é diferente dos números de dia em python que começam em zero.

%d
01, 02, ..., 31

Dia do mês como um número decimal acrescido de zero.

%e
1, 2, ..., 31

Dia do mês como um número decimal sem acréscimo de zero.

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

Mês como o nome abreviado do local.

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

Mês como o nome completo do local.

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

Obtenha a versão nominativa do nome do mês.

%m
01, 02, ..., 12

Mês como um número decimal acrescido de zero.

%y
00, 01, ..., 99

Ano sem o século como um número decimal sem acréscimo de zero.

%Y
1970, 1988, 2001, 2013

Ano com o século como número decimal.

%H
00, 01, ..., 23

Hora (relógio de 24 horas) como um número decimal acrescido de zero.

%I
01, 02, ..., 12

Hora (relógio de 12 horas) como um número decimal acrescido de zero.

%k
0, 1, ..., 24

A hora (relógio de 24 horas) como um número decimal (intervalo de zero a 23); os dígitos simples são precedidos por um espaço em branco.

%l
1, 2, ..., 12

(observe que este é um L minúsculo) A hora (relógio de 12 horas) como um número decimal (intervalo de um a 12); os dígitos simples são precedidos por um espaço em branco.

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

Equivalente do local a AM ou PM.

%M
00, 01, ..., 59

Minuto como um número decimal acrescido de zero.

%S
00, 01, ..., 59

Segundo como um número decimal acrescido de zero.

%f
000000, 000001, ..., 999999

Microssegundo como um número decimal acrescido de zero à esquerda.

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

Compensação UTC na forma de +HHMM ou -HHMM (string vazia se o objeto for ingênuo).

%Z
(vazio), UTC, EST, CST

Nome do fuso horário (string vazia se o objeto for ingênuo).

%j
001, 002, ..., 366

Dia do ano como um número decimal acrescido de zero.

%U
00, 01, ..., 53

Número da semana do ano (domingo como primeiro dia da semana) como um número decimal acrescido de zero. Todos os dias de um novo ano que precedem o primeiro domingo são considerados parte da semana zero.

%W
00, 01, ..., 53

Número da semana do ano (segunda-feira como o primeiro dia da semana) como um número decimal. Todos os dias de um novo ano que precedem a primeira segunda-feira são considerados parte da semana zero.

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

A representação apropriada da data e hora no local.

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

A representação apropriada da data no local.

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

A representação apropriada da hora no local.

%%
%

Literalmente, o caractere %.

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

Converte os caracteres &, <, >, ‘ e ” em uma string para sequências seguras para HTML. Use este filtro se você precisar exibir texto que possa conter tais caracteres em HTML. As marcas retornam valor como string de marcação.

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

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. As marcas retornam valor como string de marcação.

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

escapejs

Limpa as strings para que possam ser inseridas em segurança em uma declaração de variável JavaScript.

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

escapejson

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

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

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

Formata um determinado número como uma moeda com base na moeda padrão do portal e no local passado como parâmetro.

ParameterDescription
locale
Opcional

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

currency_code
Opcional

o código ISO 4217 da moeda; o padrão é a moeda padrão dos portais.

use_default_decimal_digits
Opcional

um booleano que determina se o formatador precisa usar os dígitos decimais padrão do código da moeda. O valor padrão é false.

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

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

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