diff --git a/app/src/protyle/wysiwyg/remove.ts b/app/src/protyle/wysiwyg/remove.ts index 86b94464e..ade0cfeba 100644 --- a/app/src/protyle/wysiwyg/remove.ts +++ b/app/src/protyle/wysiwyg/remove.ts @@ -246,8 +246,24 @@ export const removeBlock = (protyle: IProtyle, blockElement: Element, range: Ran // 设置 bq 和代码块光标 // 需放在列表处理后 https://github.com/siyuan-note/siyuan/issues/11606 if (["NodeCodeBlock", "NodeTable", "NodeAttributeView"].includes(blockType)) { - if (blockElement.previousElementSibling) { - focusBlock(blockElement.previousElementSibling, undefined, false); + const previousElement = getPreviousBlock(blockElement) + if (previousElement) { + if (previousElement.classList.contains("p") && getContenteditableElement(previousElement).textContent === "") { + const ppElement = getPreviousBlock(previousElement) + transaction(protyle, [{ + action: "delete", + id: previousElement.getAttribute("data-node-id"), + }], [{ + action: "insert", + data: previousElement.outerHTML, + id: previousElement.getAttribute("data-node-id"), + parentID: protyle.block.parentID, + previousID: ppElement ? ppElement.getAttribute("data-node-id") : undefined + }]); + previousElement.remove(); + } else { + focusBlock(previousElement, undefined, false); + } } return; }