@slite/unified-mdast-to-delta

1.7.3 • Public • Published

unified-delta

A unified plugin that is able to compile a Markdown Ast to Delta.

Usage

const toDelta = require("unified-delta")

const markdown = `# Hello & World

> A block quote.

* Some _emphasis_, **importance**, and \`code\`.`

toDelta()
  .process(markdown)
  .then(({ contents }) => console.log(JSON.stringify(contents)))
  .catch(e => console.log(e))

This will output the following:

[
  { "insert": "Hello & World" },
  {
    "insert": "\n",
    "attributes": { "type": "header-one", "data": { "depth": 0 } }
  },
  { "insert": "A block quote." },
  { "insert": "\n", "attributes": { "type": "unstyled" } },
  { "insert": "\n", "attributes": { "type": "quote-block" } },
  { "insert": "Some " },
  { "insert": "emphasis", "attributes": { "italic": true } },
  { "insert": ", " },
  { "insert": "importance", "attributes": { "bold": true } },
  { "insert": ", and " },
  { "insert": "code", "attributes": { "code": true } },
  { "insert": "." },
  { "insert": "\n", "attributes": { "type": "unstyled" } },
  {
    "insert": "\n",
    "attributes": { "type": "unordered-list-item", "data": { "depth": 0 } }
  },
  { "insert": "\n", "attributes": { "type": "unstyled" } }
]

API

[...].use(toDelta[, options])

options
options.endWithNewline (default true)

Wether to finish the Delta inserts with a newline. This is mandatory per Delta's spec, but the option is here for testing purposes.

Todo:

[] Make the visitors system extensible

Since each client will implement its own set of attributes for their delta format we can't cover everything here.

Dependencies (4)

Dev Dependencies (4)

Package Sidebar

Install

npm i @slite/unified-mdast-to-delta

Weekly Downloads

58

Version

1.7.3

License

MIT

Unpacked Size

39.4 kB

Total Files

44

Last publish

Collaborators

  • dqms
  • accounts-dev-slite
  • calyhre
  • prenaudin
  • antoineduban
  • guillaumemorin
  • christophepas
  • antoinelyset
  • d34thwings
  • agix
  • alisonsayarath