mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 07:00:12 +01:00
This commit is contained in:
parent
4692487b4d
commit
b96781004b
1 changed files with 26 additions and 2 deletions
|
|
@ -807,6 +807,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const editElement = getContenteditableElement(nodeElement) as HTMLElement;
|
||||||
const imgSelectElement = protyle.wysiwyg.element.querySelector(".img--select");
|
const imgSelectElement = protyle.wysiwyg.element.querySelector(".img--select");
|
||||||
if (imgSelectElement) {
|
if (imgSelectElement) {
|
||||||
imgSelectElement.classList.remove("img--select");
|
imgSelectElement.classList.remove("img--select");
|
||||||
|
|
@ -823,7 +824,6 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const editElement = getContenteditableElement(nodeElement) as HTMLElement;
|
|
||||||
if (!editElement) {
|
if (!editElement) {
|
||||||
nodeElement.classList.add("protyle-wysiwyg--select");
|
nodeElement.classList.add("protyle-wysiwyg--select");
|
||||||
removeBlock(protyle, nodeElement, range, event.key === "Backspace" ? "Backspace" : "Delete");
|
removeBlock(protyle, nodeElement, range, event.key === "Backspace" ? "Backspace" : "Delete");
|
||||||
|
|
@ -1023,12 +1023,36 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (nodeElement.classList.contains("code-block") && getContenteditableElement(nodeElement).textContent === "\n") {
|
} else if (nodeElement.classList.contains("code-block") && editElement.textContent === "\n") {
|
||||||
// 空代码块全选删除异常 https://github.com/siyuan-note/siyuan/issues/6706
|
// 空代码块全选删除异常 https://github.com/siyuan-note/siyuan/issues/6706
|
||||||
range.collapse(true);
|
range.collapse(true);
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return;
|
return;
|
||||||
|
} else if (selectText !== "") {
|
||||||
|
const position = getSelectionOffset(editElement, protyle.wysiwyg.element, range);
|
||||||
|
if (range.startOffset === 0 && range.endContainer.textContent.length === range.endOffset) {
|
||||||
|
// 图片后为空格,在空格后删除 https://github.com/siyuan-note/siyuan/issues/13949
|
||||||
|
// 图片前有一个字符,在字符后删除 https://github.com/siyuan-note/siyuan/issues/15911
|
||||||
|
const rangePreviousElement = hasPreviousSibling(range.startContainer) as HTMLElement;
|
||||||
|
const rangeNextElement = hasNextSibling(range.endContainer) as HTMLElement;
|
||||||
|
if ((rangePreviousElement && rangePreviousElement.nodeType === 1 && rangePreviousElement.classList.contains("img") &&
|
||||||
|
rangeNextElement && rangeNextElement.nodeType === 1 && rangeNextElement.classList.contains("img")) ||
|
||||||
|
(position.start === 0 &&
|
||||||
|
range.startContainer.textContent !== Constants.ZWSP && // 如果为 zwsp 需前移光标
|
||||||
|
!rangePreviousElement &&
|
||||||
|
rangeNextElement && rangeNextElement.nodeType === 1 && rangeNextElement.classList.contains("img"))) {
|
||||||
|
range.insertNode(document.createElement("wbr"));
|
||||||
|
const oldHTML = nodeElement.outerHTML;
|
||||||
|
range.deleteContents();
|
||||||
|
range.insertNode(document.createTextNode(Constants.ZWSP));
|
||||||
|
range.insertNode(document.createElement("wbr"));
|
||||||
|
updateTransaction(protyle, nodeElement.getAttribute("data-node-id"), nodeElement.outerHTML, oldHTML);
|
||||||
|
focusByWbr(nodeElement, range);
|
||||||
|
event.preventDefault();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue