diff --git a/app/src/protyle/util/selection.ts b/app/src/protyle/util/selection.ts index 59c7ae2ed..959c4ea14 100644 --- a/app/src/protyle/util/selection.ts +++ b/app/src/protyle/util/selection.ts @@ -9,6 +9,7 @@ import {hasClosestBlock, hasClosestByAttribute, hasClosestByTag} from "./hasClos import {countBlockWord, countSelectWord} from "../../layout/status"; import {hideElements} from "../ui/hideElements"; import {genRenderFrame} from "../render/util"; +import {Constants} from "../../constants"; const selectIsEditor = (editor: Element, range?: Range) => { if (!range) { @@ -544,8 +545,13 @@ export const focusByWbr = (element: Element, range: Range) => { range.setStart(wbrElement.previousSibling, wbrElement.previousSibling.textContent.length); } else if (wbrElement.nextSibling) { if (wbrElement.nextSibling.nodeType === 3) { - // text - range.setStart(wbrElement.nextSibling, 0); + if (wbrElement.nextSibling.textContent === Constants.ZWSP) { + // 零块空格text + range.setStart(wbrElement.nextSibling, 1); + } else { + // text + range.setStart(wbrElement.nextSibling, 0); + } } else { // a range.setStartAfter(wbrElement); diff --git a/app/src/protyle/wysiwyg/enter.ts b/app/src/protyle/wysiwyg/enter.ts index 3f78174e2..d3c346ec4 100644 --- a/app/src/protyle/wysiwyg/enter.ts +++ b/app/src/protyle/wysiwyg/enter.ts @@ -454,6 +454,7 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) = if (subWbrElement && subWbrElement.parentElement.tagName === "SPAN" && subWbrElement.parentElement.innerHTML === "") { subWbrElement.parentElement.outerHTML = ""; } + newEditElement.parentElement.outerHTML = protyle.lute.SpinBlockDOM(newEditElement.parentElement.outerHTML); let subListNextElement = subListElement.nextElementSibling; newElement.lastElementChild.before(subListElement); // https://github.com/siyuan-note/siyuan/issues/13016 @@ -462,6 +463,9 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) = newElement.lastElementChild.before(subListNextElement.previousElementSibling); } listItemElement.insertAdjacentElement("afterend", newElement); + blockRender(protyle, newElement); + mathRender(newElement); + processRender(newElement); if (listItemElement.getAttribute("data-subtype") === "o") { updateListOrder(listItemElement.parentElement); }