Saltar al contenido principal
Para ampliar la lógica y la funcionalidad de tus plantillas, HubL admite varios operadores clave y pruebas de expresión. Los operadores permiten ejecutar funciones matemáticas, realizar comparaciones, generar lógica más compleja en las plantillas y modificar la representación del marcado. Además, este artículo contiene una lista completa de pruebas de expresión que se pueden utilizar en HubL.

Operadores

Los operadores son símbolos que indican al compilador de HubL que ejecute diversas operaciones que dan lugar al output final del marcador. Los operadores se colocan entre los operadores para relacionar ambos valores, ya sea para ejecutar funciones matemáticas, realizar comparaciones o implementar expresiones booleanas.
operators-and-operands-diagram
A continuación están los operadores que puedes utilizar en HubL, organizados por el tipo.

Matemáticas

Los operadores matemáticos estándar pueden utilizarse para calcular valores en el contexto de una plantilla.

Comparación

Los operadores de comparación se pueden utilizar para evaluar valores para la lógica de la plantilla. Puedes ver algunos ejemplos de operadores de comparación en las sentencias if.
La versión abreviada de los operadores de comparación se puede utilizar en filtros que implican la comprobación de una expresión como |selectattr().

Lógica

Los operadores lógicos te permiten implementar expresiones booleanas, así como combinar varias expresiones en una sola instrucción.
Utilizar operadores “and” y “or” En HubL, el operador or se comporta como el operador or en Python y como el operador || en JavaScript. Devolverá el primer operador si la expresión se evalúa como verdadera, en caso contrario devolverá el segundo operador. Un caso de uso habitual del operador or es el ajuste de un valor alternativo cuando no está definido el valor de una variable.
Sin embargo, el operador and se comporta de forma diferente al operador and en Python y al operador && en JavaScript. En HubL, and siempre devolverá un valor booleano: cuando la expresión se evalúe como verdadera, se devolverá true, de lo contrario devolverá false. Por otra parte, los operadores de Python y JavaScript devolverán un valor de operando dependiendo si la instrucción se evalúa como verdadera o falsa.
En HubL, las listas vacías ([]) y los dicc. vacíos ({}) se consideran falsos. Esto es equivalente al comportamiento en Python, pero diferente de JavaScript, donde [] y {} son veraces.

Otros operadores de HubL

A continuación se encuentran otros operadores importantes de HubL que pueden utilizarse para realizar diversas tareas.

Pruebas de expresión

Las pruebas de expresión son varias condiciones booleanas que pueden evaluarse utilizando operadores lógicos.

boolean

Verifica si el objeto es booleano (en un sentido estricto, no solo si puede evaluarse como una expresión verdadera).

containing

La prueba de expresión comprueba si una variable de lista tiene un valor en ella.

containingall

La prueba de expresión comprueba si una variable de lista contiene todos los valores de otra lista.

defined

La prueba de expresión comprueba si una variable está definida en el contexto de la plantilla. Aunque puedes utilizar esta prueba de expresión, al escribir una sentencia if sin ningún operador se comprobará por opción predeterminada si la variable está definida o no. En el siguiente ejemplo, se comprueba el parámetro de color de un módulo de color. Si el parámetro de color no tuviera ningún valor, la plantilla, por opción predeterminada, mostraría un color de fondo negro. Si se define, muestra el color de fondo establecido por el usuario.

divisibleby

Comprueba si un objeto es divisible por otro número. Por ejemplo, a continuación se crea un bucle for que itera a través de una lista de tipos de animales. Cada tipo de animal se imprime en un div, y al quinto div tiene aplicado un estilo en línea diferente (width:100%). Este concepto podría aplicarse a un blog en el que se renderiza un marcador diferente para un determinado patrón de entradas. Para saber más sobre los bucles for y loop.index, consulta este artículo.

equalto

Comprueba si el valor de una variable es igual a una constante o a otra variable. También puedes utilizar el operador == para realizar la misma prueba. En el siguiente ejemplo, el ancho de loas publicaciones del blog se ajusta en función del número total de entradas en el bucle. La salida del ejemplo supone que hay 4 publicaciones en el blog.

even

Comprueba si una variable numérica es un número par. El siguiente ejemplo muestra un bucle simplificado de listado de blogs, en el que si la iteración actual del bucle es par, se asigna una clase de even-post al div del elemento de la entrada. De lo contrario, se asigna una clase de odd-post.

float

Comprueba si una variable numérica es un número de punto flotante.

integer

Comprueba si una variable es un entero.

iterable

Comprueba si una variable se puede recorrer en bucle. Este ejemplo comprueba una variable llamada jobs para ver si puede ser iterada. Como la variable contiene una lista de trabajos, la sentencia if se evaluaría como true y el bucle se ejecutaría. Si la variable contuviera un solo valor, la sentencia if imprimiría ese valor con un marcador diferente. Más información sobre los bucles for.

lower

Comprueba si una cadena está en minúsculas. El siguiente ejemplo utiliza una instrucción unless y un filtro lower para asegurar que una cadena de texto introducida en un módulo de texto esté siempre en minúsculas.

mapping

Comprueba si un objeto es un dicc. (diccionario). El siguiente ejemplo comprueba si el objeto de contacto es un diccionario.

none

Comprueba si una variable tiene un valor null.

number

Comprueba si el valor de una variable es un número. El siguiente ejemplo comprueba si una variable es o no una variable, y si es así la convierte en millones.

odd

Comprueba si una variable numérica es un número impar. A continuación se muestra el mismo ejemplo que la prueba de expresión par inversa descrita anteriormente.

sameas

Comprueba si dos variables tienen o no el mismo valor. El siguiente ejemplo establece dos variables y luego comprueba si son iguales o no.

sequence

Similar a la prueba iterable, esta prueba de expresión comprueba si una variable es una secuencia. El siguiente ejemplo comprueba si una variable es una secuencia y luego itera a través de esa secuencia de géneros musicales.

string

Comprueba si el valor almacenado en una variable es texto. El siguiente ejemplo comprueba si una variable es o no una cadena, y si es así, aplica un filtro de título para cambiar las mayúsculas.

string_containing

Comprueba si una subcadena está contenida dentro de otra cadena. Esta prueba de expresión se utiliza junto con el operador is.

string_startingwith

Comprueba si una cadena empieza por una cadena determinada. Se utiliza junto con el operador is.

truthy

Comprueba si una expresión se evalúa como True. El siguiente ejemplo utiliza un módulo de casilla de verificación booleana para mostrar un mensaje de alerta.

undefined

Comprueba si una variable está indefinida en el contexto de la plantilla. Esta prueba es diferente de la de none, ya que undefined será true cuando la variable esté presente pero no tenga ningún valor; mientras que none será true cuando la variable tenga un valor nulo. El siguiente ejemplo comprueba la existencia de la variable “my_var” en una plantilla.

upper

Comprueba si una cadena está toda en mayúsculas. A continuación se muestra un ejemplo inverso de la prueba de expresión lower anterior.

within

Comprueba si una variable está presente en una lista.
Última modificación el 10 de febrero de 2026