fib-퍼그
pugjs는 이전에 "Jade"로 알려진 인기 있는 js 템플릿 엔진 중 하나입니다. 들여쓰기에 민감하고 고성능입니다. 그러나 어떤 시점에서는 nodejs에서만 실행될 수 있습니다("Jade"의 일부 버전은 브라우저에서 실행될 수 있습니다). point pugjs는 I/O 런타임이 필요한 API를 지원합니다 renderFile
.
입출력
모듈 측면에서 fs
다행스럽게도 fibjs에는 nodejs와 유사한 API가 있으므로 fibjs에서 pugjs를 실행할 수 있으며 fibjs sandbox
모듈을 사용하여 마법같은 해킹을 할 수 있습니다.
기구
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18/**
* only test in fibjs 0.21 and pug@2.0.0-rc.4
*
*/
const vm = require('vm');
const sbox = new vm.SandBox({
fs: require('fs'),
path: require('path'),
http: require('http'),
https: require('http'),
assert: require('assert'),
url: require('url'),
os: require('os'),
util: require('util')
});
// one valid pug module
const pug = sbox.require('pug', __filename)
위의 코드와 같이 pug
nodejs의 orignal 모듈에 대한 속성 모듈을 제공하면 fibjs에서 pugjs를 실행할 수 있습니다.
하지만 fibjs와 pug의 모든 버전을 테스트할 수는 없으므로 테스트된 fibjs와 pug 버전을 표시합니다.package.json
디버그 모드에서 이 모듈을 실행할 때 버전이 있는지 개발자에게 알릴 것입니다..
API
나는 단지 pugjs 의 일부 API를 지원 하지만 대부분의 경우 프로젝트에 충분하다고 믿습니다.
compile
render
renderFile
pugjs 페이지 에서 이 API의 매개변수를 확인하세요 .
견본
1
2
3
4
5
6
7
8
9
10
11
12
13#!/usr/bin/env fibjs
const locals = {testVar: '测试变量'}
const rawText = 'div\n\t| #{testVar}'
try {
html = pug.compile(rawText, {pretty: true})(locals);
} catch (e) {
html = ''
error = e.message
}
console.log(html) // '<div>测试变量</div>'