1.0.0 • Published 7 years ago
egg-view-static v1.0.0
egg-view-static
A simple egg view plugin, allow you to render static html from app/public.
Install
$ npm i egg-view-static --saveUsage
// {app_root}/config/plugin.js
exports.viewStatic = {
  enable: true,
  package: 'egg-view-static',
};Set mapping in config
// {app_root}/config/config.default.js
exports.view = {
  defaultViewEngine: 'static',
  mapping: {
    '.html': 'static',
  },
};Render in controller
// {app_root}/app/controller/home.js
class HomeController extends Controller {
  async index() {
    // app/static/index.html
    await this.ctx.render('index.html');
  }
}Use replaceFn to custom render with locals, see test/fixtures/apps/locals/config/config.default.js for more detail.
// {app_root}/config/config.default.js
config.viewStatic = {
  replaceFn(tpl, locals) {
    return tpl.toString().replace(/(\\)?{{ *(\w+) *}}/g, (block, skip, key) => {
      if (skip) {
        return block.substring(skip.length);
      }
      return locals.hasOwnProperty(key) ? locals[key] : block;
    });
  },
};
// {app_root}/app/controller/home.js
class HomeController extends Controller {
  async index() {
    // app/static/index.html
    await this.ctx.render('index.html', { name: 'egg' });
  }
}Configuration
// {app_root}/config/config.default.js
exports.viewStatic = {
  // cache: true,
  // replaceFn: (tpl, locals, options) => tpl,
};- {Boolean} 
cache- whether cache file, default totrueexceptlocalmode. It will share cache withegg-staticLRU cache. - {Function} 
replaceFn- custom render replacement, args =(tpl, locals, options) 
see config/config.default.js for more detail.
Example
Questions & Suggestions
Please open an issue here.
License
1.0.0
7 years ago