Bibliothèque de consolidation du moteur de modèles.
$ npm install consolidate
Certains packages ont le même nom de clé, la consolidation les chargera en fonction du numéro de commande. Par exemple pour dust, consolidate essaiera d'utiliser dans cet ordre : dust
, dustjs-helpers
et dustjs-linkedin
. Si dust
est installé, dustjs-linkedin
ne sera pas utilisé par consolidate.
Nom cons.* | Nom du colis/commande | Site Web / État |
---|---|---|
atpl | npm install atpl | - |
support | npm install bracket-template | - |
point | npm install dot | (site web) |
npm install dust (1) | (site Web) / (non maintenu) Voir : dustjs-linkedin | |
poussière | npm install dustjs-helpers (2) ounpm install dustjs-linkedin (3) | (site web) |
npm install eco | /! Problème de sécurité | |
ect | npm install ect | (site web) |
ejs | npm install ejs | (site web) |
Hamlet | npm install hamlet | - |
hamljs | npm install hamljs | - |
café-hamml | npm install haml-coffee | - |
guidon | npm install handlebars | (site web) |
hogan | npm install hogan.js | (site web) |
HTML | npm install htmling | - |
npm install jade | (site Web) / (renommé pug ) | |
jazz | npm install jazz | - |
npm install jqtpl | (obsolète) | |
juste | npm install just | - |
liquide | npm install tinyliquid | (site web) n'ajoutera jamais de nouvelles fonctionnalités |
alcool | npm install liquor | - |
lodash | npm install lodash | (site web) |
Marko | npm install marko | (site web) |
motte | npm install mote | (site web) |
moustache | npm install mustache | - |
nonnes | npm install nunjucks | (site web) |
assiettes | npm install plates | - |
carlin | npm install pug | (site Web) / (anciennement jade) |
qejs | npm install qejs | - |
réactif | npm install ractive | - |
rasoir | npm install razor | - |
réagir | npm install react | - |
slm | npm install slm | - |
écureuil | npm install squirrelly | (site web) |
npm install swig (1) | (non maintenu) Voir : modèles de swig | |
lampée | npm install swig-templates (2) | - |
tasse à thé | npm install teacup | - |
modèle | npm install templayed | (site web) |
caramel au beurre | npm install toffee | - |
brindille | npm install twig | (wiki) |
pincement | npm install twing | (site web) |
souligner | npm install underscore | (site web) |
vasquer | npm install vash | - |
vitessejs | BÊTA | (site web) |
morse | npm install walrus | (site web) |
moustaches | npm install whiskers | - |
NOTE : vous devez quand même installer les moteurs que vous souhaitez utiliser, ajoutez-les à vos dépendances package.json.
Tous les modèles pris en charge par cette bibliothèque peuvent être rendus à l'aide de la signature (path[, locals], callback)
comme indiqué ci-dessous, qui se trouve être la signature prise en charge par Express afin que n'importe lequel de ces moteurs puisse être utilisé dans Express.
REMARQUE : tout cet exemple de code utilise cons.swig pour le moteur de modèle swig. Remplacez swig par le modèle que vous utilisez. Par exemple, utilisez cons.hogan pour hogan.js, cons.jade pour jade, etc. console.log(cons)
pour la liste complète des identifiants.
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
Ou sans options/variables locales :
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
Pour passer dynamiquement le moteur, utilisez simplement l'opérateur d'indice et une variable :
var cons = require ( 'consolidate' )
, name = 'swig' ;
cons [ name ] ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
De plus, tous les modèles renvoient éventuellement une promesse si aucune fonction de rappel n'est fournie. La promesse représente le résultat éventuel de la fonction de modèle qui sera soit résolu en une chaîne, compilée à partir du modèle, soit rejeté. Les promesses exposent une méthode then
qui enregistre les rappels pour recevoir la valeur éventuelle de la promesse et une méthode catch
qui explique la raison pour laquelle la promesse n'a pas pu être tenue. Les promesses permettent une structure de code plus synchrone et résolvent des problèmes tels que les conditions de concurrence.
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } )
. then ( function ( html ) {
console . log ( html ) ;
} )
. catch ( function ( err ) {
throw err ;
} ) ;
Pour activer la mise en cache, transmettez simplement { cache: true }
. Les moteurs peuvent utiliser cette option pour mettre en cache les éléments lisant le contenu du fichier, Function
compilées, etc. Les moteurs qui ne le prennent pas en charge peuvent simplement l'ignorer. Tous les moteurs pour lesquels consolidate.js implémentent les E/S mettront en cache le contenu du fichier, ce qui est idéal pour les environnements de production. Lors de l'utilisation directe de la consolidation : cons.swig('views/page.html', { user: 'tobi', cache:true }, callback);
Utilisation des versions Express prises en charge : app.locals.cache = true
ou définissez NODE_ENV sur "production" et Express le fera pour vous.
var express = require ( 'express' )
, cons = require ( 'consolidate' )
, app = express ( ) ;
// assign the swig engine to .html files
app . engine ( 'html' , cons . swig ) ;
// set .html as the default extension
app . set ( 'view engine' , 'html' ) ;
app . set ( 'views' , __dirname + '/views' ) ;
var users = [ ] ;
users . push ( { name : 'tobi' } ) ;
users . push ( { name : 'loki' } ) ;
users . push ( { name : 'jane' } ) ;
app . get ( '/' , function ( req , res ) {
res . render ( 'index' , {
title : 'Consolidate.js'
} ) ;
} ) ;
app . get ( '/users' , function ( req , res ) {
res . render ( 'users' , {
title : 'Users' ,
users : users
} ) ;
} ) ;
app . listen ( 3000 ) ;
console . log ( 'Express server listening on port 3000' ) ;
Les moteurs de modèles sont exposés via l'objet cons.requires
, mais ils ne sont pas instanciés tant que vous n'avez pas appelé la méthode cons[engine].render()
. Vous pouvez les instancier manuellement au préalable si vous souhaitez ajouter des filtres, des globaux, des mixins ou d'autres fonctionnalités du moteur.
var cons = require ( 'consolidate' ) ,
nunjucks = require ( 'nunjucks' ) ;
// add nunjucks to requires so filters can be
// added and the same instance will be used inside the render method
cons . requires . nunjucks = nunjucks . configure ( ) ;
cons . requires . nunjucks . addFilter ( 'foo' , function ( ) {
return 'bar' ;
} ) ;
exports.nunjucks.render
dans lib.consolidate.js
. Vous pouvez transmettre votre propre moteur/environnement via options.nunjucksEnv
, ou si vous souhaitez prendre en charge Express, vous pouvez transmettre options.settings.views
, ou si vous avez un autre cas d'utilisation, transmettre options.nunjucks
(voir le code pour plus d'informations).options.partials
options.loader
.options.filters
et spécifiez un tableau de propriétés, chacune étant une fonction de filtre nommée. Une fonction de filtre prend une chaîne comme paramètre et en renvoie une version modifiée.options.customTags
pour spécifier un tableau de fonctions de balise qui suivent la définition de balise personnalisée tinyliquid.options.includeDir
.React
Pour restituer le contenu dans un modèle de base HTML (par exemple index.html
de votre application React), transmettez le chemin du modèle avec options.base
. Installer les développeurs :
$ npm install -d
Exécutez les tests :
$ make test
(La licence MIT)
Copyright (c) 2011-2016 TJ Holowaychuk
L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), d'utiliser le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion. , publier, distribuer, accorder des sous-licences et/ou vendre des copies du Logiciel, et permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI « TEL QUEL », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLIT OU AUTRE, DÉCOULANT DE, DE OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES TRANSACTIONS DANS LE LOGICIEL.