멋진 커뮤니티 모듈

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)

위의 코드와 같이 pugnodejs의 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>'