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