Home

Awesome

toa-mejs

Mejs render module for toa, it is available for koa.

NPM version Build Status Downloads

toa

Mejs -- Moduled and Embedded JavaScript templates

Example

const Toa = require('toa')
const toaMejs = require('toa-mejs')

const app = new Toa()
app.use(function () {
  return this.render('user', {name: 'toa', age: 1})
})

toaEjs(app, 'views/**/*.html', {
  layout: 'template',
  locals: locals
})

app.listen(3000)

Or you can checkout the example.

Installation

npm install toa-mejs

API

const toaMejs = require('toa-mejs')

toaMejs(app, pattern, options)

It will add render method to context.

context.render(viewName, [data])

It is a synchronization function. return template string that filled with data.

this.render('user', {name: 'toa', age: 1})
this.render('user', {name: 'toa', age: 1, writeResp: false})

Layouts

toa-mejs support layout. no default layout, if you want to use default layout template, use options.layout. Also you can specify layout by data.layout in this.render. Also you can set layout = false; to close layout.

<html>
  <head>
    <title>toa mejs</title>
  </head>
  <body>
    <h3>toa mejs</h3>
    <%- it.body %>
  </body>
</html>

Include

support mejs default include.

<div>
  <%- include('user/show', {user: user}); %>
</div>

Locals

pass gobal locals by options.locals, locals can be functions that can be called in mejs templates.

const locals = {
  version: 'v1.0.0',
  now: function() {
    return new Date()
  },
  __: function() {
    return this.__.apply(this, arguments) // toa-i18n's `__` method.
  }
}

License

The MIT License (MIT)