템플릿 엔진 통합 라이브러리.
$ 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 | (웹사이트) |
에이스 | npm install ejs | (웹사이트) |
작은 촌락 | npm install hamlet | - |
햄리즈 | 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 | - |
수녀원 | npm install nunjucks | (웹사이트) |
접시 | npm install plates | - |
이긴 흙 | npm install pug | (웹사이트) / (이전의 옥) |
qejs | npm install qejs | - |
반응적인 | npm install ractive | - |
면도칼 | npm install razor | - |
반응하다 | npm install react | - |
슬름 | npm install slm | - |
다람쥐처럼 | npm install squirrelly | (웹사이트) |
npm install swig (1) | (관리되지 않음) 참조: swig-templates | |
통음 | 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 내에서 사용할 수 있습니다.
참고 : 이 모든 예제 코드는 swig 템플릿 엔진에 cons.swig를 사용합니다. swig를 사용 중인 템플릿으로 바꾸세요. 예를 들어, hogan.js에는 cons.hogan을, jade에는 cons.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 ) ;
} ) ;
또한 콜백 함수가 제공되지 않으면 모든 템플릿은 선택적으로 약속을 반환합니다. Promise는 문자열로 확인되거나 템플릿에서 컴파일되거나 거부되는 템플릿 함수의 최종 결과를 나타냅니다. Promise는 Promise의 최종 값을 수신하기 위해 콜백을 등록하는 then
메소드와 약속을 이행할 수 없는 이유를 알려주는 catch
메소드를 노출합니다. Promise는 보다 동기적인 코드 구조를 허용하고 경쟁 조건과 같은 문제를 해결합니다.
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
등을 읽는 것을 캐시 할 수 있습니다 . 이를 지원하지 않는 엔진은 이를 무시할 수 있습니다. 통합.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' ;
} ) ;
lib.consolidate.js
의 exports.nunjucks.render
함수를 살펴보세요. options.nunjucksEnv
통해 자체 엔진/환경을 전달할 수 있습니다. Express를 지원하려는 경우 options.settings.views
전달할 수 있습니다. 또는 다른 사용 사례가 있는 경우 options.nunjucks
전달할 수 있습니다(자세한 내용은 코드 참조).options.partials
사용하여 부분을 전달할 수 있습니다.options.loader
를 사용하여 로더를 전달할 수 있습니다.options.filters
사용하고 각각 명명된 필터 함수인 속성 배열을 지정합니다. 필터 함수는 문자열을 매개변수로 사용하고 수정된 버전을 반환합니다.options.customTags
사용하여tinyliquid 사용자 정의 태그 정의를 따르는 태그 함수 배열을 지정하십시오.options.includeDir
사용하세요.React
콘텐츠를 html 기본 템플릿(예: React 앱의 index.html
)으로 렌더링하려면 options.base
와 함께 템플릿 경로를 전달하세요. 개발팀 설치:
$ npm install -d
테스트를 실행합니다.
$ make test
(MIT 라이센스)
저작권 (c) 2011-2016 TJ Holowaychuk
본 소프트웨어 및 관련 문서 파일('소프트웨어')의 사본을 취득한 모든 사람에게 사용, 복사, 수정, 병합에 대한 권리를 포함하되 이에 국한되지 않고 제한 없이 소프트웨어를 취급할 수 있는 권한이 무료로 부여됩니다. , 소프트웨어 사본을 게시, 배포, 재라이센스 부여 및/또는 판매하고, 소프트웨어를 제공받은 사람에게 다음 조건에 따라 그렇게 하도록 허용합니다.
위의 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함됩니다.
소프트웨어는 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 어떠한 종류의 보증 없이 '있는 그대로' 제공됩니다. 어떠한 경우에도 작성자나 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어나 사용 또는 기타 거래와 관련하여 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다. 소프트웨어.