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