md2json2html

1.0.0 • Public • Published

md2json2html

NPM version License

A npm package that transform markdown data to json and html.

Usage:

Install:

npm i md2json2html

Example:

See the test file.

const fs = require('fs');
 
const main = require('md2json2html');
const markdown2json = main.markdown2json;
const json2html = main.json2html;
 
const data = fs.readFileSync(__dirname + '/test.md', 'utf8');
 
const jsonRes = markdown2json(data);
const htmlRes = json2html(jsonRes.content);
 
console.log(JSON.stringify(jsonRes, null, 4));
 
console.log(htmlRes);

API:

markdown2json

/**
 * markdown to json
 *
 * @param {string} markdownData markdown data string
 * @return {Object} json object that contents yaml format meta and markdown-json node
 */

Note: the markdown-json node is defined as following:

class Node {
    constructor(tagName, attr, children) {
        this.tagName = tagName;
        this.attr = attr;
        this.children = children;
    }
}
// example:
// Node {
//     tagName: 'ul',
//     attr: {
//         // key-value pairs for ul
//     },
//     children: Node or Array of Node
// }

See also test.json.

json2html

/**
 * json to html
 *
 * @param {Object} node markdown-json node
 * @param {Array} converters markdown-json node tramsform functions
 * @return {string} html format string
 */

converters is an array of function, the function's arguments as follows:

/**
 * sample converter
 *
 * @param {Object} node markdown-json node
 * @return {Object} transformed markdown-json node, this will pass to next converter
 */
function sampleConverter(node) {
    // do something here.
}

You can find a sample converter in test file. The converter using prismjs highlight the code area of node.

Thanks to mark-twain.

Package Sidebar

Install

npm i md2json2html

Weekly Downloads

5

Version

1.0.0

License

MIT

Last publish

Collaborators

  • leuisken