Handlebars è un meccanismo di template che consente di definire un modello con segnaposto per gli elementi di dati previsti. In fase di esecuzione, i valori effettivi degli elementi di dati vengono sostituiti nel modello per creare un output.
Handlebars utilizza Mustache, un motore di template senza logica. Mustache è stato originariamente creato per consentire la creazione di pagine HTML più dinamiche, ma può essere utilizzato per qualsiasi output testuale che possa essere creato da un modello.
Casi d'uso
Handlebars può rispondere a un'ampia gamma di esigenze, tra cui:
- Generazione di email formattate
- Creazione di file o testo in un formato richiesto, come ad esempio il corpo di una richiesta HTTP POST
- Elaborazione di payload JSON complessi, come quelli che contengono array annidati
Comandi Handlebars
Esistono due comandi per il connettore Handlebars:
- Modello di file di rendering: Questo comando viene utilizzato per creare output di grandi dimensioni (>32k caratteri). Produce un file fisico che può essere utilizzato dai successivi comandi a catena che richiedono l'inserimento di un file. Un'opzione per memorizzare un modello di file in Workiva è risorse di file.
- Render text template: Questo comando viene utilizzato per creare output di dimensioni medio-piccole. Genera un output basato sul testo che non può essere utilizzato nei comandi successivi che richiedono un file fisico.
A loro volta, ognuno di questi comandi ha due componenti principali:
- Template: Il testo che viene aggiornato all'esecuzione del comando. Il testo viene reso esattamente come specificato, compresi eventuali rientri o ritorni a capo.
- Variabili: I valori che verranno sostituiti nel modello all'esecuzione del comando. È possibile specificare singole variabili, come ad esempio il conteggio delle righe di un comando come advanced query.
Esempio di configurazione
Il seguente è un esempio di configurazione che utilizza un modello di testo di rendering:
Nella sezione template del comando, ci sono diverse cose da notare:
Questo modello visualizza variabili semplici e json.
- Questo testo è indentato e rende il conteggio delle righe: {{rows}}
Di seguito sono elencate le priorità nell'oggetto JSON
{{#each priorities}}
+{{Priority}}
{{/each}}
- La prima riga del modello è puramente testuale e non utilizza alcuna variabile.
- La seconda riga è rientrata e utilizza la variabile righe.
- La terza riga è vuota a causa di un ritorno a capo.
- Le righe 4-6 sono utilizzate per elaborare la variabile JSON chiamata priorities.
- La riga 4 è l'inizio di un ciclo attraverso la variabile JSON chiamata priorities.
- La riga 5 restituisce il valore della coppia chiave-valore JSON per la chiave chiamata Priorità. Nota che i nomi delle chiavi sono sensibili alle maiuscole e alle minuscole -- è stato aggiunto un segno più (+) alla riga per mostrare come il testo normale e i valori variabili possono essere solitamente combinati.
- La riga 6 chiude il ciclo attraverso l'oggetto priorities JSON.
Nella sezione variabili del comando:
- Una variabile denominata rows è definita come l'output Record Count di un comando precedente.
- Una variabile JSON denominata priorità è definita come l'output JSON File di un comando precedente.
In questo esempio, l'oggetto JSON è il seguente:
[
{"Priorità": "Media"},
{"Priorità": "Alta"},
{"Priorità": "Bassa"}
]
Il testo risultante dal comando Handlebars è riportato di seguito:
Nota: Ulteriori informazioni sulle funzioni Handlebar e su come possono essere utilizzate per costruire un modello sono disponibili nell'articolo Funzioni Handlebars.
Cose da sapere
I segnaposto delle variabili sono definiti da parentesi graffe doppie ({{Variable_Name}}) o triple ({{{Variable_Name}}}). Le parentesi graffe triple si utilizzano quando il valore di una variabile contiene caratteri speciali HTML che devono essere resi come carattere, al contrario del codice HTML associato al carattere.
Ad esempio, il carattere maggiore di (>) è un carattere speciale HTML. Con le parentesi doppie, un valore variabile contenente questo carattere renderà il codice HTML (>) mentre le parentesi triple renderanno il carattere maggiore di (>).