Pustaka konsolidasi mesin template.
$ npm install consolidate
Beberapa paket memiliki nama kunci yang sama, konsolidasi akan memuatnya sesuai dengan nomor pesanan. Sebagai contoh untuk debu, konsolidasi akan mencoba menggunakan dalam urutan ini: dust
, dustjs-helpers
dan dustjs-linkedin
. Jika dust
dipasang, dustjs-linkedin
tidak akan digunakan secara konsolidasi.
cons.* | Nama Paket/Pesanan | Situs Web / Negara Bagian |
---|---|---|
atpl | npm install atpl | - |
mengurung | npm install bracket-template | - |
dot | npm install dot | (situs web) |
npm install dust (1) | (situs web) / (tidak terawat) Lihat: dustjs-linkedin | |
debu | npm install dustjs-helpers (2) ataunpm install dustjs-linkedin (3) | (situs web) |
npm install eco | /! Masalah keamanan | |
dll | npm install ect | (situs web) |
ya | npm install ejs | (situs web) |
dukuh | npm install hamlet | - |
hamljs | npm install hamljs | - |
kopi haml | npm install haml-coffee | - |
setang | npm install handlebars | (situs web) |
hogan | npm install hogan.js | (situs web) |
HTMLing | npm install htmling | - |
npm install jade | (situs web) / (berganti nama menjadi pug ) | |
jazz | npm install jazz | - |
npm install jqtpl | (tidak digunakan lagi) | |
hanya | npm install just | - |
cairan | npm install tinyliquid | (situs web) tidak akan pernah menambahkan fitur baru apa pun |
minuman keras | npm install liquor | - |
lodash | npm install lodash | (situs web) |
marko | npm install marko | (situs web) |
lebih banyak lagi | npm install mote | (situs web) |
kumis | npm install mustache | - |
nunjucks | npm install nunjucks | (situs web) |
piring | npm install plates | - |
pesek | npm install pug | (situs web) / (sebelumnya giok) |
qejs | npm install qejs | - |
raaktif | npm install ractive | - |
pisau cukur | npm install razor | - |
bereaksi | npm install react | - |
ramping | npm install slm | - |
secara tupai | npm install squirrelly | (situs web) |
npm install swig (1) | (tidak terawat) Lihat: swig-template | |
meneguk | npm install swig-templates (2) | - |
cangkir teh | npm install teacup | - |
templat | npm install templayed | (situs web) |
permen | npm install toffee | - |
ranting | npm install twig | (wiki) |
rasa sakit | npm install twing | (situs web) |
menggarisbawahi | npm install underscore | (situs web) |
vash | npm install vash | - |
kecepatanjs | BETA | (situs web) |
anjing laut | npm install walrus | (situs web) |
cambang | npm install whiskers | - |
CATATAN : Anda masih harus menginstal mesin yang ingin Anda gunakan, menambahkannya ke dependensi package.json Anda.
Semua templat yang didukung oleh perpustakaan ini dapat dirender menggunakan tanda tangan (path[, locals], callback)
seperti yang ditunjukkan di bawah ini, yang merupakan tanda tangan yang didukung Express sehingga salah satu mesin ini dapat digunakan dalam Express.
CATATAN : Semua kode contoh ini menggunakan cons.swig untuk mesin templat swig. Ganti swig dengan template apa pun yang Anda gunakan. Misalnya, gunakan cons.hogan untuk hogan.js, cons.jade untuk giok, dll. console.log(cons)
untuk daftar lengkap pengidentifikasi.
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
Atau tanpa opsi/variabel lokal:
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
Untuk meneruskan mesin secara dinamis, cukup gunakan operator subskrip dan variabel:
var cons = require ( 'consolidate' )
, name = 'swig' ;
cons [ name ] ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
Selain itu, semua templat secara opsional mengembalikan janji jika tidak ada fungsi panggilan balik yang disediakan. Janji tersebut mewakili hasil akhir dari fungsi templat yang akan diselesaikan menjadi string, dikompilasi dari templat, atau ditolak. Janji mengekspos metode then
yang mendaftarkan panggilan balik untuk menerima nilai akhir janji dan metode catch
yang menjadi alasan mengapa janji tidak dapat dipenuhi. Janji memungkinkan struktur kode yang lebih sinkron dan menyelesaikan masalah seperti kondisi balapan.
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } )
. then ( function ( html ) {
console . log ( html ) ;
} )
. catch ( function ( err ) {
throw err ;
} ) ;
Untuk mengaktifkan caching cukup lewati { cache: true }
. Mesin dapat menggunakan opsi ini untuk melakukan cache hal-hal yang membaca isi file, Function
yang dikompilasi, dll. Mesin yang tidak mendukung hal ini mungkin mengabaikannya begitu saja. Semua mesin yang mengkonsolidasikan.js mengimplementasikan I/O akan menyimpan konten file dalam cache, ideal untuk lingkungan produksi. Saat menggunakan konsolidasi secara langsung: cons.swig('views/page.html', { user: 'tobi', cache:true }, callback);
Menggunakan versi Express yang didukung: app.locals.cache = true
atau setel NODE_ENV ke 'produksi' dan Express akan melakukannya untuk Anda.
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' ) ;
Mesin templat diekspos melalui objek cons.requires
, tetapi mesin tersebut tidak dipakai sampai Anda memanggil metode cons[engine].render()
. Anda dapat membuat instance secara manual terlebih dahulu jika Anda ingin menambahkan filter, global, mixin, atau fitur mesin lainnya.
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
di lib.consolidate.js
. Anda dapat meneruskan mesin/lingkungan Anda sendiri melalui options.nunjucksEnv
, atau jika Anda ingin mendukung Express Anda dapat meneruskan options.settings.views
, atau jika Anda memiliki kasus penggunaan lain, meneruskan options.nunjucks
(lihat kode untuk wawasan lebih lanjut).options.partials
options.loader
.options.filters
dan tentukan array properti, yang masing-masing merupakan fungsi filter bernama. Fungsi filter mengambil string sebagai parameter dan mengembalikan versi modifikasinya.options.customTags
untuk menentukan serangkaian fungsi tag yang mengikuti definisi tag khusus tinyliquid.options.includeDir
.React
Untuk merender konten ke dalam templat dasar html (mis. index.html
aplikasi React Anda), teruskan jalur templat dengan options.base
. Instal deps pengembang:
$ npm install -d
Jalankan tes:
$ make test
(Lisensi MIT)
Hak Cipta (c) 2011-2016 TJ Holowaychuk
Izin dengan ini diberikan, secara gratis, kepada siapa pun yang memperoleh salinan perangkat lunak ini dan file dokumentasi terkait (“Perangkat Lunak”), untuk menggunakan Perangkat Lunak tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan , mempublikasikan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan mengizinkan orang yang menerima Perangkat Lunak untuk melakukan hal tersebut, dengan tunduk pada ketentuan berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini akan disertakan dalam semua salinan atau sebagian besar Perangkat Lunak.
PERANGKAT LUNAK INI DISEDIAKAN 'APA ADANYA', TANPA JAMINAN APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN TIDAK ADA PELANGGARAN. DALAM KEADAAN APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU TANGGUNG JAWAB LAINNYA, BAIK DALAM TINDAKAN KONTRAK, HUKUM ATAU LAINNYA, YANG TIMBUL DARI, DARI ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU HAL-HAL LAIN DALAM PERANGKAT LUNAK.