MarkdownManager API

Beta

The MarkdownManager class is a stand-alone class that provides support for parsing and serializing Markdown content into Tiptap's document model.

Methods

Constructor

new MarkdownManager(options?: {
  marked?: typeof marked,
  markedOptions?: MarkedOptions,
  indentation?: {
    style?: 'space' | 'tab',
    size?: number,
  },
})

MarkdownManager.hasMarked()

Returns true or false depending on whether the marked library is available.

  • returns: boolean
const manager = new MarkdownManager()
manager.hasMarked() // true or false

MarkdownManager.registerExtension()

Registers a Tiptap extension to be used for parsing and serializing Markdown content.

  • returns: void
  • parameters:
    • extension: A Tiptap extension to register.
const manager = new MarkdownManager()
manager.registerExtension(MyCustomExtension)

MarkdownManager.parse()

Parses a Markdown string into a Tiptap document.

  • returns: JSON - The Tiptap document in JSON format.
  • parameters:
    • markdown: A string containing the Markdown content to parse.
const manager = new MarkdownManager()
const doc = manager.parse('# Hello World')

MarkdownManager.serialize()

Serializes a Tiptap document or JSON content into a Markdown string.

  • returns: string - The serialized Markdown string.
  • parameters:
    • content: A Tiptap document or JSON content to serialize.
const manager = new MarkdownManager()
const markdown = manager.serialize(doc)

MarkdownManager.renderNodeToMarkdown()

Renders a single ProseMirror node to its Markdown representation.

  • returns: string - The Markdown string for the given node.
  • parameters:
    • node: A ProseMirror node to render.
    • parentNode: (optional) The parent ProseMirror node.
    • index: (optional) The index of the node within its parent.
    • level: (optional) The nesting level of the node.
const manager = new MarkdownManager()
const markdown = manager.renderNodeToMarkdown(node)

MarkdownManager.renderNodes()

Renders an array of ProseMirror nodes to their combined Markdown representation.

  • returns: string - The combined Markdown string for the given nodes.
  • parameters:
    • nodes: An array of ProseMirror nodes to render.
    • parentNode: (optional) The parent ProseMirror node.
    • separator: (optional) A string to separate the rendered nodes. Defaults to ''
    • level: (optional) The nesting level of the nodes. Defaults to 0.
    • level: number - The nesting level of the nodes. Defaults to 0.

Properties

Markdown.instance

The MarkedJS instance used for parsing Markdown content.

Markdown.indentCharacter

The character used for indentation in lists. Defaults to a space (' ').

Markdown.indentString

The string used for indentation in lists. Defaults to two spaces (' ').