diff --git a/packages/editor/src/extensions/clipboard/clipboard-text-parser.ts b/packages/editor/src/extensions/clipboard/clipboard-text-parser.ts index f0dd1c5af0..badb0a0f6f 100644 --- a/packages/editor/src/extensions/clipboard/clipboard-text-parser.ts +++ b/packages/editor/src/extensions/clipboard/clipboard-text-parser.ts @@ -27,9 +27,10 @@ export function clipboardTextParser( text: string, $context: ResolvedPos, plain: boolean, - view: EditorView + view: EditorView, + parseMarkdownOnPaste = true ): Slice { - if (!plain && isProbablyMarkdown(text)) { + if (!plain && parseMarkdownOnPaste && isProbablyMarkdown(text)) { const node = ClipboardDOMParser.fromSchema(view.state.schema).parse( new DOMParser().parseFromString( markdowntoHTML(text, { allowDangerousHtml: false }), diff --git a/packages/editor/src/extensions/clipboard/clipboard.ts b/packages/editor/src/extensions/clipboard/clipboard.ts index d9280c65ab..19b06508a9 100644 --- a/packages/editor/src/extensions/clipboard/clipboard.ts +++ b/packages/editor/src/extensions/clipboard/clipboard.ts @@ -30,6 +30,12 @@ import { EditorView } from "prosemirror-view"; export const Clipboard = Extension.create({ name: "clipboard", + addOptions() { + return { + parseMarkdownOnPaste: true + }; + }, + addProseMirrorPlugins() { return [ new Plugin({ @@ -40,7 +46,14 @@ export const Clipboard = Extension.create({ this.editor.schema ), transformCopied, - clipboardTextParser, + clipboardTextParser: (text, $context, plain, view) => + clipboardTextParser( + text, + $context, + plain, + view, + this.options.parseMarkdownOnPaste + ), clipboardTextSerializer } }) diff --git a/packages/editor/src/index.ts b/packages/editor/src/index.ts index 29f6ac8fac..6c2a80fab6 100644 --- a/packages/editor/src/index.ts +++ b/packages/editor/src/index.ts @@ -286,7 +286,9 @@ const useTiptap = ( allowTableNodeSelection: true, cellMinWidth: 50 }), - Clipboard, + Clipboard.configure({ + parseMarkdownOnPaste: options.enableInputRules + }), TableRow, TableCell, TableHeader,