Mòdul comunitari fantàstic

fib-pug

pugjs és un popular motor de plantilles js conegut anteriorment com "Jade". És sensible al sagnat amb un alt rendiment. Però en algun moment, només es podria executar en nodejs (alguna versió de "Jade" es pot executar al navegador), perquè a partir d'això els pugjs de punt admeten API com ara renderFileles que requereixen temps d'execució d'E/S.

E/S

A partir del fsmòdul, afortunadament, fibjs té una API similar amb nodejs, podem executar pugjs a fibjs, només cal fer algun truc màgic amb el sandboxmòdul de fibjs.

Mecanisme

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)

Com a codi anterior, només cal que proporcioneu el mòdul de propietats per pugal mòdul original a nodejs, podeu executar pugjs a fibjs.

Però no puc provar totes les versions de fibjs i pug, així que marco la versió provada de fibjs i pug apackage.jsoni notaria la versió del desenvolupador quan executeu aquest mòdul en mode DEBUG.

API

Només suporto algunes API de pugjs , però crec que n'hi ha prou per al vostre projecte en la majoria dels casos.

  • compile
  • render
  • renderFile

visualitzeu els paràmetres d'aquesta API a la pàgina de pugjs .

Mostra

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