This commit is contained in:
parent
35d0c63928
commit
b1499d721c
3 changed files with 37 additions and 8 deletions
|
@ -257,6 +257,7 @@ export const contentMenu = (protyle: IProtyle, nodeElement: Element) => {
|
|||
}).element);
|
||||
window.siyuan.menus.menu.append(new MenuItem({
|
||||
label: window.siyuan.languages.copyPlainText,
|
||||
accelerator: window.siyuan.config.keymap.editor.general.copyPlainText.custom,
|
||||
click() {
|
||||
focusByRange(getEditorRange(nodeElement));
|
||||
const cloneContents = getSelection().getRangeAt(0).cloneContents();
|
||||
|
|
|
@ -487,6 +487,7 @@ export class Gutter {
|
|||
}).element);
|
||||
window.siyuan.menus.menu.append(new MenuItem({
|
||||
label: window.siyuan.languages.copyPlainText,
|
||||
accelerator: window.siyuan.config.keymap.editor.general.copyPlainText.custom,
|
||||
click() {
|
||||
let html = "";
|
||||
selectsElement.forEach(item => {
|
||||
|
@ -854,6 +855,7 @@ export class Gutter {
|
|||
}
|
||||
}, {
|
||||
label: window.siyuan.languages.copyPlainText,
|
||||
accelerator: window.siyuan.config.keymap.editor.general.copyPlainText.custom,
|
||||
click() {
|
||||
let text = "";
|
||||
nodeElement.querySelectorAll('[contenteditable="true"]').forEach(item => {
|
||||
|
|
|
@ -232,14 +232,6 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
}
|
||||
}
|
||||
|
||||
if (!isCtrl(event) && event.key !== "Backspace" && event.key !== "Escape" && event.key !== "Delete" && !event.shiftKey && !event.altKey &&
|
||||
!matchHotKey(window.siyuan.config.keymap.editor.list.indent.custom, event) &&
|
||||
!matchHotKey(window.siyuan.config.keymap.editor.list.outdent.custom, event) &&
|
||||
!matchHotKey(window.siyuan.config.keymap.editor.general.newContentFile.custom, event) &&
|
||||
event.key !== "Enter") {
|
||||
hideElements(["select"], protyle);
|
||||
}
|
||||
|
||||
if (range.toString() !== "") {
|
||||
// 选中后继续输入 https://ld246.com/article/1626710391372
|
||||
if (protyle.toolbar.getCurrentType(range).length > 0) {
|
||||
|
@ -1446,6 +1438,35 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
event.stopPropagation();
|
||||
}
|
||||
|
||||
if (matchHotKey(window.siyuan.config.keymap.editor.general.copyPlainText.custom, event)) {
|
||||
if (range.toString() === "") {
|
||||
const selectsElement: HTMLElement[] = Array.from(protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select"));
|
||||
let html = "";
|
||||
if (selectsElement.length === 0) {
|
||||
selectsElement.push(nodeElement)
|
||||
}
|
||||
selectsElement.forEach(item => {
|
||||
item.querySelectorAll('[contenteditable="true"]').forEach(editItem => {
|
||||
const cloneNode = editItem.cloneNode(true) as HTMLElement;
|
||||
cloneNode.querySelectorAll('[data-type="backslash"]').forEach(slashItem => {
|
||||
slashItem.firstElementChild.remove();
|
||||
});
|
||||
html += cloneNode.textContent + "\n";
|
||||
});
|
||||
});
|
||||
writeText(html.trimEnd());
|
||||
} else {
|
||||
const cloneContents = range.cloneContents();
|
||||
cloneContents.querySelectorAll('[data-type="backslash"]').forEach(item => {
|
||||
item.firstElementChild.remove();
|
||||
});
|
||||
writeText(cloneContents.textContent);
|
||||
}
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
|
||||
if (matchHotKey(window.siyuan.config.keymap.editor.general.vLayout.custom, event)) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
@ -1619,5 +1640,10 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
return;
|
||||
}
|
||||
/// #endif
|
||||
|
||||
// 置于最后,太多快捷键会使用到选中元素
|
||||
if (!isCtrl(event) && event.key !== "Backspace" && event.key !== "Escape" && event.key !== "Delete" && !event.shiftKey && !event.altKey && event.key !== "Enter") {
|
||||
hideElements(["select"], protyle);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue