멋진 커뮤니티 모듈

fib-pug

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

I / O

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)

위의 코드와 같이 nodejs에서 orignal pug 모듈에 대한 속성 모듈을 제공하면 fibjs에서 pugjs를 실행할 수 있습니다.

하지만 모든 버전의 fibjs 및 pug를 테스트 할 수는 없으므로 테스트 된 버전의 fibjs 및 pug를 package.json 에 표시 package.json DEBUG 모드에서이 모듈을 실행할 때 버전이 있으면 개발자에게 알립니다. .

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