From 3f239a12f6b60800395c170bccd2c92ad7df4ce6 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 31 Mar 2025 22:02:01 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/14479 --- app/src/protyle/wysiwyg/enter.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/protyle/wysiwyg/enter.ts b/app/src/protyle/wysiwyg/enter.ts index 8d66a39da..a615768fe 100644 --- a/app/src/protyle/wysiwyg/enter.ts +++ b/app/src/protyle/wysiwyg/enter.ts @@ -394,20 +394,20 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) = (editableElement.textContent.endsWith(Constants.ZWSP) ? 1 : 0)) { // 段末换行,在子列表中插入 range.insertNode(document.createElement("wbr")); - const html = subListElement.outerHTML; + const html = listItemElement.outerHTML; blockElement.querySelector("wbr").remove(); newElement = genListItemElement(subListElement.firstElementChild, -1, true); subListElement.firstElementChild.before(newElement); if (subListElement.getAttribute("data-subtype") === "o") { updateListOrder(subListElement); } - updateTransaction(protyle, subListElement.getAttribute("data-node-id"), subListElement.outerHTML, html); + updateTransaction(protyle, listItemElement.getAttribute("data-node-id"), listItemElement.outerHTML, html); focusByWbr(listItemElement, range); scrollCenter(protyle); } else { // 文字中间换行 range.insertNode(document.createElement("wbr")); - const listItemHTMl = listItemElement.outerHTML; + const listItemHTML = listItemElement.outerHTML; const html = listItemElement.parentElement.outerHTML; if (range.toString() !== "") { range.extractContents(); @@ -417,6 +417,10 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) = newElement = genListItemElement(listItemElement, 0, false); const newEditElement = getContenteditableElement(newElement); newEditElement.appendChild(range.extractContents()); + const subWbrElement = newEditElement.querySelector("wbr"); + if (subWbrElement && subWbrElement.parentElement.tagName === "SPAN" && subWbrElement.parentElement.innerHTML === "") { + subWbrElement.parentElement.outerHTML = ""; + } let subListNextElement = subListElement.nextElementSibling; newElement.lastElementChild.before(subListElement); // https://github.com/siyuan-note/siyuan/issues/13016 @@ -443,7 +447,7 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) = id: newElement.getAttribute("data-node-id"), }, { action: "update", - data: listItemHTMl, + data: listItemHTML, id: listItemElement.getAttribute("data-node-id") }]); } else { @@ -482,6 +486,7 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) = range.setEnd(nextSibling, nextSibling.textContent.startsWith(Constants.ZWSP) ? 1 : 0); range.collapse(false); } + mathElement.querySelector("wbr")?.remove(); return true; } range.extractContents(); @@ -491,6 +496,10 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) = newElement = genListItemElement(listItemElement, 0, false); const newEditableElement = getContenteditableElement(newElement); newEditableElement.appendChild(range.extractContents()); + const selectWbrElement = newEditableElement.querySelector("wbr"); + if (selectWbrElement && selectWbrElement.parentElement.tagName === "SPAN" && selectWbrElement.parentElement.innerHTML === "") { + selectWbrElement.parentElement.outerHTML = ""; + } // 回车移除空元素 https://github.com/siyuan-note/insider/issues/480 // https://github.com/siyuan-note/siyuan/issues/12273 // 文字和图片中间回车后图片前需添加 zwsp