diff --git a/packages/client/src/tiptap/core/extensions/paste.ts b/packages/client/src/tiptap/core/extensions/paste.ts index 11082771..da2d8bdd 100644 --- a/packages/client/src/tiptap/core/extensions/paste.ts +++ b/packages/client/src/tiptap/core/extensions/paste.ts @@ -5,6 +5,7 @@ import { Fragment, Schema } from 'prosemirror-model'; import { Plugin, PluginKey } from 'prosemirror-state'; import { EXTENSION_PRIORITY_HIGHEST } from 'tiptap/core/constants'; import { + debug, handleFileEvent, isInCode, isMarkdown, @@ -83,19 +84,12 @@ export const Paste = Extension.create({ const markdownText = event.clipboardData.getData('text/markdown'); const { state, dispatch } = view; - if (typeof window !== 'undefined') { - if (window.location.search.includes('dev=1')) { - console.group(); - console.log('paste', { - text, - vscode, - node, - markdownText, - }); - console.log(html); - console.groupEnd(); - } - } + debug(() => { + console.group('paste'); + console.log({ text, vscode, node, markdownText }); + console.log(html); + console.groupEnd(); + }); const { markdownToProsemirror } = extensionThis.options; @@ -150,10 +144,6 @@ export const Paste = Extension.create({ return true; } - if (html?.includes('data-pm-slice')) { - return false; - } - // 处理 markdown if (markdownText || isMarkdown(text) || html.length === 0 || pasteCodeLanguage === 'markdown') { event.preventDefault(); diff --git a/packages/client/src/tiptap/prose-utils/copy-node.ts b/packages/client/src/tiptap/prose-utils/copy-node.ts index d76e029c..d59d8366 100644 --- a/packages/client/src/tiptap/prose-utils/copy-node.ts +++ b/packages/client/src/tiptap/prose-utils/copy-node.ts @@ -3,6 +3,8 @@ import { copy } from 'helpers/copy'; import { safeJSONStringify } from 'helpers/json'; import { Fragment, Node } from 'prosemirror-model'; +import { debug } from './debug'; + export function copyNode(nodeOrNodeName: Node | Fragment); export function copyNode(nodeOrNodeName: string, editor: Editor); export function copyNode(nodeOrNodeName: string | Node | Fragment, editor?: Editor) { @@ -44,9 +46,19 @@ export function copyNode(nodeOrNodeName: string | Node | Fragment, editor?: const html = markdownToHTML(markdown); toCopy.push({ text: html, format: 'text/html' }); } catch (e) { - // + debug(() => { + console.group('copy'); + console.error(e.message); + console.groupEnd(); + }); } + debug(() => { + console.group('copy'); + console.log(toCopy); + console.groupEnd(); + }); + copy(toCopy); } diff --git a/packages/client/src/tiptap/prose-utils/debug.ts b/packages/client/src/tiptap/prose-utils/debug.ts new file mode 100644 index 00000000..4568a285 --- /dev/null +++ b/packages/client/src/tiptap/prose-utils/debug.ts @@ -0,0 +1,7 @@ +export function debug(run) { + if (typeof window !== 'undefined') { + if (window.location.search.includes('dev=1')) { + run(); + } + } +} diff --git a/packages/client/src/tiptap/prose-utils/index.ts b/packages/client/src/tiptap/prose-utils/index.ts index 16f5d9e9..aa820780 100644 --- a/packages/client/src/tiptap/prose-utils/index.ts +++ b/packages/client/src/tiptap/prose-utils/index.ts @@ -3,6 +3,7 @@ export * from './clamp'; export * from './code'; export * from './color'; export * from './copy-node'; +export * from './debug'; export * from './delete-node'; export * from './dom'; export * from './dom-dataset';