Handlebars ist ein Templating-Mechanismus, der die Möglichkeit bietet, eine Vorlage mit Platzhaltern für erwartete Datenelemente zu definieren. Zur Laufzeit werden die tatsächlichen Werte für diese Datenelemente in der Vorlage ersetzt, um eine Ausgabe zu erstellen.
Handlebars verwendet Mustache, eine logiklose Template-Engine. Mustache wurde ursprünglich entwickelt, um die Erstellung dynamischerer HTML-Seiten zu ermöglichen, kann aber für jede textbasierte Ausgabe, die aus einer Vorlage erstellt werden kann, verwendet werden.
Anwendungsfälle
Lenker können eine Vielzahl von Anforderungen erfüllen, z. B:
- Generierung formatierter E-Mails
- Erstellen von Dateien oder Text in einem erforderlichen Format, z. B. dem Body einer HTTP-POST-Anforderung
- Verarbeitung komplexer JSON-Nutzdaten, wie z. B. solche mit verschachtelten Arrays
Handlebars-Befehle
Es gibt zwei Befehle für den Handlebars-Anschluss:
- Renderdatei-Vorlage: Dieser Befehl wird verwendet, um große (>32k Zeichen) Ausgaben zu erstellen. Er erzeugt eine physische Datei, die von nachfolgenden Kettenbefehlen verwendet werden kann, die eine Dateieingabe erfordern. Eine Möglichkeit, eine Dateivorlage in Workiva zu speichern, ist file resources.
- Textvorlage rendern: Dieser Befehl wird verwendet, um kleine bis mittlere Ausgaben zu erstellen. Er erzeugt eine textbasierte Ausgabe, die in nachfolgenden Befehlen, die eine physische Datei erfordern, nicht verwendet werden kann.
Jeder dieser Befehle hat wiederum zwei Hauptkomponenten:
- Vorlage: Der Text, der bei der Ausführung des Befehls aktualisiert wird. Der Text wird genau so wiedergegeben, wie er angegeben wurde, einschließlich aller Einrückungen und Zeilenumbrüche.
- Variablen: Die Werte, die bei der Ausführung des Befehls in der Vorlage ersetzt werden sollen. Einzelne Variablen können angegeben werden, z. B. die Zeilenzählung, die von einem Befehl wie advanced query ausgegeben wird.
Beispielkonfiguration
Im Folgenden wird eine Beispielkonfiguration mit einer Rendering-Textvorlage gezeigt:
Im Abschnitt "Vorlage" des Befehls gibt es einige Dinge zu beachten:
Diese Vorlage rendert einfache und Json-Variablen.
- Dieser Text ist eingerückt und gibt die Zeilenzahl an: {{rows}}
Nachfolgend die Liste der Prioritäten im JSON-Objekt
{{#each priorities}}
+{{Priority}}
{{/each}}
- Die erste Zeile der Vorlage ist reiner Text und verwendet keine Variablen.
- Die zweite Zeile ist eingerückt und verwendet die Variable rows.
- Die dritte Zeile ist wegen eines Wagenrücklaufs leer.
- Die Zeilen 4-6 dienen der Verarbeitung der JSON-Variable mit der Bezeichnung priorities.
- Zeile 4 ist der Beginn einer Schleife durch die JSON-Variable namens priorities.
- Zeile 5 gibt den Wert aus dem JSON-Schlüssel-Wert-Paar für den Schlüssel mit der Bezeichnung Priorität zurück. Beachten Sie, dass bei den Schlüsselnamen zwischen Groß- und Kleinschreibung unterschieden wird - ein Pluszeichen (+) wurde in die Zeile eingefügt, um zu zeigen, wie Klartext und Variablenwerte normalerweise kombiniert werden können.
- Zeile 6 schließt die Schleife durch die Prioritäten JSON-Objekt.
Im Abschnitt "Variablen" des Befehls:
- Eine Variable mit dem Namen rows ist definiert als die Ausgabe Record Count eines früheren Befehls.
- Eine JSON-Variable mit dem Namen „priorities“ wird als JSON-Dateiausgabe eines vorherigen Befehls definiert.
In diesem Beispiel sieht das JSON-Objekt wie folgt aus:
[
{"Priorität": "Mittel"},
{"Priorität": "Hoch"},
{"Priorität": "Niedrig"}
]
Der gerenderte Text des Befehls Handlebars ist unten zu sehen:
Hinweis: Weitere Informationen über Handlebar-Funktionen und wie sie zum Aufbau einer Vorlage verwendet werden können, finden Sie in unserem Artikel Handlebar-Funktionen.
Wissenswertes
Variable Platzhalter werden durch doppelte ({{Variable_Name}}) oder dreifache ({{{Variable_Name}}}) geschweifte Klammern definiert. Dreifach geschweifte Klammern werden verwendet, wenn ein Variablenwert HTML-Sonderzeichen enthält, die als das Zeichen und nicht als der mit dem Zeichen verbundene HTML-Code wiedergegeben werden müssen.
Das Größer-als-Zeichen (>) ist zum Beispiel ein HTML-Sonderzeichen. Bei doppelten geschweiften Klammern würde ein Variablenwert, der dieses Zeichen enthält, den HTML-Code (>) darstellen, während dreifache geschweifte Klammern das Zeichen größer als (>) darstellen würden.