浏览代码

:art: https://github.com/siyuan-note/siyuan/issues/13016

Vanessa 8 月之前
父节点
当前提交
c6e816e596
共有 1 个文件被更改,包括 9 次插入3 次删除
  1. 9 3
      app/src/protyle/wysiwyg/enter.ts

+ 9 - 3
app/src/protyle/wysiwyg/enter.ts

@@ -407,7 +407,13 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) =
             newElement = genListItemElement(listItemElement, 0, false);
             newElement = genListItemElement(listItemElement, 0, false);
             const newEditElement = getContenteditableElement(newElement);
             const newEditElement = getContenteditableElement(newElement);
             newEditElement.appendChild(range.extractContents());
             newEditElement.appendChild(range.extractContents());
-            newEditElement.parentElement.after(subListElement);
+            let subListNextElement = subListElement.nextElementSibling;
+            newElement.lastElementChild.before(subListElement);
+            // https://github.com/siyuan-note/siyuan/issues/13016
+            while (!subListNextElement.classList.contains("protyle-attr")) {
+                subListNextElement = subListNextElement.nextElementSibling;
+                newElement.lastElementChild.before(subListNextElement.previousElementSibling);
+            }
             listItemElement.insertAdjacentElement("afterend", newElement);
             listItemElement.insertAdjacentElement("afterend", newElement);
             if (listItemElement.getAttribute("data-subtype") === "o") {
             if (listItemElement.getAttribute("data-subtype") === "o") {
                 updateListOrder(listItemElement.parentElement);
                 updateListOrder(listItemElement.parentElement);
@@ -455,7 +461,7 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) =
     }
     }
     range.insertNode(document.createElement("wbr"));
     range.insertNode(document.createElement("wbr"));
     const listItemHTML = listItemElement.outerHTML;
     const listItemHTML = listItemElement.outerHTML;
-    const html = listItemElement.parentElement.outerHTML;
+    const oldHTML = listItemElement.parentElement.outerHTML;
     if (range.toString() !== "") {
     if (range.toString() !== "") {
         // 选中数学公式后回车取消选中 https://github.com/siyuan-note/siyuan/issues/12637#issuecomment-2381106949
         // 选中数学公式后回车取消选中 https://github.com/siyuan-note/siyuan/issues/12637#issuecomment-2381106949
         const mathElement = hasClosestByAttribute(range.startContainer, "data-type", "inline-math");
         const mathElement = hasClosestByAttribute(range.startContainer, "data-type", "inline-math");
@@ -513,7 +519,7 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) =
             data: listItemHTML
             data: listItemHTML
         }]);
         }]);
     } else {
     } else {
-        updateTransaction(protyle, listItemElement.parentElement.getAttribute("data-node-id"), listItemElement.parentElement.outerHTML, html);
+        updateTransaction(protyle, listItemElement.parentElement.getAttribute("data-node-id"), listItemElement.parentElement.outerHTML, oldHTML);
     }
     }
     focusByWbr(newElement, range);
     focusByWbr(newElement, range);
     scrollCenter(protyle);
     scrollCenter(protyle);