Konsolidierungsbibliothek für Template-Engines.
$ npm install consolidate
Einige Pakete haben denselben Schlüsselnamen. Consolidate lädt sie entsprechend der Bestellnummer. Als Beispiel für Staub versucht consolidate, in dieser Reihenfolge zu verwenden: dust
, dustjs-helpers
und dustjs-linkedin
. Wenn dust
installiert ist, wird dustjs-linkedin
von Consolidate nicht verwendet.
cons.* | Paketname/Bestellung | Website / Staat |
---|---|---|
atpl | npm install atpl | - |
Halterung | npm install bracket-template | - |
Punkt | npm install dot | (Webseite) |
npm install dust (1) | (Website) / (nicht gepflegt) Siehe: dustjs-linkedin | |
Staub | npm install dustjs-helpers (2) odernpm install dustjs-linkedin (3) | (Webseite) |
npm install eco | /! Sicherheitsproblem | |
ect | npm install ect | (Webseite) |
ejs | npm install ejs | (Webseite) |
Weiler | npm install hamlet | - |
hamljs | npm install hamljs | - |
Haml-Kaffee | npm install haml-coffee | - |
Lenker | npm install handlebars | (Webseite) |
hogan | npm install hogan.js | (Webseite) |
HTMLing | npm install htmling | - |
npm install jade | (Website) / (umbenannt in pug ) | |
Jazz | npm install jazz | - |
npm install jqtpl | (veraltet) | |
Nur | npm install just | - |
flüssig | npm install tinyliquid | (Webseite) wird niemals neue Funktionen hinzufügen |
Alkohol | npm install liquor | - |
lodash | npm install lodash | (Webseite) |
Marko | npm install marko | (Webseite) |
mote | npm install mote | (Webseite) |
Schnurrbart | npm install mustache | - |
Nunjucks | npm install nunjucks | (Webseite) |
Teller | npm install plates | - |
Mops | npm install pug | (Website) / (ehemals jade) |
qejs | npm install qejs | - |
raktiv | npm install ractive | - |
Rasiermesser | npm install razor | - |
reagieren | npm install react | - |
slm | npm install slm | - |
Eichhörnchen | npm install squirrelly | (Webseite) |
npm install swig (1) | (nicht gepflegt) Siehe: Swig-Vorlagen | |
Schluck | npm install swig-templates (2) | - |
Teetasse | npm install teacup | - |
temporär | npm install templayed | (Webseite) |
Toffee | npm install toffee | - |
Zweig | npm install twig | (Wiki) |
zwing | npm install twing | (Webseite) |
unterstreichen | npm install underscore | (Webseite) |
vash | npm install vash | - |
Geschwindigkeitjs | BETA | (Webseite) |
Walross | npm install walrus | (Webseite) |
Schnurrhaare | npm install whiskers | - |
HINWEIS : Sie müssen weiterhin die Engines installieren, die Sie verwenden möchten, und sie zu Ihren package.json-Abhängigkeiten hinzufügen.
Alle von dieser Bibliothek unterstützten Vorlagen können mit der unten gezeigten Signatur (path[, locals], callback)
gerendert werden. Dabei handelt es sich zufällig um die Signatur, die Express unterstützt, sodass jede dieser Engines in Express verwendet werden kann.
HINWEIS : Der gesamte Beispielcode verwendet cons.swig für die Swig-Vorlagen-Engine. Ersetzen Sie swig durch die von Ihnen verwendete Vorlage. Verwenden Sie beispielsweise cons.hogan für hogan.js, cons.jade für Jade usw. console.log(cons)
für die vollständige Liste der Bezeichner.
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
Oder ohne Optionen/lokale Variablen:
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
Um die Engine dynamisch zu übergeben, verwenden Sie einfach den Indexoperator und eine Variable:
var cons = require ( 'consolidate' )
, name = 'swig' ;
cons [ name ] ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
Darüber hinaus geben alle Vorlagen optional ein Versprechen zurück, wenn keine Rückruffunktion bereitgestellt wird. Das Versprechen stellt das letztendliche Ergebnis der Vorlagenfunktion dar, das entweder in eine Zeichenfolge aufgelöst, aus der Vorlage kompiliert oder abgelehnt wird. Versprechen stellen eine then
-Methode bereit, die Rückrufe registriert, um den endgültigen Wert des Versprechens zu erhalten, und eine catch
-Methode, die den Grund angibt, warum das Versprechen nicht erfüllt werden konnte. Versprechen ermöglichen eine synchronere Codestruktur und lösen Probleme wie Rennbedingungen.
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } )
. then ( function ( html ) {
console . log ( html ) ;
} )
. catch ( function ( err ) {
throw err ;
} ) ;
Um das Caching zu aktivieren, übergeben Sie einfach { cache: true }
. Engines können diese Option verwenden, um Dinge zwischenzuspeichern, die den Dateiinhalt, kompilierte Function
usw. lesen. Engines, die dies nicht unterstützen, ignorieren sie möglicherweise einfach. Alle Engines, für die consolidate.js I/O implementiert, speichern den Dateiinhalt im Cache, ideal für Produktionsumgebungen. Bei direkter Verwendung von consolidate: cons.swig('views/page.html', { user: 'tobi', cache:true }, callback);
Verwenden Sie unterstützte Express-Versionen: app.locals.cache = true
oder setzen Sie NODE_ENV auf „Produktion“ und Express erledigt dies für Sie.
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' ) ;
Vorlagen-Engines werden über das Objekt cons.requires
verfügbar gemacht, aber erst dann instanziiert, wenn Sie die Methode cons[engine].render()
aufgerufen haben. Sie können sie vorher manuell instanziieren, wenn Sie Filter, Globals, Mixins oder andere Engine-Funktionen hinzufügen möchten.
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
in lib.consolidate.js
an. Sie können Ihre eigene Engine/Umgebung über options.nunjucksEnv
übergeben. Wenn Sie Express unterstützen möchten, können Sie options.settings.views
übergeben. Wenn Sie einen anderen Anwendungsfall haben, übergeben Sie options.nunjucks
(weitere Informationen finden Sie im Code).options.partials
übergebenoptions.loader
übergeben.options.filters
und geben Sie ein Array von Eigenschaften an, von denen jede eine benannte Filterfunktion ist. Eine Filterfunktion verwendet eine Zeichenfolge als Parameter und gibt eine modifizierte Version davon zurück.options.customTags
um ein Array von Tag-Funktionen anzugeben, die der benutzerdefinierten Tag-Definition von tinyliquid folgen.options.includeDir
.React
Um Inhalte in eine HTML-Basisvorlage (z. B. index.html
Ihrer React-App) zu rendern, übergeben Sie den Pfad der Vorlage mit options.base
. Entwickler-Abhängigkeiten installieren:
$ npm install -d
Führen Sie die Tests durch:
$ make test
(Die MIT-Lizenz)
Copyright (c) 2011-2016 TJ Holowaychuk
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, kostenlos die Erlaubnis erteilt, mit der Software ohne Einschränkung zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, zum Kopieren, Ändern und Zusammenführen , Kopien der Software zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder zu verkaufen und Personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich der folgenden Bedingungen:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD „WIE BESEHEN“ ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHT-INHABER HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNG, WEDER AUS EINER VERTRAGLICHEN HANDLUNG, AUS HANDLUNG ODER ANDERWEITIG, DIE SICH AUS, AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN HANDELN IN DER SOFTWARE ERGEBEN SOFTWARE.