From b153b5654428eb3adc21043bd9cdbb1fdeba72f2 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Wed, 29 May 2024 21:23:52 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/11572 --- app/src/protyle/wysiwyg/index.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/src/protyle/wysiwyg/index.ts b/app/src/protyle/wysiwyg/index.ts index 9927de267..b06a9d577 100644 --- a/app/src/protyle/wysiwyg/index.ts +++ b/app/src/protyle/wysiwyg/index.ts @@ -1816,6 +1816,27 @@ export class WYSIWYG { event.preventDefault(); return; } + if (!blockElement) { + return; + } + // 链接,备注,样式,引用,pdf标注粘贴 https://github.com/siyuan-note/siyuan/issues/11572 + const range = getSelection().getRangeAt(0); + const inlineElement = range.startContainer.parentElement; + if (range.toString() === "" && inlineElement.tagName === "SPAN") { + const currentTypes = (inlineElement.getAttribute("data-type") || "").split(" "); + if (currentTypes.includes("inline-memo") || currentTypes.includes("text") || + currentTypes.includes("block-ref") || currentTypes.includes("file-annotation-ref") || + currentTypes.includes("a")) { + const offset = getSelectionOffset(inlineElement, blockElement, range); + if (offset.start === 0) { + range.setStartBefore(inlineElement); + range.collapse(true); + } else if (offset.start === inlineElement.textContent.length) { + range.setEndAfter(inlineElement); + range.collapse(false); + } + } + } paste(protyle, event); });