Prise en main

Lorsque nous utilisons Node ...

$ npm install nunjucks

Une fois installé, utilisez simplement require('nunjucks') pour le charger.

Lorsque nous sommes dans un navigateur ...

Utilisez nunjucks.js (min) pour avoir l'intégralité de la bibliothèque ou nunjucks-slim.js (min) pour avoir une version allégée qui fonctionne uniquement avec les templates précompilés.

Quel fichier devez-vous utiliser ?

Il suffit d'inclure nunjucks avec une balise script dans la page :

<script src="nunjucks.js"></script>

ou le charger comme un module AMD :

define(['nunjucks'], function(nunjucks) {
});

Quoi que vous fassiez, assurez-vous de précompiler vos templates en production ! Il existe des tâches grunt et gulp pour vous aider à faire cela. Lisez Utilisation dans un navigateur pour en savoir plus sur les configurations optimales côté client.

Utilisation

Ceci est la façon la plus simple pour utiliser nunjucks. Tout d'abord, définissez les indicateurs de configuration comme par exemple l'auto-échappement puis faites le rendu d'une chaîne :

nunjucks.configure({ autoescape: true });
nunjucks.renderString('Hello {{ username }}', { username: 'James' });

Généralement, vous n'utiliserez pas renderString, au lieu de cela, vous devez écrire des templates dans des fichiers individuels et utiliser render. De cette façon, vous pouvez hériter et inclure des templates. Dans ce cas, vous devez dire à nunjucks où se trouvent ces fichiers templates avec le premier argument de configure :

nunjucks.configure('views', { autoescape: true });
nunjucks.render('index.html', { foo: 'bar' });

Dans node, 'views' serait un chemin relatif par rapport au répertoire de travail actuel. Dans le navigateur, ce serait une URL relative et vous voulez probablement qu'elle soit absolue, telle que '/views'.

En utilisant express ? Il suffit simplement de passer votre app express dans configure :

var app = express();

nunjucks.configure('views', {
    autoescape: true,
    express: app
});

app.get('/', function(req, res) {
    res.render('index.html');
});

L'API ci-dessus fonctionne dans node et dans le navigateur (express est seulement dans node, évidemment). Dans node, nunjucks charge les templates à partir du système de fichiers par défaut et dans le navigateur il les charge depuis HTTP.

Si avez précompilé vos templates dans le navigateur, ils seront automatiquement repris par le système et vous ne devez rien faire de plus. Cela facilite l'utilisation du même code dans les environnements de développement et de production, en utilisant des templates précompilés en production.

Plus d'informations

C'est seulement la partie visible de l'iceberg. Regardez API pour les docs de l'API et Templating pour le langage des templates.