Filtros de HubL

Last updated:

Los filtros afectan la salida final de tu HubL. Pueden aplicarse a varias sentencias y expresiones de HubL para alterar el marcador de plantilla que emite el servidor.

La sintaxis básica de un filtro es |filtername. El filtro se agrega directamente a continuación de la sentencia o de la expresión, dentro de sus delimitadores. Algunos filtros tienen parámetros adicionales que se pueden agregar entre paréntesis. La sintaxis básica de un filtro con una cadena, un número y un parámetro booleano es: |filtername("stringParameter", 10, true). Ten en cuenta que los parámetros de cadena deben escribirse entre comillas. También hay que tener en cuenta que los filtros de HubL tienen un alias que puede ser utilizado para servir el mismo propósito que el filtro principal.

El siguiente artículo contiene todos los filtros HubL compatibles.

Nota: puedes aplicar filtros de HubL a los tokens de personalización, como tokens de contacto y de empresa, en las páginas de blog y CMS de HubSpot, pero no en los correos electrónicos. 

abs

Obtiene el valor absoluto de un número Puedes usar este filtro para garantizar que un número sea positivo.

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

add

Agrega un valor numérico a otro valor numérico. Este filtro funciona igual que el operador +. El parámetro entre paréntesis es el sumando que estás combinando con tu valor numérico inicial.

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

attr

Renderiza el atributo de un diccionario. Este filtro es el equivalente a imprimir una variable que existe dentro de un diccionario, como content.absolute_url.

ParameterDescription
attribute_name
Requerido

Especifica el atributo a imprimir

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

batch

Un filtro por lotes agrupa elementos dentro de una secuencia.

ParameterDescription
linecount
Requerido

El número de elementos a incluir en el lote

fill_with
Opcional

Especifica lo que hay que incluir para completar los elementos que faltan

