Skip to content

About

ProseMirror Unified integration

Resources

Stars

27 stars

Watchers

1 watching

Forks

Repository files navigation

prosemirror-unified

NPM Version GitHub Actions Workflow Status Codecov (with branch) NPM Downloads NPM License Documentation

This package provides support for using the unified ecosystem of parsers and other packages (for example, remark, the markdown parser) in ProseMirror.

prosemirror-unified is a framework: concrete syntaxes live in separate extension packages. For markdown, use prosemirror-remark; to support another syntax, you can write your own extensions.

Documentation

Full documentation — a guide to using prosemirror-unified, a walkthrough for writing your own extensions, and the API reference — is available at marekdedic.github.io/prosemirror-unified.

Example

import { MarkdownExtension } from "prosemirror-remark";
import { EditorState } from "prosemirror-state";
import { ProseMirrorUnified } from "prosemirror-unified";
import { EditorView } from "prosemirror-view";

const sourceMarkdown = "**Bold text**";
const pmu = new ProseMirrorUnified([new MarkdownExtension()]);

const view = new EditorView(
  // The element to use for the editor
  document.querySelector("#editor")!,
  {
    state: EditorState.create({
      // Set the initial content of the editor from sourceMarkdown
      doc: pmu.parse(sourceMarkdown),
      plugins: [pmu.inputRulesPlugin(), pmu.keymapPlugin()],
      schema: pmu.schema(),
    }),
    // Add interactive elements (task lists etc.)
    nodeViews: pmu.nodeViews(),
    // Log (in the browser console) the current content in markdown on every update
    dispatchTransaction: (tr): void => {
      view.updateState(view.state.apply(tr));
      console.log(pmu.serialize(view.state.doc));
    },
  },
);

About

ProseMirror Unified integration

Resources

Stars

27 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages