diff --git a/app/src/protyle/wysiwyg/keydown.ts b/app/src/protyle/wysiwyg/keydown.ts index abbe59ba8..9186a793f 100644 --- a/app/src/protyle/wysiwyg/keydown.ts +++ b/app/src/protyle/wysiwyg/keydown.ts @@ -1381,19 +1381,21 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => { } if (matchHotKey(window.siyuan.config.keymap.editor.insert.code.custom, event) && !["NodeCodeBlock", "NodeHeading", "NodeTable"].includes(nodeElement.getAttribute("data-type"))) { - const id = nodeElement.getAttribute("data-node-id"); - const html = nodeElement.outerHTML; const editElement = getContenteditableElement(nodeElement); - // 需要 EscapeHTMLStr https://github.com/siyuan-note/siyuan/issues/11451 - editElement.innerHTML = "```" + window.siyuan.storage[Constants.LOCAL_CODELANG] + "\n" + Lute.EscapeHTMLStr(editElement.textContent) + "\n```"; - const newHTML = protyle.lute.SpinBlockDOM(nodeElement.outerHTML); - nodeElement.outerHTML = newHTML; - const newNodeElement = protyle.wysiwyg.element.querySelector(`[data-node-id="${id}"]`); - updateTransaction(protyle, id, newHTML, html); - highlightRender(newNodeElement); - event.preventDefault(); - event.stopPropagation(); - return true; + if (editElement) { + const id = nodeElement.getAttribute("data-node-id"); + const html = nodeElement.outerHTML; + // 需要 EscapeHTMLStr https://github.com/siyuan-note/siyuan/issues/11451 + editElement.innerHTML = "```" + window.siyuan.storage[Constants.LOCAL_CODELANG] + "\n" + Lute.EscapeHTMLStr(editElement.textContent) + "\n```"; + const newHTML = protyle.lute.SpinBlockDOM(nodeElement.outerHTML); + nodeElement.outerHTML = newHTML; + const newNodeElement = protyle.wysiwyg.element.querySelector(`[data-node-id="${id}"]`); + updateTransaction(protyle, id, newHTML, html); + highlightRender(newNodeElement); + event.preventDefault(); + event.stopPropagation(); + return true; + } } // toolbar action