멋진 커뮤니티 모듈

fib-pug

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

I / O

현재 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.jsonDEBUG 모드에서이 모듈을 실행할 때 버전이 있으면 개발자를 알 수 있습니다..

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>'