ไลบรารีการรวมเอ็นจิ้นเทมเพลต
$ npm install consolidate
บางแพ็คเกจมีชื่อคีย์เหมือนกัน Consolidate จะโหลดตามหมายเลขคำสั่งซื้อ ตามตัวอย่างสำหรับ dust นั้น consolidate จะพยายามใช้ตามลำดับนี้: dust
, และ dustjs-helpers
dustjs-linkedin
หากมีการติดตั้ง dust
การรวม dustjs-linkedin
จะไม่ถูกนำมาใช้
ชื่อ cons.* | ชื่อแพ็คเกจ / สั่งซื้อ | เว็บไซต์ / รัฐ |
---|---|---|
เอทีพีแอล | 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 | (เว็บไซต์) |
เช่น | npm install ejs | (เว็บไซต์) |
หมู่บ้านเล็ก ๆ | npm install hamlet | - |
แฮมลจส | npm install hamljs | - |
แฮมล์คอฟฟี่ | npm install haml-coffee | - |
แฮนด์ | npm install handlebars | (เว็บไซต์) |
โฮแกน | npm install hogan.js | (เว็บไซต์) |
การใช้ HTML | 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 | - |
แม่ชี | npm install nunjucks | (เว็บไซต์) |
จาน | npm install plates | - |
ปั๊ก | npm install pug | (เว็บไซต์) / (เดิมชื่อหยก) |
คิๆ | npm install qejs | - |
โต้ตอบ | npm install ractive | - |
มีดโกน | npm install razor | - |
ตอบสนอง | npm install react | - |
สล์ม | 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 | (เว็บไซต์) |
ล้าง | npm install vash | - |
ความเร็ว | เบต้า | (เว็บไซต์) |
วอลรัส | 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
ที่คอมไพล์ ฯลฯ เอ็นจิ้นที่ ไม่ รองรับสิ่งนี้อาจเพิกเฉยต่อมัน กลไกทั้งหมดที่ consolidate.js ใช้ I/O จะแคชเนื้อหาไฟล์ ซึ่งเหมาะสำหรับสภาพแวดล้อมการใช้งานจริง เมื่อใช้การรวมโดยตรง: 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
เพื่อระบุอาร์เรย์ของฟังก์ชันแท็กที่เป็นไปตามคำจำกัดความของแท็กแบบกำหนดเองของ Tinyliquidoptions.includeDir
React
หากต้องการแสดงเนื้อหาเป็นเทมเพลตฐาน html (เช่น index.html
ของแอป React ของคุณ) ให้ส่งเส้นทางของเทมเพลตด้วย options.base
ติดตั้ง dev deps:
$ npm install -d
ทำการทดสอบ:
$ make test
(ใบอนุญาตเอ็มไอที)
ลิขสิทธิ์ (c) 2011-2016 TJ Holowaychuk
อนุญาตให้บุคคลใดๆ ได้รับสำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") โดยไม่เสียค่าใช้จ่าย เพื่อจัดการกับซอฟต์แวร์โดยไม่มีข้อจำกัด รวมถึงแต่ไม่จำกัดเพียงสิทธิ์ในการใช้ คัดลอก ปรับเปลี่ยน ผสาน เผยแพร่ แจกจ่าย ให้อนุญาตช่วง และ/หรือขายสำเนาของซอฟต์แวร์ และอนุญาตให้บุคคลที่ได้รับซอฟต์แวร์นี้สามารถทำได้ ภายใต้เงื่อนไขต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์นี้มีให้ 'ตามที่เป็น' โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันความสามารถในการค้าขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ไม่ว่าในกรณีใดผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดต่อการเรียกร้องค่าเสียหายหรือความรับผิดอื่นใดไม่ว่าในการกระทำของสัญญาการละเมิดหรืออย่างอื่นที่เกิดขึ้นจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือข้อตกลงอื่น ๆ ใน ซอฟต์แวร์.