mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-26 18:26:09 +01:00
This commit is contained in:
parent
4d92d63ba1
commit
37d82649aa
1 changed files with 32 additions and 0 deletions
|
|
@ -819,6 +819,22 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
}
|
||||
const position = getSelectionOffset(editElement, protyle.wysiwyg.element, range);
|
||||
if (event.key === "Delete" || matchHotKey("⌃D", event)) {
|
||||
// 图片后为空格,在空格后删除 https://github.com/siyuan-note/siyuan/issues/13949
|
||||
if (range.startOffset === 0 && range.startContainer.textContent.length === 1) {
|
||||
const rangePreviousElement = hasPreviousSibling(range.startContainer) as HTMLElement
|
||||
const rangeNextElement = hasNextSibling(range.startContainer) as HTMLElement
|
||||
if (rangePreviousElement && rangePreviousElement.nodeType === 1 && rangePreviousElement.classList.contains("img") &&
|
||||
rangeNextElement && rangeNextElement.nodeType === 1 && rangeNextElement.classList.contains("img")) {
|
||||
const wbrElement = document.createElement("wbr")
|
||||
range.insertNode(wbrElement)
|
||||
const oldHTML = nodeElement.outerHTML;
|
||||
wbrElement.nextSibling.textContent = Constants.ZWSP;
|
||||
updateTransaction(protyle, nodeElement.getAttribute("data-node-id"), nodeElement.outerHTML, oldHTML)
|
||||
focusByWbr(nodeElement, range);
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
}
|
||||
// 需使用 innerText,否则 br 无法传唤为 /n https://github.com/siyuan-note/siyuan/issues/12066
|
||||
// 段末反向删除 https://github.com/siyuan-note/insider/issues/274
|
||||
if (position.end === editElement.innerText.length ||
|
||||
|
|
@ -902,6 +918,22 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
// 图片后为空格,在空格后删除 https://github.com/siyuan-note/siyuan/issues/13949
|
||||
if (range.startOffset === 1 && range.startContainer.textContent.length === 1) {
|
||||
const rangePreviousElement = hasPreviousSibling(range.startContainer) as HTMLElement
|
||||
const rangeNextElement = hasNextSibling(range.startContainer) as HTMLElement
|
||||
if (rangePreviousElement && rangePreviousElement.nodeType === 1 && rangePreviousElement.classList.contains("img") &&
|
||||
rangeNextElement && rangeNextElement.nodeType === 1 && rangeNextElement.classList.contains("img")) {
|
||||
const wbrElement = document.createElement("wbr")
|
||||
range.insertNode(wbrElement)
|
||||
const oldHTML = nodeElement.outerHTML;
|
||||
wbrElement.previousSibling.textContent = Constants.ZWSP;
|
||||
updateTransaction(protyle, nodeElement.getAttribute("data-node-id"), nodeElement.outerHTML, oldHTML)
|
||||
focusByWbr(nodeElement, range);
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
}
|
||||
// 代码块中空行 ⌘+Del 异常 https://ld246.com/article/1663166544901
|
||||
if (nodeElement.classList.contains("code-block") && isOnlyMeta(event) &&
|
||||
range.startContainer.nodeType === 3 && range.startContainer.textContent.substring(range.startOffset - 1, range.startOffset) === "\n") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue