diff --git a/packages/editor/src/extensions/clipboard/clipboard-dom-parser.ts b/packages/editor/src/extensions/clipboard/clipboard-dom-parser.ts index a7f41e5a1..49ec2c83e 100644 --- a/packages/editor/src/extensions/clipboard/clipboard-dom-parser.ts +++ b/packages/editor/src/extensions/clipboard/clipboard-dom-parser.ts @@ -43,11 +43,18 @@ export class ClipboardDOMParser extends ProsemirrorDOMParser { formatCodeblocks(dom); convertBrToSingleSpacedParagraphs(dom); removeImages(dom); + removeBlockId(dom); } return super.parseSlice(dom, options); } } +export function removeBlockId(dom: HTMLElement | Document) { + for (const element of dom.querySelectorAll("[data-block-id]")) { + element.removeAttribute("data-block-id"); + } +} + export function formatCodeblocks(dom: HTMLElement | Document) { for (const pre of dom.querySelectorAll("pre")) { pre.innerHTML = pre.innerHTML?.replaceAll(//g, "\n"); diff --git a/packages/editor/src/extensions/clipboard/clipboard-dom-serializer.ts b/packages/editor/src/extensions/clipboard/clipboard-dom-serializer.ts index 45e1438f0..b7e8feb22 100644 --- a/packages/editor/src/extensions/clipboard/clipboard-dom-serializer.ts +++ b/packages/editor/src/extensions/clipboard/clipboard-dom-serializer.ts @@ -17,8 +17,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -import { Fragment, Schema } from "prosemirror-model"; import { DOMSerializer } from "@tiptap/pm/model"; +import { Fragment, Schema } from "prosemirror-model"; export class ClipboardDOMSerializer extends DOMSerializer { static fromSchema(schema: Schema): ClipboardDOMSerializer { @@ -43,6 +43,10 @@ export class ClipboardDOMSerializer extends DOMSerializer { p.remove(); } + for (const element of dom.querySelectorAll("[data-block-id]")) { + element.removeAttribute("data-block-id"); + } + for (const p of dom.querySelectorAll('p[data-spacing="single"]')) { if (!p.previousElementSibling || p.previousElementSibling.tagName !== "P") continue;