egg-view-static

    1.0.0 • Public • Published

    egg-view-static

    NPM version build status Test coverage David deps Known Vulnerabilities npm download

    A simple egg view plugin, allow you to render static html from app/public.

    Install

    $ npm i egg-view-static --save

    Usage

    // {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 to true except local mode. It will share cache with egg-static LRU 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

    MIT

    Install

    npm i egg-view-static

    DownloadsWeekly Downloads

    2

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    7.34 kB

    Total Files

    8

    Last publish

    Collaborators

    • atian25