fix: Remove ZWSP when copying inline elements (#14002)

fix https://github.com/siyuan-note/siyuan/issues/13882
This commit is contained in:
Jeffrey Chen 2025-02-03 11:13:48 +08:00 committed by GitHub
parent f3f1b0beac
commit 3a5a3b4550
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -416,9 +416,9 @@ export class WYSIWYG {
}
// 不能使用 commonAncestorContainer https://ld246.com/article/1643282894693
if (hasClosestByAttribute(range.startContainer, "data-type", "NodeCodeBlock")) {
textPlain = tempElement.textContent.replace(Constants.ZWSP, "").replace(/\n$/, "");
textPlain = tempElement.textContent.replace(new RegExp(Constants.ZWSP, "g"), "").replace(/\n$/, "");
} else if (hasClosestByMatchTag(range.startContainer, "CODE")) {
textPlain = tempElement.textContent.replace(Constants.ZWSP, "");
textPlain = tempElement.textContent.replace(new RegExp(Constants.ZWSP, "g"), "");
} else {
textPlain = range.toString();
}
@ -429,6 +429,7 @@ export class WYSIWYG {
}
textPlain = textPlain || protyle.lute.BlockDOM2StdMd(html).trimEnd();
textPlain = textPlain.replace(/\u00A0/g, " "); // Replace non-breaking spaces with normal spaces when copying https://github.com/siyuan-note/siyuan/issues/9382
textPlain = textPlain.replace(new RegExp(Constants.ZWSP, "g"), ""); // Remove ZWSP when copying inline elements https://github.com/siyuan-note/siyuan/issues/13882
event.clipboardData.setData("text/plain", textPlain);
event.clipboardData.setData("text/html", selectTableElement ? html : protyle.lute.BlockDOM2HTML(selectAVElement ? textPlain : html));
event.clipboardData.setData("text/siyuan", selectTableElement ? protyle.lute.HTML2BlockDOM(html) : html);