editor: fix duplicate block-id when pasting content from note

This commit is contained in:
Ammar Ahmed
2024-09-13 15:17:11 +05:00
committed by Ammar Ahmed
parent 2c7cddd853
commit bbfe0b237d
2 changed files with 12 additions and 1 deletions

View File

@@ -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(/<br.*?>/g, "\n");

View File

@@ -17,8 +17,8 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;