mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-21 07:46:09 +01:00
This commit is contained in:
parent
e6e120489a
commit
3e883204b1
4 changed files with 15 additions and 18 deletions
|
|
@ -489,20 +489,14 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) =
|
|||
}
|
||||
range.setEndAfter(editableElement.lastChild);
|
||||
newElement = genListItemElement(listItemElement, 0, false);
|
||||
const selectNode = range.extractContents();
|
||||
if (selectNode.firstChild.nodeType !== 3 && selectNode.firstChild.textContent === "") {
|
||||
// 回车移除空元素 https://github.com/siyuan-note/insider/issues/480
|
||||
selectNode.firstChild.after(document.createElement("wbr"));
|
||||
selectNode.firstChild.remove();
|
||||
}
|
||||
if (selectNode.textContent === Constants.ZWSP) {
|
||||
// https://github.com/siyuan-note/siyuan/issues/12273
|
||||
selectNode.childNodes.forEach(item => {
|
||||
if (item.nodeType === 3 && item.textContent === Constants.ZWSP) {
|
||||
item.remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
const newEditableElement = getContenteditableElement(newElement);
|
||||
newEditableElement.appendChild(range.extractContents());
|
||||
// 回车移除空元素 https://github.com/siyuan-note/insider/issues/480
|
||||
// https://github.com/siyuan-note/siyuan/issues/12273
|
||||
// 文字和图片中间回车后图片前需添加 zwsp
|
||||
newEditableElement.parentElement.outerHTML = protyle.lute.SpinBlockDOM(newEditableElement.parentElement.outerHTML);
|
||||
listItemElement.insertAdjacentElement("afterend", newElement);
|
||||
mathRender(newElement);
|
||||
// https://github.com/siyuan-note/siyuan/issues/3850
|
||||
// https://github.com/siyuan-note/siyuan/issues/6018
|
||||
if ((editableElement?.lastElementChild?.getAttribute("data-type") || "").indexOf("inline-math") > -1 &&
|
||||
|
|
@ -513,8 +507,6 @@ const listEnter = (protyle: IProtyle, blockElement: HTMLElement, range: Range) =
|
|||
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") {
|
||||
updateListOrder(listItemElement.parentElement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ export const isEndOfBlock = (range: Range) => {
|
|||
}
|
||||
|
||||
let nextSibling = range.endContainer;
|
||||
if (range.endContainer.nodeType !== 3 && range.endContainer.childNodes[range.endOffset]) {
|
||||
if (range.endContainer.nodeType !== 3) {
|
||||
nextSibling = range.endContainer.childNodes[range.endOffset];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -946,7 +946,10 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
return;
|
||||
}
|
||||
// 图片前有一个字符,在字符后删除
|
||||
if (position.start === 1 && !rangePreviousElement && rangeNextElement && rangeNextElement.nodeType === 1 && rangeNextElement.classList.contains("img")) {
|
||||
if (position.start === 1 &&
|
||||
range.startContainer.textContent !== Constants.ZWSP && // 如果为 zwsp 需前移光标
|
||||
!rangePreviousElement &&
|
||||
rangeNextElement && rangeNextElement.nodeType === 1 && rangeNextElement.classList.contains("img")) {
|
||||
const wbrElement = document.createElement("wbr");
|
||||
range.insertNode(wbrElement);
|
||||
const oldHTML = nodeElement.outerHTML;
|
||||
|
|
|
|||
|
|
@ -407,6 +407,8 @@ export const removeBlock = (protyle: IProtyle, blockElement: Element, range: Ran
|
|||
range.selectNodeContents(previousLastEditElement);
|
||||
range.collapse(false);
|
||||
range.insertNode(leftNodes);
|
||||
// 图片前删除到上一个文字块时,图片前有 zwsp
|
||||
previousLastElement.outerHTML = protyle.lute.SpinBlockDOM(previousLastElement.outerHTML);
|
||||
removeElement.remove();
|
||||
// extractContents 内容过多时需要进行滚动条重置,否则位置会错位
|
||||
protyle.contentElement.scrollTop = scroll;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue