From 8094e28b138bac9f4d31fc7facc9f1e7b0bc6d78 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 12 May 2025 00:06:50 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/14625 --- app/src/protyle/util/paste.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/protyle/util/paste.ts b/app/src/protyle/util/paste.ts index 568f634ad..d3fc8c3b9 100644 --- a/app/src/protyle/util/paste.ts +++ b/app/src/protyle/util/paste.ts @@ -531,11 +531,22 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven e.remove(); } }); - if (tempElement.childElementCount === 1 && tempElement.childNodes.length === 1 && - tempElement.firstElementChild.tagName === "A" && range.toString()) { + // https://github.com/siyuan-note/siyuan/issues/14625#issuecomment-2869618067 + let linkElement; + if (tempElement.childElementCount === 1 && tempElement.childNodes.length === 1) { + if (tempElement.firstElementChild.tagName === "A") { + linkElement = tempElement.firstElementChild; + } else if (tempElement.firstElementChild.tagName === "P" && + tempElement.firstElementChild.childElementCount === 1 && + tempElement.firstElementChild.childNodes.length === 1 && + tempElement.firstElementChild.firstElementChild.tagName === "A") { + linkElement = tempElement.firstElementChild.firstElementChild; + } + } + if (linkElement) { protyle.toolbar.setInlineMark(protyle, "a", "range", { type: "a", - color: (tempElement.firstElementChild as HTMLLinkElement).href + color: `${linkElement.getAttribute("href")}${Constants.ZWSP}${range.toString() || linkElement.textContent}` }); return; }