markup-it is a JavaScript library to serialize/deserialize markdown content using an intermediate format backed by an immutable model.
$ npm i markup-it --save
or
$ yarn add markup-it
const { State, MarkdownParser } = require('markup-it');
const state = State.create(MarkdownParser);
const document = state.deserializeToDocument('Hello **World**');const { State, HTMLParser } = require('markup-it');
const state = State.create(HTMLParser);
const str = state.serializeDocument(document);const { State, MarkdownParser } = require('markup-it');
const state = State.create(markdown);
const str = state.serializeDocument(document);markup-it is ESM compliant through the package.json module field, so you can safely use it with ES6 syntax for tree-shaking.
import { State, HTMLParser } from 'markup-it';
const state = State.create(HTMLParser);
const str = state.serializeDocument(document);There are many scripts available in the /bin folder to output an HTML or Markdown file to multiple formats (HTML, Hyperscript, JSON, Markdown, YAML).
These scripts can be called with babel-node, for example:
babel-node bin/toJSON.js ./page.md