Los filtros modifican la información de salida de tu HubL y pueden aplicarse a diversas instrucciones y expresiones para ajustar el marcador de plantilla que emite el servidor.
La sintaxis básica de un filtro es |filtername y se agrega directamente después de la instrucción 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 un parámetro de cadena, un número y un booleano es: |filtername("stringParameter", 10, true). Recuerda que los parámetros de cadena deben ir entre comillas. También, hay que tener en cuenta que los filtros de HubL pueden tener un alias que sirve para el mismo propósito que el filtro principal.
Este artículo incluye todos los filtros compatibles de HubL.
Nota:
Puedes aplicar filtros de HubL a los tokens de personalización, como tokens de contacto y de empresa, en las páginas del CMS de HubSpot y blogs, 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.
add
Agrega un valor numérico a otro. Este filtro funciona igual que el operador +. El parámetro entre paréntesis es el sumando que se combina con el valor numérico inicial.
attr
Renderiza el atributo de un diccionario. Este filtro equivale a imprimir una variable existente dentro de un diccionario, como content.absolute_url.
batch
Agrupa los elementos dentro de una secuencia.
En el siguiente ejemplo, hay una variable que contiene una secuencia de tipos de frutas. El filtro batch 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 el resultado final que, como solo hay cinco tipos de fruta, el último elemento se sustituye por un (el segundo parámetro).
between_times
Calcula el tiempo entre dos objetos de tipo fecha y hora en una unidad de tiempo específica.
Nota:
Este filtro debe usarse únicamente con variables que devuelvan una fecha. A partir del 30 de septiembre de 2024, este filtro ya no devolverá la fecha actual cuando se pase un valor nulo. Después de esa fecha, un valor nulo en el filtro devolverá el 30 de septiembre de 2024.
bool
Convierte un valor de cadena de texto en un booleano.
capitalize
Escribe en mayúsculas la primera letra de un valor variable. El primer carácter estará en mayúscula, mientras que las demás letras estarán en minúscula. Las siguientes palabras, ya sea separadas por espacios o guiones, no tendrán la primera letra en mayúscula.
center
Centra el texto dentro de una longitud de campo determinada utilizando espacios en blanco. Este filtro no es especialmente útil ni recomendable, ya que el compilador HTML de HubSpot elimina los espacios en blanco de forma automática. No obstante, se incluye aquí para brindar una descripción completa.
El siguiente ejemplo muestra este filtro aplicado a una variable dentro de una etiqueta pre-Tag, de modo que los espacios en blanco no se eliminan.
convert_rgb
Convierte un valor HEX en una cadena RGB. Este filtro es útil si necesitas convertir las variables de color a RGB para utilizarlas con una declaración CSS RGBA. En el siguiente ejemplo, el valor establecido por un módulo de color se convierte en un valor RGB y se utiliza en una declaración CSS RGBA.
cut
Elimina una cadena de un valor. Este filtro se puede utilizar para hacer coincidir y cortar una parte de una cadena. El parámetro especifica la parte de la cadena que debe ser eliminada. En el ejemplo a continuación, se elimina el espacio y la palabra “world” del valor original de la variable.
Nota: este filtro está obsoleto. En su lugar, usa el filtro format_datetime, que tiene una sintaxis más estandarizada.
default
Si el valor no está definido, se devolverá el primer parámetro; de lo contrario, se mostrará 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 mostrará el mensaje si la variable no está definida. El segundo ejemplo utilizó el filtro en una cadena vacía, que no está definida, pero muestra un mensaje debido al segundo parámetro.
dictsort
Ordena un diccionario y produce pares de clave y valor. Los diccionarios no tienen un orden predeterminado, pero puedes organizarlos por clave o por valor. El primer parámetro es un valor booleano para determinar si la regla de ordenamiento distingue entre mayúsculas y minúsculas. El segundo parámetro determina si ordenar el diccionario por clave o por valor. El siguiente ejemplo muestra un diccionario de contactos ordenado, incluyendo todos los detalles del contacto.
difference
Este filtro devuelve las diferencias entre dos conjuntos o listas. La lista que el filtro devuelve contiene todos los elementos únicos que están en la primera lista pero no en la segunda.
divide
Divide el valor actual por un divisor. El parámetro que se pasa es el divisor. Este filtro es una alternativa al operador /.
divisible
Es una alternativa a la prueba de la expresión divisibleby. El filtro divisible se devolverá como ‘true’ si el valor es divisible por el número especificado.
escape_html
Sustituye el contenido de una entrada HTML. Acepta una cadena y convierte los caracteres &, <, >, ‘, ” y escape_jinjava en secuencias seguras para HTML. Usa este filtro para las variables de HubL que se emplean en HTML pero no deben admitir código HTML.
escape_attr
Sustituye 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 agregan a los atributos HTML.
Ten en cuenta que cuando sustituyas valores de atributos que acepten URLs, como href, deberías usar el filtro escape_url.
escape_jinjava
Convierte los caracteres { y } en cadenas a secuencias seguras para Jinjava. Utiliza este filtro si necesitas mostrar un texto que pueda contener dichos caracteres en Jinjava.
escape_js
Sustituye cadenas, incluyendo escape_jinjava, para que puedan ser insertadas con seguridad en una declaración de variable en JavaScript. Utiliza este filtro para las variables HubL que se usan dentro de los elementos del script HTML.
escape_url
Sustituye el contenido de una URL, aplicando protocolos específicos, eliminando caracteres no válidos o peligrosos y codificando entidades HTML. Devuelve una respuesta vacía si una URL es válida. Utiliza este filtro para las variables HubL que se usan dentro de los atributos HTML y que deben ser URLs válidas.
escapejson
Sustituye cadenas para que puedan ser utilizadas como valores en JSON.
Convierte un valor numérico en un tamaño de archivo legible (por ejemplo, 13 kB, 4,1 MB, 102 Bytes, etc.). De forma predeterminada, se utilizan prefijos decimales (por ejemplo, MB y GB), pero se pueden ajustar del parámetro binary a true para utilizar prefijos binarios como mebibyte (MiB) y gibibyte (GiB).
first
Devuelve el primer elemento de una secuencia.
float
Convierte un 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.
forceescape
Aplica 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.
Aplica el formato de cadena de Python a un objeto. El valor %s se puede sustituir con otra variable.
Da formato a un número como divisa, utilizando la divisa predeterminada del portal y la configuración regional especificada como parámetro. Reemplaza el filtro obsoleto format_currency.
Le da formato al componente de fecha de un objeto fecha.
Nota:
Este filtro debe usarse únicamente con variables que devuelvan una fecha. A partir del 30 de septiembre de 2024, este filtro ya no devolverá la fecha actual cuando se pase un valor nulo. Después de esa fecha, un valor nulo en el filtro devolverá el 30 de septiembre de 2024.
Da formato a 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-0.
Nota:
Este filtro debe usarse únicamente con variables que devuelvan una fecha. A partir del 30 de septiembre de 2024, este filtro ya no devolverá la fecha actual cuando se pase un valor nulo. Después de esa fecha, un valor nulo en el filtro devolverá el 30 de septiembre de 2024.
Le da formato a un número según la configuración regional específica. Incluye un segundo parámetro para ajustar la precisión decimal máxima.
Le da formato al componente de fecha de un objeto fecha.
Nota:
Este filtro debe usarse únicamente con variables que devuelvan una fecha. A partir del 30 de septiembre de 2024, este filtro ya no devolverá la fecha actual cuando se pase un valor nulo. Después de esa fecha, un valor nulo en el filtro devolverá el 30 de septiembre de 2024.
fromjson
Convierte una cadena JSON en un objeto.
geo_distance
Calcula la distancia elipsoidal en 2D entre dos puntos de la Tierra.
groupby
El filtro groupby agrupa una secuencia de objetos por un atributo en común. El parámetro define el atributo común por el cual agrupar.
indent
Indenta el texto dentro de una longitud utilizando espacios en blanco. Este filtro no es especialmente útil ni recomendable, ya que el compilador HTML de HubSpot elimina los espacios en blanco de forma automática. Sin embargo, se menciona aquí para ofrecer una descripción completa. El siguiente ejemplo muestra el filtro indent aplicado a una variable dentro de una etiqueta <pre>, de modo que los espacios en blanco no se eliminen. El primer parámetro controla la cantidad de espacios en blanco y el segundo booleano cambia la sangría de la primera línea.
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.
intersect
Este filtro devuelve la intersección de dos conjuntos o listas. La lista que el filtro devuelve contiene todos los elementos únicos que están contenidos en ambas listas.
ipaddr
Se evalúa como true si el valor es una dirección IPv4 o IPv6 válida.
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 un parámetro opcional. El segundo parámetro puede utilizarse para especificar un atributo a unir.
last
Devuelve el último elemento de una secuencia.
length
Devuelve el número de elementos de una secuencia o estructura de datos.
list
Convierte los valores en una lista. Las cadenas se devolverán como caracteres separados a menos que estén contenidas en delimitadores de secuencia de corchetes [ ].
log
Calcula el logaritmo natural de un número.
lower
Convierte todas las letras de un valor a minúsculas.
map
Aplica un filtro a una secuencia de objetos o busca un atributo. Este filtro es especialmente útil cuando trabajas con listas de objetos y solo necesitas obtener un valor en particular.
El uso básico es la asignación 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 dicc. Como alternativa, puedes permitir que aplique un filtro pasando el nombre del filtro seguido de los argumentos.
md5
Calcula el hash md5 del objeto dado.
minus_time
Resta una cantidad de tiempo a un objeto de fecha y hora.
multiply
Multiplica un valor por un número. Funciona igual que el \ operador *.
plus_time
Agrega una cantidad de tiempo a un objeto de fecha y hora.
pprint
Muestra una variable con formato legible. Muestra el tipo de variable y otra información útil para la depuración.
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á cada vez que se cargue la página de nuevo.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 cada vez que se carga una página, deberías usar JavaScript para mostrar de forma aleatoria el contenido del lado del cliente.
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.
Más información sobre la sintaxis regex RE2.
reject
Filtra una secuencia de objetos aplicando una prueba de expresión al objeto y rechazando los que tienen éxito en la prueba.
rejectattr
Filtra una secuencia de objetos aplicando una prueba a un atributo de un objeto y rechazando los que tienen éxito en la prueba.
render
Procesa cadenas que contienen HubL de manera anticipada para que el resultado pueda pasarse a otros filtros.
replace
Reemplaza todas las instancias de una subcadena por una nueva.
reverse
Revierte el objeto o devuelve un iterador que recorre el objeto en sentido inverso. Para invertir una lista utiliza .reverse()
root
Extrae la raíz cuadrada de un valor.
round
Redondea un número con la precisión especificada.
safe
Marca el valor como seguro, lo que evita que se escape en entornos con escape automático activado.
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 y que deberían permitir un HTML seguro.
Puedes incluir los siguientes parámetros para permitir los específicos tipos 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 también se ejecuta mediante escape_jinjava para evitar la interpretación anidada.
select
Filtra una secuencia de objetos aplicando una prueba al objeto y seleccionando solo los que tienen éxito en la prueba.
selectattr
Filtra una secuencia de objetos aplicando una prueba a un atributo de un objeto y seleccionando solo los que tienen éxito en la prueba.
shuffle
Organiza de forma aleatoria el orden de iteración a través de una secuencia. El siguiente ejemplo 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á cada vez que se cargue la página de nuevo.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 cada vez que se carga una página, deberías usar JavaScript para mostrar de forma aleatoria el contenido del lado del cliente.
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.
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 y el segundo parámetro determina si el orden distingue entre mayúsculas y minúsculas. El último parámetro especifica un atributo por el que ordenar. En el siguiente ejemplo, las entradas de un blog se representan y se ordenan alfabéticamente por nombre.
split
Divide la cadena de entrada en una lista usando el separador indicado. El primer parámetro especifica el separador entre el que se divide la variable y el segundo parámetro determina cuántas veces debe dividirse la variable. El resto de los artículos permanecerán en el grupo. En el siguiente ejemplo, una cadena de nombres se divide en el ; para los primeros cuatro nombres.
string
Convierte un tipo de variable diferente en una cadena. En el siguiente ejemplo, un número entero se convierte en una cadena (se utiliza pprint para confirmar el cambio de tipo de la variable).
Elimina las etiquetas SGML y XML, y reemplaza los espacios en blanco adyacentes por un espacio. Este filtro puede utilizarse para eliminar cualquier etiqueta HTML de una variable.
strtodate
Convierte una cadena y un formato de fecha en un objeto de fecha.
strtotime
Convierte una cadena de fecha y hora y un formato datetime en un objeto de fecha y hora.
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.
symmetric_difference
Este filtro devuelve la diferencia simétrica de dos conjuntos o listas. La lista que el filtro devuelve 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.
title
Devuelve una versión del valor en formato de título (es decir, las palabras comenzarán con letras mayúsculas y el resto de los caracteres estarán en minúsculas).
tojson
Escribe un objeto como una cadena JSON.
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.
truncate
Corta el texto después de un determinado número de caracteres. El valor predeterminado es 255. Los caracteres HTML se incluyen en este conteo.
Nota: ya que este filtro depende de los espacios entre palabras para acortar las cadenas, es posible que no funcione correctamente en idiomas que no los utilizan, como el japonés.
truncatehtml
Corta una cadena, respetando el marcado HTML (es decir, cerrará correctamente todas las etiquetas anidadas). Esto evitará que una etiqueta permanezca abierta después del corte. Los caracteres HTML no cuentan en el total de caracteres.
Nota: ya que este filtro depende de los espacios entre palabras para acortar las cadenas, es posible que no funcione correctamente en idiomas que no los utilizan, como el japonés.
unescape_html
Convierte texto con entidades codificadas en HTML a sus equivalentes en Unicode.
union
Este filtro devuelve la unión de dos conjuntos o listas. La lista que el filtro devuelve contiene todos los elementos únicos que están en cualquiera de las dos listas.
unique
Este filtro extrae un conjunto único de una secuencia o dicc. de objetos. Al filtrar un dicc., como una lista de mensajes devueltos por una función, puedes especificar qué atributo se utiliza para desduplicar los elementos en el dicc.
unixtimestamp
Este filtro convierte un objeto de fecha y hora en una marca de tiempo Unix.
Nota:
Este filtro debe usarse únicamente con variables que devuelvan una fecha. A partir del 30 de septiembre de 2024, este filtro ya no devolverá la fecha actual cuando se pase un valor nulo. Después de esa fecha, un valor nulo en el filtro devolverá el September 30, 2024.
upper
Convierte todas las letras de un valor a mayúsculas.
urlencode
Escapa y codifica la URL de una cadena usando el formato UTF-8. Acepta tanto diccionarios como cadenas regulares, así como iterables por pares.
urldecode
Decodifica las cadenas de URL codificadas de vuelta a la URL original. Acepta tanto diccionarios como cadenas regulares, así como iterables por pares.
urlize
Convierte direcciones URL en texto sin formato a 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.
wordcount
Cuenta el número de palabras de una cadena.
Si la cadena contiene HTML, utiliza el filtro striptags para obtener un recuento preciso.
wordwrap
Hace que las palabras se cierren al llegar a un número determinado de caracteres. Esto funciona mejor en una etiqueta <pre> porque HubSpot elimina los espacios en blanco de manera predeterminada.
xmlattr
Crea una cadena de atributos HTML y XML, basada en los elementos de un dicc. Todos los valores que no sean nulos ni indefinidos se escapan automáticamente. Antepone un espacio al elemento si el filtro devuelve algún valor, a menos que el primer parámetro sea falso.