Handlebars es un mecanismo de plantillas que ofrece la posibilidad de definir una plantilla con marcadores de posición para elementos de datos previstos. En tiempo de ejecución, los valores reales de esos elementos de datos se sustituyen en el modelo para crear un Resultado.
Handlebars utiliza Mustache, que es un motor de plantillas sin lógica. Mustache se creó originalmente para permitir construir páginas HTML más dinámicas, pero puede utilizarse para cualquier salida basada en texto que pueda crearse a partir de una plantilla.
Casos prácticos
Las asas pueden abordar una amplia variedad de necesidades, entre ellas:
- Generando correos electrónicos con formato
- Creando archivos o texto en un formato requerido, como el cuerpo de una solicitud HTTP POST.
- Procesar cargas JSON complejas, como las que tienen matrices anidadas.
Comandos de asas
Hay dos comandos para el conector del asas:
- Representar plantilla de archivos: Este comando se utiliza para crear resultados de gran tamaño (>32k caracteres). Produce un archivo físico que puede ser utilizado por comandos de cadena posteriores que requieran la introducción de archivos. Una opción para almacenar una plantilla de archivo en Workiva es recursos de archivo.
- Representar plantilla de texto: Este comando se utiliza para crear resultados pequeños y medianos. Genera un resultado basado en texto que no puede utilizarse en comandos posteriores que requieran un archivo físico.
A su vez, cada uno de estos comandos tiene dos componentes principales:
- Plantilla: El texto que se actualiza cuando se ejecuta el comando. El texto se representa exactamente como se especifica, incluyendo cualquier sangría o retorno de carro.
- Las variables: Los valores que se reemplazarán en la plantilla cuando se ejecute el comando. Pueden especificarse variables individuales, como el resultado del recuento de filas de un comando como consulta avanzada.
Ejemplo de configuración
A continuación se muestra un ejemplo de configuración que utiliza una plantilla de texto representado:
En la sección de plantilla del comando, hay varias cosas que merece la pena anotar:
Esta plantilla representa variables planas y JSON.
- Este texto está sangrado y representa el recuento de filas: {{rows}}
A continuación se muestra la lista de prioridades en el objeto JSON
{{#each priorities}}
+{{Priority}}
{{/each}}
- La primera línea de la plantilla es puramente texto y no utiliza ninguna variable.
- La segunda línea está sangrada y utiliza la variable filas.
- La tercera línea está en blanco debido a un retorno de carro.
- Las líneas 4-6 se utilizan para procesar la variable JSON denominada prioridades.
- La línea 4 es el comienzo de un bucle a través de la variable JSON llamada priorities.
- La línea 5 devuelve el valor desde el par clave-valor JSON para la clave llamada Prioridad. Ten en cuenta que los nombres de las claves distinguen entre mayúsculas y minúsculas: se ha añadido un signo más (+) a la línea para mostrar cómo suelen combinarse el texto sin formato y los valores de las variables.
- La línea 6 cierra el bucle a través del objeto JSON Prioridades.
En la sección de variables del comando:
- Una variable llamada filas se define como el Recuento de Registros resultado de un comando anterior.
- Una variable JSON denominada prioridades se define como el Archivo JSON resultado de un comando anterior.
En este ejemplo, el objeto JSON es el siguiente:
[
{"Prioridad": "Media"},
{"Prioridad": "Alta"},
{"Prioridad": "Baja"}
]
A continuación se muestra el texto renderizado resultante desde el comando Asas:
Nota: Puedes encontrar información adicional sobre las funciones del Manillar y cómo pueden utilizarse para construir una plantilla en nuestro artículo Funciones del Manillar.
Lo que hay que saber
Los marcadores de posición de variables se definen mediante llaves dobles ({{Variable_Name}}) o triples ({{{Variable_Name}}}). Las llaves triples se utilizan cuando el valor de una variable contiene caracteres especiales HTML que deben representarse como el carácter, en lugar del código HTML asociado al carácter.
Por ejemplo, el carácter mayor que (>) es un carácter especial de HTML. Con llaves dobles, un valor de variable que contenga este carácter representaría el código HTML (>), mientras que con llaves triples se representaría el carácter mayor que (>).