Handlebars é um mecanismo de modelagem que permite definir um modelo com espaços reservados para elementos de dados esperados. Em tempo de execução, os valores reais desses elementos de dados são substituídos no modelo para criar uma saída.
O Handlebars utiliza o Mustache, que é um mecanismo de modelo sem lógica. O Mustache foi criado originalmente para permitir a criação de páginas HTML mais dinâmicas, mas pode ser usado para qualquer saída baseada em texto que possa ser criada a partir de um modelo.
Casos de uso:
O Handlebars pode atender a uma ampla variedade de necessidades, incluindo:
- Geração de e-mails formatados
- Criação de arquivos ou texto em um formato obrigatório, como o corpo de uma solicitação HTTP POST
- Processamento de cargas úteis JSON complexas, como as que têm matrizes aninhadas
Comandos do Handlebars
Há dois comandos para o conector Handlebars:
- Modelo de arquivo de renderização: Esse comando é usado para criar saídas grandes (>32k caracteres). Ele produz um arquivo físico que pode ser usado por comandos de cadeia subsequentes que exigem entrada de arquivo. Uma opção para armazenar um modelo de arquivo na Workiva é file resources.
- Renderizar modelo de texto: Esse comando é usado para criar saídas pequenas e médias. Gera uma saída baseada em texto que não pode ser usada em comandos subsequentes que exigem um arquivo físico.
Por sua vez, cada um desses comandos tem dois componentes principais:
- Modelo: O texto que é atualizado quando o comando é executado. O texto é renderizado exatamente como especificado, incluindo qualquer recuo ou retorno de carro.
- Variáveis: Os valores que serão substituídos no modelo quando o comando for executado. Você pode especificar variáveis individuais, como a saída da contagem de linhas de um comando como advanced query.
Exemplo de configuração
A seguir, um exemplo de configuração usando um modelo de texto de renderização:
Na seção de modelo do comando, há vários aspectos dignos de nota:
Esse modelo renderiza variáveis simples e json.
- Esse texto é recuado e renderiza a contagem de linhas: {{rows}}
Abaixo está a lista de prioridades no objeto JSON
{{#each priorities}}
+{{Priority}}
{{/each}}
- A primeira linha do modelo é puramente texto e não usa nenhuma variável.
- A segunda linha é recuada e usa a variável rows.
- A terceira linha está em branco por causa de um retorno de carro.
- As linhas 4 a 6 são usadas para processar a variável JSON chamada priorities.
- A linha 4 é o início de um loop na variável JSON chamada priorities.
- A linha 5 retorna o valor do par de valores-chave JSON para a chave chamada Priority. Observe que os nomes das chaves diferenciam maiúsculas de minúsculas - um sinal de mais (+) foi adicionado à linha para mostrar como o texto simples e os valores variáveis podem ser combinados.
- A linha 6 fecha o loop por meio do objeto JSON priorities.
Na seção de variáveis do comando:
- Uma variável denominada rows é definida como a saída Record Count de um comando anterior.
- Uma variável JSON denominada priorities é definida como a saída JSON File de um comando anterior.
Neste exemplo, o objeto JSON é o seguinte:
[
{"Priority": "Medium"},
{"Priority": "High"},
{"Priority": "Low"}
]
O texto renderizado resultante do comando Handlebars está abaixo:
Observação: Informações adicionais sobre as funções do Handlebar e como elas podem ser usadas para construir um modelo podem ser encontradas em nosso artigo sobre funções do Handlebars .
Coisas para saber
Os espaços reservados para variáveis são definidos por chaves duplas ({{Variable_Name}}) ou triplas ({{{Variable_Name}}}). As chaves triplas são usadas quando um valor de variável contém caracteres especiais de HTML que precisam ser renderizados como o caractere, e não como o código HTML associado ao caractere.
Por exemplo, o caractere maior que (>) é um caractere especial de HTML. Com chaves duplas, um valor de variável contendo esse caractere renderizaria o código HTML (>), enquanto as chaves triplas renderiam o caractere maior que (>).
Recursos adicionais
- Handlebars conector
- Comandos do guidão
- Funções do Handlebars