Certains projets peuvent vouloir utiliser Handlebars pour générer les pages statiques du projet.
Configuration:
{
"html": {
"engine": "handlebars"
}
}
On notera que, par défaut, toutes les variables qui seront utiliser pour
peupler les fichiers lors de la compilation sont dans le dossier src/data
Ces données sont sous la forme de fichiers JSON avec un fichier générique
(src/data/data.json
), plus un fichier spécifique qui doit porter le même nom
que le gabarit Handlebars correspondant (src/data/mon/fichier/hbs.json
). Les
deux sont amalgamés pour être utilisé par le gabarit Handlebars. Si les deux
fichiers proposent les mêmes variables, celles du fichier spécifique écrase
celles du fichier générique.
Le layout par defaut des pages est src/html/layout/_default.hbs
. Pour le
changer, il suffit de changer la configuration du projet:
{
"html": {
"layout": "_default.hbs"
}
}
Un layout specific peut être appliqué à chaque page, il suffit de rajouter une
clé template
avec le nom du layout à utiliser dans le fichier de data de la
page correspondante.
NOTE: Tous les layouts doivent être placés dans le dossier
src/html/layout
NOTE: Dans le layout, le contenu de la page est inclus via le partial
{{> body}}
Handlebars peut être etendu par l'usage de helpers.
De manière général, pour rajouter un helpers, il suffit d'écrire un module
CommonJS qui exposera une fonction definisant le helpers. Ce module doit être
placé dans le dossier .gsk/tools/handlebars/helpers
. Le nom du helper sera
le nom du fichier (sans extention).
Un helper definie de cette façon a cette forme:
module.exports = function (/* context, */ options) {
return options.fn(this);
};
Pour en savoir plus sur la création de helpers, la documentation officiel de handlebars est là pour vous aider
Pour voir quelques exemples concrets vous pouvez jetez un coup d’œil dans le repertoire .gsk/tools/handlebars/helpers.