멋진 커뮤니티 모듈

파이퍼그

pugjs 는 이전에 "Jade"로 알려진 인기 있는 js 템플릿 엔진 중 하나입니다. 고성능으로 들여쓰기에 민감합니다. 그러나 어느 시점에서는 nodejs에서만 실행할 수 있었습니다(일부 버전의 "Jade"는 브라우저에서 실행할 수 있음). point pugjsrenderFileI/O 런타임이 필요한 것과 같은 API를 지원 합니다.

입출력

현재 fs모듈, 다행히 fibjs가 nodejs와 유사한 API를 가지고, 우리는 단지 fibjs의 일부 마법 해킹 수행 fibjs에 pugjs를 실행할 수 있습니다 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>'