Skip to content

benjycui/jsonml-to-react-element

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jsonml-to-react-element

npm package NPM downloads Dependency Status

To convert JsonML to React Component.

Installation

npm install --save jsonml-to-react-element

Usage

Basic:

const ReactDOM = require('react-dom');
const toReactElement = require('jsonml-to-react-element');

const title = [
  'h1',
  'Hello world!',
];

ReactDOM.render(toReactElement(title), document.getElementById('content'));

With converters:

const React = require('react');
const ReactDOM = require('react-dom');
const toReactElement = require('jsonml-to-react-element');

const website = [
  'section',
  [
    'header',
    ...
  ],
  [
    'article',
    [
      'h1',
      'Hello world!',
    ],
  ],
  [
    'footer',
    ...
  ]
];

const html5to4 = [
  [
    (node) => ['section', 'header', 'article', 'footer'].indexOf(node[0]) > -1,
    (node, index) => React.createElement(
      'div',
      { key: index },
      node.slice(1).map((child) => toReactElement(child, html5to4))
    )
  ],
  ...
];

ReactDOM.render(
  toReactElement(website, html5to4),
  document.getElementById('content')
);

API

toReactElement(jsonml: Object [, converters: Array]): React.Component

To convert JsonML to React Component with converters.

converters: Array[Pair[Function, Function]]

Converters which are passed to toReactElement will concat with default converters. It works like switch sentence.

Each item in converters is a pair of functions. The first function is a prediction, and the second function is a processor which take JsonML node and return React Component.

Relative

jsonml.js A collection of JsonML tools.

Liscence

MIT

About

To convert JsonML to React element.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published