En el ejemplo siguiente, hay una variable que contiene una secuencia de tipos de frutas. El filtro por lotes se aplica a un bucle que itera a través de la secuencia. El bucle anidado se ejecuta tres veces para imprimir 3 tipos de fruta por fila, antes de que el bucle exterior se ejecute de nuevo. Observa en la salida final que, como sólo hay 5 tipos de fruta, el último elemento se sustituye por un &nbsp (el 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 el tiempo entre dos objetos datetime en una unidad de tiempo especificada.

Nota: se recomienda encarecidamente usar este filtro solo con variables que devuelvan una fecha. Si no se pasa una fecha, el filtro se usará en la fecha actual, lo que puede dar lugar a que se muestre información inexacta sobre la fecha en tu página.
ParameterDescription
end
Requerido

El objeto datetime final

timeunit
Requerido

Las unidades de tiempo válidas son nanos , micros , millis , seconds , minutes , hours , half_days , days , weeks , months , years , decades , centuries , millennia , y 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

Convierte un valor de cadena de texto en un booleano.

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

capitalize

Escribe en mayúsculas la primera letra de un valor variable. El primer carácter será mayúscula, todas las demás letras serán minúsculas. Las palabras siguientes separadas por espacios o guiones no tendrán la primera letra en mayú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

El filtro de centrado utiliza los espacios en blanco para centrar el texto dentro de una longitud de campo determinada. Este filtro no es recomendable ni especialmente útil, ya que el compilador HTML de HubSpot eliminará automáticamente los espacios en blanco; sin embargo, se incluye aquí en aras de la exhaustividad.

ParameterDescription
width
Requerido

Especifica la longitud del espacio en blanco para centrar el texto.

El ejemplo siguiente muestra un filtro de centrado aplicado a una variable en una etiqueta pre, de modo que no se eliminan los espacios en blanco.

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

convert_rgb

Convierte un valor HEX en una cadena RGB. Esto es útil si necesitas convertir las variables de color a RGB para utilizarlas con una declaración CSS RGBA. En el ejemplo siguiente, el valor establecido por un módulo de color se convierte en un valor RGB y se utiliza en una declaración 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

Elimina una cadena de un valor. Este filtro se puede utilizar para hacer coincidir y cortar una parte específica de una cadena. El parámetro especifica la parte de la cadena que debe ser eliminada. El ejemplo siguiente elimina el espacio y la palabra world del valor original de la variable.

ParameterDescription
characters_to_cut
Requerido

La parte de la cadena que debe ser eliminada.

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

datetimeformat (obsoleto)

Nota: este filtro está obsoleto. En su lugar, deberías usar el filtro format_datetime, que tiene una sintaxis más estandarizada.

default

Si el valor es indefinido devolverá el primer parámetro, en caso contrario se imprimirá el valor de la variable. Si quieres usar default con variables que se evalúan como falsas, tienes que poner el segundo parámetro como true. El primer ejemplo de abajo imprimiría el mensaje si la variable no está definida. El segundo ejemplo aplicó el filtro a una cadena vacía, que no es indefinida, pero imprime un mensaje debido al segundo parámetro.

ParameterDescription
default_variable
Requerido

Valor a devolver si la variable es indefinida. Si la variable está definida, se devolverá el valor de la variable en su lugar.

boolean
Opcional

Devuelve el default_value si la variable es una cadena vacía

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

dictsort

Ordena un dict y produce pares (clave, valor). Los diccionarios no están ordenados por opción predeterminada, pero se puede imprimir un diccionario ordenado por clave o valor. El primer parámetro es un booleano para determinar si la ordenación distingue entre mayúsculas y minúsculas. El segundo parámetro determina si se ordena el dict por clave o por valor. El ejemplo siguiente imprime un diccionario de contactos ordenado, con todos los detalles conocidos sobre el contacto.

ParameterDescription
case_sensitive
Requerido

Determina si la ordenación distingue entre mayúsculas y minúsculas

sort_by
Requerido

Determina si se ordena por key o por value

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

difference

Este filtro devuelve la diferencia de dos conjuntos o listas. La lista devuelta por el filtro contiene todos los elementos únicos que están en la primera lista pero no en la segunda.

ParameterDescription
list
Requerido

La segunda lista con la que comparar para encontrar las diferencias con la lista original.

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

divide

Divide el valor actual entre un divisor. El parámetro pasado es el divisor. Este filtro es una alternativa al operador /.

ParameterDescription
divisor
Requerido

El número entre el que hay que dividir la variable.

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

divisible

Una alternativa a la prueba de divisible por expresión, el filtro divisible se evaluará como verdadero si el valor es divisible entre el número dado.

ParameterDescription
divisor
Requerido

El número a utilizar cuando se evalúa si el valor es divisible.

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

unescape_html

Escapa el contenido de una entrada HTML. Acepta una cadena y convierte los caracteres &, <, >, , y escape_jinjava en secuencias seguras para HTML. Utiliza este filtro para las variables HubL que se usan en HTML pero que no deberían permitir ningún 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

Escapa el contenido de una entrada de atributo HTML. Acepta una cadena y convierte los caracteres &, <, y escape_jinjava en secuencias seguras para HTML. Utiliza este filtro para las variables HubL que se están agregando a los atributos HTML.

Ten en cuenta que al escapar los valores de los atributos que aceptan URL, como href, debes usar el filtro escape_url en su lugar.

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

Convierte los caracteres { and } en cadenas en secuencias seguras para Jinjava. Utiliza este filtro si necesitas mostrar un texto que pueda contener dichos caracteres en Jinjava.

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

escape_js

Escapa cadenas para que puedan ser insertadas con seguridad en una declaración de variable de JavaScript. utiliza este filtro para las variables HubL que se usan dentro de los 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

Escapa el contenido de una entrada de URL, aplicando protocolos especificados, eliminando caracteres no válidos y peligrosos, y codifica entidades HTML. Devuelve vacío si una URL es válida. Utiliza este filtro para las variables HubL que se usan dentro de los atributos HTML que deberían ser URL válidas.

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

escapejson

Escapa cadenas para que puedan ser utilizadas 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

Formatea el valor como un tamaño de archivo "legible para el ser humano" (es decir, 13 kB, 4,1 MB, 102 Bytes, etc). Por opción predeterminada se utilizan prefijos decimales (Mega, Giga, etc.), si el parámetro se establece en True se utilizan los prefijos binarios (Mebi, Gibi).

ParameterDescription
boolean
Opcional

Si se establece como verdadero, se utilizan prefijos binarios como Mebi & Gibi.

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

first

Devuelve el primer elemento de una secuencia.

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

float

Convierte el valor en un número de punto flotante. Si la conversión no funciona, devolverá 0,0. Puedes anular este valor predeterminado utilizando el primer parámetro.

ParameterDescription
default
Opcional

Entero a devolver si la conversión no funciona. 

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

forceescape

Aplicar estrictamente el escape HTML. En el entorno de HubSpot no hay realmente un caso de uso para el doble escape, por lo que esto se comporta generalmente igual que el 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

Aplica el formato de cadena de Python a un objeto. %s puede ser sustituido por otra variable.

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

format_currency (obsoleto)

Nota: este filtro está obsoleto. En su lugar, utiliza el filtro format_currency_value.

format_currency_value

Formatea un número dado como moneda basándose en la moneda predeterminada del portal y en la configuración regional pasada como parámetro. Reemplaza el filtro format_currency obsoleto.

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

La etiqueta de lenguaje local de Java. El valor predeterminado es la configuración regional de la página. Formato: ISO639LanguageCodeInLowercase-ISO3166CountryCodeInUppercase

currency
Opcional

el código ISO 4217 alfabético de la moneda, por opción predeterminada, es la moneda predeterminada del portal. No se aceptan códigos numéricos.

minDecimalDigits
Opcional

El número mínimo de dígitos decimales a utilizar. El valor predeterminado es el número predeterminado de dígitos decimales de la moneda.

maxDecimalDigits
Opcional

El número máximo de dígitos decimales a utilizar. El valor predeterminado es el número predeterminado de dígitos decimales de la moneda.

format_date

Formatea el componente de fecha de un objeto fecha.
Nota: se recomienda encarecidamente usar este filtro solo con variables que devuelvan una fecha. Si no se pasa una fecha, el filtro se usará en la fecha actual, lo que puede dar lugar a que se muestre información inexacta sobre la fecha en tu página.
ParameterDescription
format
Opcional

El formato que se usará. Puede ser uno de los siguientes:

  • short
  • medium
  • long
  • full
  • un patrón personalizado que se basa en Unicode LDML
timeZone
Opcional

La zona horaria de la fecha de salida en formato IANA TZDB.

locale
Opcional

La configuración regional que se utilizará en los formatos adaptados a la configuración regional.

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

Formatea los componentes de fecha y hora de un objeto fecha. El filtro reemplaza el filtro obsoleto datetimeformat. De manera predeterminada, devuelve una fecha y hora en la zona horaria UTC-00:00.
Nota: se recomienda encarecidamente usar este filtro solo con variables que devuelvan una fecha. Si no se pasa una fecha, el filtro se usará en la fecha actual, lo que puede dar lugar a que se muestre información inexacta sobre la fecha en tu página.
ParameterDescription
format
Opcional

El formato que se usará. Puede ser uno de los siguientes:

  • short
  • medium
  • long
  • full
  • un patrón personalizado que se basa en Unicode LDML

Cuando se usa long o full, la marca de tiempo incluirá una Z para indicar la hora UTC de desplazamiento cero (es decir, 2:23:00 PM Z). Para eliminar el designador Z, especifica una timeZone.

timeZone
Opcional

La zona horaria de la fecha de salida en formato IANA TZDB. Por opción predeterminada, devuelve la hora UTC.

locale
Opcional

La configuración regional que se utilizará en los formatos adaptados a la configuración regional.

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

format_time

Formatea el componente de hora de un objeto fecha.
Nota: se recomienda encarecidamente usar este filtro solo con variables que devuelvan una fecha. Si no se pasa una fecha, el filtro se usará en la fecha actual, lo que puede dar lugar a que se muestre información inexacta sobre la fecha en tu página.
ParameterDescription
format
Opcional

El formato que se usará. Puede ser uno de los siguientes:

  • short
  • medium
  • long
  • full
  • un patrón personalizado que se basa en Unicode LDML
timeZone
Opcional

La zona horaria de la fecha de salida en formato IANA TZDB.

locale
Opcional

La configuración regional que se utilizará en los formatos adaptados a la configuración regional.

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

Convierte una cadena JSON en un objeto.

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

geo_distance

Calcula la distancia 2D elipsoidal entre dos puntos de la Tierra.

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

El filtro groupby agrupa una secuencia de objetos por un atributo en común. El parámetro establece el atributo común en agrupar por.

ParameterDescription
attribute
Requerido

El atributo por el que se va a 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

El filtro de sangría utiliza espacios en blanco para sangrar el texto dentro de una longitud de campo determinada. Este filtro no es recomendable ni especialmente útil, ya que el compilador HTML de HubSpot eliminará automáticamente los espacios en blanco; sin embargo, se incluye aquí en aras de la exhaustividad. El ejemplo siguiente muestra un filtro de centrado aplicado a una variable en una etiqueta pre, de modo que no se eliminan los espacios en blanco. El primer parámetro controla la cantidad de espacios en blanco y el segundo booleano cambia la sangría de la primera línea.

ParameterDescription
width
Requerido

La cantidad de espacios en blanco que se aplicará.

boolean
Requerido

Un valor booleano sobre si se debe sangrar la primera línea.

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

int

Convierte el valor en un entero. Si la conversión no funciona, devolverá 0. Puedes anular este valor predeterminado utilizando el primer parámetro.

ParameterDescription
default
Requerido

Entero a devolver si la conversión no funciona.

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

intersect

Este filtro devuelve la intersección de dos conjuntos o listas. La lista devuelta por el filtro contiene todos los elementos únicos que están contenidos en ambas listas.

ParameterDescription
list
Requerido

La segunda lista con la que se comparará para encontrar el punto de intersección de la lista con la lista original.

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

ipaddr

Se evalúa como verdadero si el valor es una dirección IPv4 o IPv6 válida.

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

Devuelve una cadena que es la concatenación de las cadenas de la secuencia. El separador entre elementos es una cadena vacía por opción predeterminada, puedes definirlo con el parámetro opcional. El segundo parámetro puede utilizarse para especificar un atributo a unir.

ParameterTypeDescription
delimiter
Opcional
String

El delimitador a utilizar al concatenar cadenas.

attribute
Opcional
Variable de HubL

Atributo de valor para unir en un 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

Devuelve el último elemento de una secuencia.

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

length

Devuelve el número de elementos de una secuencia o mapeo.

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

list

Convierte los valores numéricos en una lista. Si se trata de una cadena, la lista devuelta será una lista de caracteres. Para agregar cadenas a una secuencia, basta con agregarlas a las variables de cadena a los delimitadores de la secuencia [ ].

{% 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 el logaritmo natural de un número.

ParameterDescription
base
Opcional

Calcula el logaritmo en la base n.

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

lower

Convertir un valor a todas las letras 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 un filtro a una secuencia de objetos o busca un atributo. Esto es útil cuando se trata con listas de objetos, pero en realidad sólo te interesa un valor determinado de la misma.

El uso básico es el mapeo en un atributo. Por ejemplo, si deseas utilizar la lógica condicional para comprobar si un valor está presente en un atributo particular de un dict. Alternativamente, puedes dejar que invoque un filtro pasando el nombre del filtro y los argumentos a continuación.

Puedes utilizar cualquiera de los parámetros que se indican a continuación.
ParameterDescription
attribute

Atributo a devolver en la secuencia de objetos.

filter

Filtro a aplicar a la secuencia de objetos.

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

md5

Calcula el hash md5 del objeto dado

{{ content.absolute_url|md5 }} 923adb4ce05a4c6342c04c80be88d15e

minus_time

Resta una cantidad de tiempo a un objeto datetime.

ParameterDescription
diff
Requerido

Cantidad a restar.

timeunit
Requerido

Las unidades de tiempo válidas son nanos , micros , millis , seconds , minutes , hours , half_days , days , weeks , months , years , decades , centuries , millennia , y 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 un valor por un número. Funciona igual que el operador *.

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

plus_time

Agrega una cantidad de tiempo a un objeto datetime.

ParameterDescription
diff
Requerido

Cantidad a sumar.

timeunit
Requerido

Las unidades de tiempo válidas son nanos , micros , millis , seconds , minutes , hours , half_days , days , weeks , months , years , decades , centuries , millennia , y 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

Imprimir una variable. Esto imprime el tipo de variable y otra información útil para la depuración.

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

random

Devuelve un elemento aleatorio de la secuencia.

Nota: cuando uses este filtro, la página se prerrenderizará periódicamente en lugar de cada vez que se actualice el contenido de la página. Esto significa que el contenido filtrado no se actualizará en cada recarga de página.

Esto puede no ser un problema para ciertos tipos de contenido, como mostrar una lista aleatoria de publicaciones de blog. Sin embargo, si necesitas que el contenido cambie al azar en cada carga de página, deberías usar JavaScript para aleatorizar el contenido del lado del cliente.

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

regex_replace

Busca un patrón de expresión regular y lo sustituye por una secuencia de caracteres. El primer argumento es un patrón de expresión regular estilo RE2, el segundo es la cadena de sustitución.

Puedes encontrar información sobre la sintaxis de expresiones regulares RE2 aquí.

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

reject

Filtra una secuencia de objetos aplicando una prueba de expresión al objeto y rechazando los que tienen éxito en la prueba.

ParameterDescription
exp_text

La prueba de expresión que se aplicará al objeto.

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

rejectattr

Filtra una secuencia de objetos aplicando una prueba a un atributo de un objeto y rechazando los que tienen éxito en la prueba. 

ParameterDescription
attribute_name
Requerido

Especifica el atributo a seleccionar. Puedes acceder a los atributos anidados utilizando la notación de puntos.

exp_test
Opcional

La expresión a probar

val
Opcional

Valor a comprobar.

{% 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 cadenas que contienen HubL antes de tiempo para que la salida pueda ser pasada a otros filtros.

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

replace

Reemplaza todas las instancias de una subcadena por una nueva. 

ParameterDescription
old
Requerido

La subcadena que se debe reemplazar.

new
Requerido

Cadena de reemplazo.

count
Opcional

Si se proporciona, sólo se reemplazan las primeras ocurrencias.

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

reverse

Invierte el objeto o devuelve un iterador que itera sobre él al revés. Para invertir una lista utiliza .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

Extraer la raíz cuadrada de un valor

ParameterDescription
nth_root
Opcional

Calcula la raíz enésima de un número.

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

round

Redondea el número a una precisión determinada.

ParameterDescription
precision
Opcional

Especifica la precisión del redondeo.

rounding_method
Opcional

Las opciones incluyen el redondeo common hacia arriba o hacia abajo (opción predeterminada); ceil siempre redondea hacia arriba; floor siempre redondea hacia abajo.

Si no se especifica un método se utiliza common.

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

safe

Marca el valor como seguro, lo que significa que en un entorno con el escape automático activado esta variable no será escapada.

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

sanitize_html

Depura el contenido de una entrada HTML para la salida de contenido de texto enriquecido. Acepta una cadena y luego elimina las etiquetas HTML que no están permitidas. Utiliza este filtro para las variables HubL que se usan en HTML que deberían permitir HTML seguro.

Al utilizar este filtro, puedes incluir los siguientes parámetros para permitir tipos específicos de etiquetas HTML: FORMATTING, BLOCKS, STYLES, LINKS, TABLES, IMAGES. Por ejemplo, sanitize_html(IMAGES).

El uso de sanitize_html incluirá todos los parámetros en el filtro.

También puedes incluir un parámetro STRIP para eliminar todo el HTML. Todo el contenido se ejecuta a través de escape_jinjava también para evitar la interpretación anidada.

{% 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 una secuencia de objetos aplicando una prueba al objeto y seleccionando sólo los que tienen éxito en la prueba.

ParameterDescription
exp_text

La prueba de expresión que se aplicará al objeto.

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

selectattr

Filtra una secuencia de objetos aplicando una prueba a un atributo de un objeto y seleccionando sólo los que tienen éxito en la prueba.

ParameterDescription
attribute_name
Requerido

Especifica el atributo a seleccionar. Puedes acceder a los atributos anidados utilizando la notación de puntos.

exp_test
Opcional

La expresión a probar

val
Opcional

Valor a comprobar.

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

Aleatoriza el orden de iteración a través de una secuencia. El ejemplo siguiente mezcla un bucle de blog estándar.

Nota: cuando uses este filtro, la página se prerrenderizará periódicamente en lugar de cada vez que se actualice el contenido de la página. Esto significa que el contenido filtrado no se actualizará en cada recarga de página.

Esto puede no ser un problema para ciertos tipos de contenido, como mostrar una lista aleatoria de publicaciones de blog. Sin embargo, si necesitas que el contenido cambie al azar en cada carga de página, deberías usar JavaScript para aleatorizar el contenido del lado del 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

Corta un iterador y devuelve una lista de listas que contienen esos elementos. El primer parámetro especifica cuántos elementos serán cortados, y el segundo parámetro especifica los caracteres para rellenar los cortes vacíos.

ParameterDescription
slices
Requerido

Cuántos artículos se cortarán.

filler
Requerido

Especifica los caracteres para rellenar los cortes vacíos. 

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

Ordena un iterable. Este filtro requiere que todos los parámetros se ordenen por un atributo en HubSpot. El primer parámetro es un booleano para invertir el orden de clasificación. El segundo parámetro determina si la ordenación distingue entre mayúsculas y minúsculas. Y el último parámetro especifica un atributo por el que ordenar. En el ejemplo siguiente, las entradas de un blog se representan y se ordenan alfabéticamente por nombre.

ParameterDescription
reverse
Requerido

Valor booleano para invertir el orden de clasificación.

case_sensitive
Requerido

Valor booleano que determina si la ordenación distingue entre mayúsculas y minúsculas. 

attribute
Requerido

Atributo a ordenar por. Omitir al ordenar una 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 la cadena de entrada en una lista en el separador dado. El primer parámetro especifica el separador entre el que se divide la variable. El segundo parámetro determina cuántas veces debe dividirse la variable. El resto de los artículos permanecerían en el grupo. En el ejemplo siguiente, una cadena de nombres se divide en el ";" para los 4 primeros nombres.

ParameterDescription
character_to_split_by
Requerido

Especifica el separador entre el que se divide la variable.

number_of_splits
Opcional

Determina cuántas veces debe dividirse la variable. Los elementos restantes permanecerían agrupados.

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

Convierte un tipo de variable diferente en una cadena. En el ejemplo siguiente, un número entero se convierte en una cadena (se utiliza pprint para confirmar el cambio de tipo de la variable).

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

striptags

Elimina las etiquetas SGML/XML y sustituye los espacios en blanco adyacentes por un espacio. Este filtro puede utilizarse para eliminar cualquier etiqueta HTML de una variable.

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

strtotime

Convierte una cadena datetime y un formato datetime en un objeto datetime.

ParameterDescription
datetimeFormat
Requerido

Patrones de fecha y hora.

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

sum

Agrega valores numéricos en una secuencia. El primer parámetro puede especificar un atributo opcional y el segundo parámetro establece un valor a devolver si no hay nada en la variable a sumar.

ParameterDescription
attribute
Opcional

Atributo a sumar.

return_if_nothing
Opcional

Valor a devolver si no hay nada en la variable a sumar.

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

symmetric_difference

Este filtro devuelve la diferencia simétrica de dos conjuntos o listas. La lista devuelta por el filtro contiene todos los elementos únicos que están en la primera lista pero no en la segunda, o están en la segunda lista pero no en la primera

ParameterDescription
list
Requerido

La segunda lista con la que comparar para encontrar la diferencia simétrica con la lista original.

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

title

Devuelve una versión con título del valor. Es decir, las palabras comenzarán con letras mayúsculas, el resto de los caracteres son minúsculas.

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

Escribe un objeto como una cadena 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

Elimina los espacios en blanco iniciales y finales. HubSpot ya recorta los espacios en blanco del marcado, pero este filtro está documentado para que sea más completo.

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

truncate

Corta el texto después de un determinado número de caracteres. El valor predeterminado es 255. Ten en cuenta que los caracteres HTML se incluyen en este recuento. La longitud se especifica con el primer parámetro, que por opción predeterminada es 255. Si el segundo parámetro es verdadero, el filtro cortará el texto a lo largo. En caso contrario, descartará la última palabra. Si el texto se truncó, se agregará un signo de puntos suspensivos ("..."). Si quieres un signo de elipsis diferente a "..." puedes especificarlo usando el tercer parámetro.

Use this table to describe parameters / fields
ParameterDescription
number_of_characters
Requerido

Número de caracteres para truncar el texto. Por opción predeterminada es 255.

breakword
Opcional

Valor booleano. Si es verdadero, el filtro cortará el texto a lo largo. Si es falso, descartará la última palabra. 

end
Opcional

Anula los caracteres finales '...' predeterminados después del truncamiento.

{{ "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 una cadena dada, respetando el marcado html (es decir, cerrará correctamente todas las etiquetas anidadas). Esto evitará que una etiqueta permanezca abierta después del truncamiento. Los caracteres HTML no cuentan para el total de caracteres. Este filtro tiene un parámetro de longitud y un parámetro de símbolo de truncamiento. Hay un tercer parámetro booleano que especifica si las palabras se romperán a lo largo. Este parámetro es falso por opción predeterminada para preservar la longitud de las palabras. Si sólo utilizas uno de los parámetros opcionales, utiliza argumentos de palabra clave, como truncatehtml(70, breakwords = false).

ParameterDescription
number_of_characters
Requerido

Número de caracteres para truncar el texto. Por opción predeterminada es 255.

end
Opcional

Anula los caracteres finales '...' predeterminados después del truncamiento.

breakword
Opcional

Valor booleano. Si es verdadero, el filtro cortará el texto a lo largo. Si es falso, descartará la última palabra. 

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

 Convierte texto con entidades codificadas en HTML a sus equivalentes de Unicode.

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

union

Este filtro devuelve la unión de dos conjuntos o listas. La lista devuelta por el filtro contiene todos los elementos únicos que están en cualquiera de las dos listas.

ParameterDescription
list
Requerido

La segunda lista a unir con la lista original.

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

unique

Este filtro extrae un conjunto único de una secuencia o dictado de objetos. Al filtrar un dict, como una lista de mensajes devueltos por una función, puedes especificar qué atributo se utiliza para desduplicar los elementos en el dict.

ParameterDescription
attr
Opcional

Especifica el atributo que debe utilizarse al filtrar un valor de dict

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

unixtimestamp

Este filtro convierte un objeto datetime en una marca de tiempo de unix.

Nota: se recomienda encarecidamente usar este filtro solo con variables que devuelvan una fecha. Si no se pasa una fecha, el filtro se usará en la fecha actual, lo que puede dar lugar a que se muestre información inexacta sobre la fecha en tu página.
{{ local_dt }} {{ local_dt|unixtimestamp }}2017-01-30 17:11:44 1485814304000

upper

Convertir un valor a todas las letras mayúsculas.

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

urlencode

Sal y codifica la URL de una cadena usando el formato UTF-8. Acepta tanto diccionarios como cadenas regulares, así como iterables por 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 las cadenas de URL codificadas de vuelta a la URL original. Acepta tanto diccionarios como cadenas regulares, así como iterables por 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

Convierte direcciones URL en texto sin formato en enlaces en los que se puede hacer clic. Si le pasas al filtro un número entero adicional, acortará las URL a ese número. El segundo parámetro es un booleano que dicta si el enlace es rel="no follow". El último parámetro permite especificar si el enlace se abrirá en una nueva pestaña.

ParameterDescription
shorten_text
Opcional

Número entero que acortará las URL al número deseado.

no_follow
Opcional

Valor booleano para indicar si el enlace es rel="no follow".

target="_blank"
Opcional

El enlace se abrirá en una pestaña nueva.

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

wordcount

Cuenta el número de palabras de una cadena.

Si la cadena contiene HTML, utiliza el filtro striptags para obtener un recuento preciso.

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

wordwrap

Ocasiona que las palabras se cierren con un número determinado de caracteres. Esto funciona mejor en un <pre> porque HubSpot elimina los espacios en blanco por opción predeterminada.

ParameterDescription
character_count
Requerido

Número de caracteres para envolver el contenido.

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

Crea una cadena de atributos HTML/XML, basada en los elementos de un dict. Todos los valores que no son ninguno
ni indefinidos se escapan automáticamente. Automáticamente antepone un espacio delante del elemento si el filtro devuelve algo, a menos que el primer parámetro sea falso.

ParameterDescription
autospace
Requerido

Valor booleano que antepondrá automáticamente un espacio delante del elemento a menos que se establezca como falso.

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

¿Te resultó útil este artículo?
Con este formulario puedes enviar tu opinión sobre nuestros documentos para desarrolladores. Si tienes comentarios sobre el producto de HubSpot, puedes enviarlos al Foro de ideas.