diff --git a/app/src/protyle/util/insertHTML.ts b/app/src/protyle/util/insertHTML.ts index 69b703226..adc1f1c80 100644 --- a/app/src/protyle/util/insertHTML.ts +++ b/app/src/protyle/util/insertHTML.ts @@ -34,7 +34,8 @@ export const insertHTML = (html: string, protyle: IProtyle, isBlock = false, let id = blockElement.getAttribute("data-node-id"); range.insertNode(document.createElement("wbr")); let oldHTML = blockElement.outerHTML; - if (!isBlock && blockElement.getAttribute("data-type") === "NodeCodeBlock") { + if (!isBlock && + (blockElement.getAttribute("data-type") === "NodeCodeBlock" || protyle.toolbar.getCurrentType(range).includes("code"))) { range.deleteContents(); range.insertNode(document.createTextNode(html.replace(/\r\n|\r|\u2028|\u2029/g, "\n"))); range.collapse(false); diff --git a/app/src/protyle/util/paste.ts b/app/src/protyle/util/paste.ts index 183756406..84bda1c33 100644 --- a/app/src/protyle/util/paste.ts +++ b/app/src/protyle/util/paste.ts @@ -169,7 +169,8 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven }); const code = processPasteCode(textHTML, textPlain); const range = getEditorRange(protyle.wysiwyg.element); - if (nodeElement.getAttribute("data-type") === "NodeCodeBlock") { + if (nodeElement.getAttribute("data-type") === "NodeCodeBlock" || + protyle.toolbar.getCurrentType(range).includes("code")) { // 粘贴在代码位置 insertHTML(textPlain, protyle); return; @@ -201,25 +202,8 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven highlightRender(protyle.wysiwyg.element); } else if (code) { if (!code.startsWith('