Procházet zdrojové kódy

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

Vanessa před 8 měsíci
rodič
revize
c6e816e596
1 změnil soubory, kde provedl 9 přidání a 3 odebrání
  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);
             const newEditElement = getContenteditableElement(newElement);
             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);
             if (listItemElement.getAttribute("data-subtype") === "o") {
                 updateListOrder(listItemElement.parentElement);
@@ -455,7 +461,7 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) =
     }
     range.insertNode(document.createElement("wbr"));
     const listItemHTML = listItemElement.outerHTML;
-    const html = listItemElement.parentElement.outerHTML;
+    const oldHTML = listItemElement.parentElement.outerHTML;
     if (range.toString() !== "") {
         // 选中数学公式后回车取消选中 https://github.com/siyuan-note/siyuan/issues/12637#issuecomment-2381106949
         const mathElement = hasClosestByAttribute(range.startContainer, "data-type", "inline-math");
@@ -513,7 +519,7 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) =
             data: listItemHTML
         }]);
     } 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);
     scrollCenter(protyle);