Vanessa 2024-05-30 10:58:07 +08:00
parent 1d2a9c2d3a
commit a5a9c15874
2 changed files with 17 additions and 7 deletions

View file

@ -296,7 +296,6 @@ export const enter = (blockElement: HTMLElement, range: Range, protyle: IProtyle
const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) => {
const listItemElement = blockElement.parentElement;
const editableElement = getContenteditableElement(blockElement);
if (// \n 是因为 https://github.com/siyuan-note/siyuan/issues/3846
["", "\n"].includes(editableElement.textContent) &&
@ -451,6 +450,10 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) =
!hasNextSibling(editableElement?.lastElementChild)) {
editableElement.insertAdjacentText("beforeend", "\n");
}
// img 后有文字,在 img 后换行
if (editableElement?.lastElementChild?.classList.contains("img") && !hasNextSibling(editableElement?.lastElementChild)) {
editableElement.insertAdjacentText("beforeend", Constants.ZWSP);
}
getContenteditableElement(newElement).appendChild(selectNode);
listItemElement.insertAdjacentElement("afterend", newElement);
if (listItemElement.getAttribute("data-subtype") === "o") {

View file

@ -2400,12 +2400,19 @@ export class WYSIWYG {
const imgElement = hasTopClosestByClassName(event.target, "img");
if (!event.shiftKey && !ctrlIsPressed && imgElement) {
imgElement.classList.add("img--select");
range.setStartAfter(imgElement);
range.collapse(true);
focusByRange(range);
// 需等待 range 更新再次进行渲染
if (protyle.options.render.breadcrumb) {
protyle.breadcrumb.render(protyle);
const nextSibling = hasNextSibling(imgElement)
if (nextSibling) {
if (nextSibling.textContent.startsWith(Constants.ZWSP)) {
range.setStart(nextSibling, 1);
} else {
range.setStart(nextSibling, 0);
}
range.collapse(true);
focusByRange(range);
// 需等待 range 更新再次进行渲染
if (protyle.options.render.breadcrumb) {
protyle.breadcrumb.render(protyle);
}
}
return;
}