مكتبة دمج محرك القالب.
$ npm install consolidate
بعض الحزم لها نفس اسم المفتاح، وسيقوم الدمج بتحميلها وفقًا لرقم الطلب. على سبيل المثال للغبار، ستحاول عملية الدمج استخدام هذا الترتيب: dust
و dustjs-helpers
و dustjs-linkedin
. إذا تم تثبيت dust
، فلن يتم استخدام dustjs-linkedin
من خلال الدمج.
cons.* | اسم الحزمة / الطلب | الموقع / الدولة |
---|---|---|
atpl | npm install atpl | - |
قوس | npm install bracket-template | - |
نقطة | npm install dot | (موقع إلكتروني) |
npm install dust (1) | (الموقع الإلكتروني) / (غير خاضع للصيانة) انظر: Dustjs-linkedin | |
تراب | npm install dustjs-helpers (2) أوnpm install dustjs-linkedin (3) | (موقع إلكتروني) |
npm install eco | /! مشكلة أمنية | |
إلخ | npm install ect | (موقع إلكتروني) |
ejs | npm install ejs | (موقع إلكتروني) |
قرية | npm install hamlet | - |
hamljs | npm install hamljs | - |
هامل-القهوة | npm install haml-coffee | - |
المقاود | npm install handlebars | (موقع إلكتروني) |
هوجان | npm install hogan.js | (موقع إلكتروني) |
htmling | npm install htmling | - |
npm install jade | (موقع الكتروني) / (أعيدت تسميته pug ) | |
موسيقى الجاز | npm install jazz | - |
npm install jqtpl | (مهمل) | |
فقط | npm install just | - |
سائل | npm install tinyliquid | (موقع إلكتروني) لن تضيف أي ميزات جديدة أبدًا |
الخمور | npm install liquor | - |
لوداش | npm install lodash | (موقع إلكتروني) |
ماركو | npm install marko | (موقع إلكتروني) |
قذى | npm install mote | (موقع إلكتروني) |
شارب | npm install mustache | - |
nunjucks | npm install nunjucks | (موقع إلكتروني) |
لوحات | npm install plates | - |
الصلصال | npm install pug | (موقع الكتروني) / (اليشم سابقا) |
qejs | npm install qejs | - |
نشط | npm install ractive | - |
ماكينة حلاقة | npm install razor | - |
رد فعل | npm install react | - |
slm | npm install slm | - |
السنجاب | npm install squirrelly | (موقع إلكتروني) |
npm install swig (1) | (لا تتم صيانته) انظر: قوالب swig | |
جرعة كبيرة | npm install swig-templates (2) | - |
فنجان شاي | npm install teacup | - |
تمبلاييد | npm install templayed | (موقع إلكتروني) |
الحلوى | npm install toffee | - |
غصين | npm install twig | (ويكي) |
توأم | npm install twing | (موقع إلكتروني) |
تسطير أسفل السطر | npm install underscore | (موقع إلكتروني) |
vash | npm install vash | - |
velocityjs | بيتا | (موقع إلكتروني) |
الفظ | npm install walrus | (موقع إلكتروني) |
شعيرات | npm install whiskers | - |
ملاحظة : لا يزال يتعين عليك تثبيت المحركات التي ترغب في استخدامها، وإضافتها إلى تبعيات package.json الخاصة بك.
قد يتم عرض جميع القوالب التي تدعمها هذه المكتبة باستخدام التوقيع (path[, locals], callback)
كما هو موضح أدناه، والذي يصادف أنه التوقيع الذي يدعمه Express، لذا يمكن استخدام أي من هذه المحركات داخل Express.
ملاحظة : يستخدم كل رمز المثال هذا cons.swig لمحرك قالب swig. استبدل swig بأي قالب تستخدمه. على سبيل المثال، استخدم cons.hogan لـ hogan.js، وcons.jade لـ jade، وما إلى ذلك console.log(cons)
للحصول على القائمة الكاملة للمعرفات.
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
أو بدون خيارات/المتغيرات المحلية:
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
لتمرير المحرك ديناميكيًا، ما عليك سوى استخدام عامل التشغيل المنخفض والمتغير:
var cons = require ( 'consolidate' )
, name = 'swig' ;
cons [ name ] ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
بالإضافة إلى ذلك، تقوم كافة القوالب بإرجاع وعد اختياريًا إذا لم يتم توفير وظيفة رد الاتصال. يمثل الوعد النتيجة النهائية لوظيفة القالب والتي إما سيتم تحويلها إلى سلسلة أو تجميعها من القالب أو سيتم رفضها. تكشف الوعود عن طريقة then
التي تسجل عمليات الاسترجاعات لتلقي القيمة النهائية للوعد وطريقة catch
التي تسبب عدم إمكانية الوفاء بالوعد. تتيح الوعود المزيد من بنية التعليمات البرمجية المتزامنة وحل مشكلات مثل ظروف السباق.
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } )
. then ( function ( html ) {
console . log ( html ) ;
} )
. catch ( function ( err ) {
throw err ;
} ) ;
لتمكين التخزين المؤقت، ما عليك سوى تمرير { cache: true }
. قد تستخدم المحركات هذا الخيار للتخزين المؤقت للأشياء التي تقرأ محتويات الملف Function
المترجمة وما إلى ذلك. والمحركات التي لا تدعم هذا قد تتجاهله ببساطة. جميع المحركات التي تقوم Consolid.js بتنفيذ الإدخال/الإخراج لها ستقوم بتخزين محتويات الملف مؤقتًا، وهو مثالي لبيئات الإنتاج. عند استخدام الدمج مباشرة: cons.swig('views/page.html', { user: 'tobi', cache:true }, callback);
باستخدام إصدارات Express المدعومة: app.locals.cache = true
أو قم بتعيين NODE_ENV على "production" وسيقوم Express بذلك نيابةً عنك.
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' ) ;
يتم عرض محركات القوالب عبر الكائن cons.requires
، لكن لا يتم إنشاء مثيل لها حتى يتم استدعاء الأسلوب cons[engine].render()
. يمكنك إنشاء مثيل لها يدويًا مسبقًا إذا كنت تريد إضافة عوامل التصفية أو العناصر العالمية أو المزيج أو ميزات المحرك الأخرى.
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
في lib.consolidate.js
. يمكنك تمرير المحرك/البيئة الخاصة بك عبر options.nunjucksEnv
، أو إذا كنت تريد دعم Express، فيمكنك تمرير options.settings.views
، أو إذا كانت لديك حالة استخدام أخرى، فقم بتمرير options.nunjucks
(راجع الكود لمزيد من المعلومات).options.partials
options.loader
.options.filters
وحدد مصفوفة من الخصائص، كل منها عبارة عن وظيفة مرشح مسماة. تأخذ وظيفة التصفية سلسلة كمعلمة وترجع نسخة معدلة منها.options.customTags
لتحديد مجموعة من وظائف العلامات التي تتبع تعريف العلامة المخصصة tinyliquid.options.includeDir
.React
لعرض المحتوى في قالب html أساسي (على سبيل المثال، index.html
لتطبيق React الخاص بك)، قم بتمرير مسار القالب باستخدام options.base
. تثبيت خطط التطوير:
$ npm install -d
تشغيل الاختبارات:
$ make test
(رخصة معهد ماساتشوستس للتكنولوجيا)
حقوق الطبع والنشر (ج) 2011-2016 TJ Holowaychuk
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج") للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.