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 pueden utilizarse en HubL.
Símbolo | Descripción |
---|---|
+ | Suma dos objetos, generalmente valores numéricos. Para concatenar cadenas o listas, debes utilizar el operador ~ . |
- | Resta un número de otro. |
/ | Divide números |
% | Devuelve el resto de la división de números |
// | Divide dos números y devuelve el resultado entero truncado. Por ejemplo, {{ 20 // 7 }} es 2 . |
* | Multiplica números |
** | Eleva el operador izquierdo a la potencia del operador derecho |
Símbolo | Abreviación | Descripción |
---|---|---|
== | eq | Igual a. Evalúa como verdadero si los dos objetos tienen valores iguales. |
!= | ne | No es igual a. Se evalúa como verdadero si dos objetos no son iguales. |
> | gt | Mayor que. Evalúa como verdadero si el valor del operador izquierdo es mayor que el del operador derecho. |
>= | gte | Mayor que o igual a. Evalúa como verdadero si el operador izquierdo es mayor o igual que el operador derecho. |
< | lt | Menor que. Evalúa como verdadero si el operador izquierdo es menor que el operador derecho. |
<= | lte | Menor que o igual a. Evalúa como verdadero si el operador izquierdo es menor o igual que el operador derecho. |
|selectattr()
.Símbolo | Descripción |
---|---|
and | Devuelve true si tanto el operador izquierdo como el derecho son verdaderos. En caso contrario, devuelve false . Este operador no se comporta como el operador and en Python o el operador && en JavaScript. Más información sobre el uso de los operadores and a continuación. |
or | Devuelve el primer operador si es verdadero. En caso contrario, devuelve el segundo operador. Este operador es equivalente a or en Python y || en JavaScript Más información sobre el uso de los operadores or a continuación. |
is | Une dos operadores para una declaración afirmativa. |
not | Niega una afirmación, junto con is . |
(expr) | Agrupa una expresión para el orden de las operaciones. Por ejemplo, (10 - 2) * variable . |
? | El operador ternario puede utilizarse para escribir rápidamente la lógica condicional. Acepta 3 argumentos: expresión, condición verdadera, condición falsa. Evalúa una expresión y devuelve la condición correspondiente. |
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.
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.
[]
) y los dicc. vacíos ({}
) se consideran falsos. Esto es equivalente al comportamiento en Python, pero diferente de JavaScript, donde []
y {}
son veraces.
Símbolo | Descripción |
---|---|
in | Comprueba si un valor está en una secuencia. |
is | Realiza una prueba de expresión. |
| | Aplica un filtro. |
~ | Concatena los valores. |
==
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-post
al div del elemento de la entrada. De lo contrario, se asigna una clase de odd-post
.
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.
null
.
is
.
is
.
True
.
El siguiente ejemplo utiliza un módulo de casilla de verificación booleana para mostrar un mensaje de alerta.
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.
lower
anterior.