alfa-jpn / mithril-node-render

Use mithril views to render server side

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mithril-node-render

Gitter Build Status rethink.js Dependency Status devDependency Status

Use mithril views to render server side

Demo

Usage Example

Installation

npm install mithril-node-render

Usage

// use a mock DOM so we can run mithril on the server
require('mithril/test-utils/browserMock')(global);

var m = require('mithril');
var render = require('mithril-node-render');

render(m('span', 'huhu')).then(function (html) {
  // html === '<span>huhu</span>'
})

Async components

As you see the rendering is asynchron. It waits for resolve of all promises that might get returned from oninit callbacks.

  myAsyncComponent = {
    oninit: function (node) {
      return new Promise(function (resolve) {
        node.state.foo = 'bar'
        resolve()
      })
    },
    view: function (node) {
      return m('div', node.state.foo)
    }
  }

  // usage
  render(myAsyncComponent).then(function (html) {
    // html === '<div>bar</div>'
  }

Options

Optionally pass in options as an object: m.render(component, options).

The following options are supported:

escapeAttributeValue(value) Default: render.escapeHtml A filter function for attribute values. Receives value, returns what is printed.

escapeString(value) Default: render.escapeHtml A filter function for string nodes. Receives value, returns what is printed.

strict Default: false Set this to true to close all empty tags automatically. Default is HTML mode where tags like <br> and <meta> are allowed without closing tags. This is required if you're rendering XML or XHTML documents.

See also

About

Use mithril views to render server side

License:MIT License


Languages

Language:JavaScript 100.0%