Koa 플랫폼 Node.js를 기반으로 개발된 KoaHub.js의 템플릿 엔진 코드
코아허브 핸들바
코아허브 핸들바
koahub 핸들바 템플릿
설치
$ npm install koahub-handlebars
코아와 함께 사용하세요
var koa = require('koa');
var hbs = require('koahub-handlebars');
var app = koa();
// koahub-handlebars는 미들웨어입니다. 뷰를 렌더링하기 전에 `사용`하세요
app.use(hbs.middleware({
viewPath: __dirname + '/views'
}));
// 렌더는 koa 컨텍스트에 연결됩니다. 미들웨어에서 `this.render`를 호출하세요
// 렌더링된 HTML을 Koa 응답 본문에 첨부합니다.
app.use(함수 *() {
Yield this.render('index', {title: 'koahub-handlebars'});
})
app.listen(3000);
도우미 등록
헬퍼는 #registerHelper 메소드를 사용하여 등록됩니다. 다음은 기본 인스턴스를 사용하는 예입니다(공식 Handlebars 문서에서 도난당한 도우미:
hbs = require('koahub-handlebars');
hbs.registerHelper('link', function(text, url) {
텍스트 = hbs.Utils.escapeExpression(text);
url = hbs.Utils.escapeExpression(url);
var 결과 = '' + 텍스트 + '';
새로운 hbs.SafeString(결과) 반환;
});
그러면 {{link "Google" "http://google.com"}}
을 사용하여 모든 보기에서 도우미에 액세스할 수 있습니다.
RegisterHelper, Utils 및 SafeString 메소드는 모두 내부 Handlebars 인스턴스로 프록시됩니다. Handlebars의 대체 인스턴스를 미들웨어 구성자에 전달하는 경우 위 함수의 koahub-handlebars 프록시를 통해 도우미를 등록하기 전에 이를 수행하거나 Handlebars 인스턴스를 통해 직접 도우미를 등록하세요.
도우미에서 현재 Koa 컨텍스트에 액세스할 수도 있습니다. 현재 URL을 출력하는 도우미를 원할 경우 다음과 같은 도우미를 작성하고 모든 템플릿에서 {{requestURL}}로 호출할 수 있습니다.
hbs.registerHelper('requestURL', function() {
var url = hbs.templateOptions.data.koa.request.url;
반환 URL;
});
부분등록
부분을 등록하는 간단한 방법은 모든 부분을 디렉터리에 저장하고 미들웨어를 생성할 때 부분 경로 옵션을 전달하는 것입니다. 뷰가 ./views에 있고 부분 뷰가 ./views/partials에 있다고 가정해 보세요.
을 통해 미들웨어 구성
app.use(hbs.middleware({
viewPath: __dirname + '/views',
부분 경로: __dirname + '/views/partials'
}));
자동으로 등록되게 됩니다. 또는 캐시된 핸들바 #registerPartial 메소드를 프록시하는 hbs.registerPartial을 호출하여 부분을 한 번에 하나씩 등록할 수 있습니다.
레이아웃
레이아웃 이름과 함께 defaultLayout을 전달하면 모든 템플릿이 레이아웃의 {{{body}}} 표현식에 삽입됩니다. 이는 다음과 같습니다.
<제목>{{제목}}제목>
머리>
{{{본문}}}
본문>