Handlebars to mechanizm szablonów, który zapewnia możliwość zdefiniowania szablonu z symbolami zastępczymi dla oczekiwanych elementów danych. W czasie wykonywania rzeczywiste wartości tych elementów danych są podstawiane do szablonu w celu utworzenia danych wyjściowych.
Handlebars wykorzystuje Mustache, który jest bezlogicznym silnikiem szablonów. Mustache został pierwotnie stworzony, aby umożliwić tworzenie bardziej dynamicznych stron HTML, ale może być używany do dowolnego wyjścia tekstowego, które można utworzyć z szablonu.
Przypadki użycia
Kierownice mogą zaspokoić wiele różnych potrzeb, w tym:
- Generowanie sformatowanych wiadomości e-mail
- Tworzenie plików lub tekstu w wymaganym formacie, takim jak treść żądania HTTP POST
- Przetwarzanie złożonych ładunków JSON, takich jak te z zagnieżdżonymi tablicami
Polecenia kierownicy
Istnieją dwa polecenia dla złącza Handlebars:
- Szablon pliku renderowania: To polecenie służy do tworzenia dużych (>32 tys. znaków) plików wyjściowych. Tworzy fizyczny plik, który może być używany przez kolejne polecenia łańcucha, które wymagają wprowadzenia pliku. Jedną z opcji przechowywania szablonu pliku w Workiva jest zasoby plików.
- Renderuj szablon tekstu: To polecenie służy do tworzenia małych i średnich wydruków. Generuje tekstowe dane wyjściowe, których nie można użyć w kolejnych poleceniach wymagających fizycznego pliku.
Z kolei każde z tych poleceń ma dwa podstawowe składniki:
- Szablon: Tekst, który jest aktualizowany po uruchomieniu polecenia. Tekst jest renderowany dokładnie tak, jak określono, łącznie z wcięciami i znakami powrotu karetki.
- Zmienne: Wartości, które zostaną zastąpione w szablonie po uruchomieniu polecenia. Można określić indywidualne zmienne, takie jak liczba wierszy wyjściowych polecenia takiego jak advanced query.
Przykładowa konfiguracja
Poniżej znajduje się przykładowa konfiguracja wykorzystująca szablon renderowania tekstu:
W sekcji szablonu polecenia jest kilka rzeczy, na które warto zwrócić uwagę:
Ten szablon renderuje zmienne zwykłe i json.
- Ten tekst jest wcięty i renderuje liczbę wierszy: {{rows}}
Poniżej znajduje się lista priorytetów w obiekcie JSON
{{#each priorities}}
+{{Priority}}
{{/each}}
- Pierwsza linia szablonu jest czysto tekstowa i nie używa żadnych zmiennych.
- Drugi wiersz jest wcięty i używa zmiennej rows.
- Trzecia linia jest pusta z powodu powrotu karetki.
- Linie 4-6 służą do przetwarzania zmiennej JSON o nazwie priorytety.
- Linia 4 jest początkiem pętli przechodzącej przez zmienną JSON o nazwie priorities.
- Linia 5 zwraca wartość z pary klucz-wartość JSON dla klucza o nazwie Priority. Zwróć uwagę, że w nazwach kluczy rozróżniana jest wielkość liter - znak plus (+) został dodany do linii, aby pokazać, w jaki sposób zwykły tekst i wartości zmiennych mogą być zwykle łączone.
- Linia 6 zamyka pętlę przez obiekt priorities JSON.
W sekcji zmiennych polecenia:
- Zmienna o nazwie rows jest zdefiniowana jako Record Count dane wyjściowe z poprzedniego polecenia.
- Zmienna JSON o nazwie priorytety jest zdefiniowana jako dane wyjściowe pliku JSON poprzedniego polecenia.
W tym przykładzie obiekt JSON jest następujący:
[
{"Priorytet": "Średni"},
{"Priorytet": "Wysoki"},
{"Priorytet": "Niski"}
]
Wynikowy renderowany tekst z polecenia Handlebars znajduje się poniżej:
Uwaga: Dodatkowe informacje na temat funkcji Handlebars i sposobu ich wykorzystania do budowy szablonu można znaleźć w naszym artykule Funkcje Handlebars.
Co warto wiedzieć
Zmienne zastępcze są definiowane przez podwójne ({{Variable_Name}}) lub potrójne ({{Variable_Name}}) nawiasy klamrowe. Potrójne nawiasy klamrowe są używane, gdy wartość zmiennej zawiera znaki specjalne HTML, które muszą być renderowane jako znak, w przeciwieństwie do kodu HTML powiązanego ze znakiem.
Na przykład, znak większy niż (>) jest znakiem specjalnym HTML. W przypadku podwójnych nawiasów klamrowych wartość zmiennej zawierająca ten znak renderowałaby kod HTML (>), podczas gdy potrójne nawiasy klamrowe renderowałyby znak większy niż (>).