Mòdul de comunitat impressionant

fib-pug

pugjs és un motor de plantilla js popular conegut anteriorment com a "Jade". És sensible a la sagnia amb alt rendiment. Però en algun moment, només es podia executar en nodejs (alguna versió de "Jade" es pot executar al navegador), ja que a partir d'aquest pugjs de punt admeten API com les renderFileque 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 hack 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 el codi anterior, només heu de proporcionar un mòdul de propietats per al pugmòdul original en nodejs, podeu executar pugjs en fibjs.

Però no puc provar totes les versions de fibjs i pug, així que marca la versió provada de fibjs i pug package.jsoni notaria el desenvolupador si la versió en executar aquest mòdul en mode DEBUG.

API

Només admet algunes API de pugjs , però crec que és suficient 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>'