mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-20 16:40:13 +01:00
This commit is contained in:
parent
afdc96458c
commit
1525c6c899
5 changed files with 41 additions and 6 deletions
|
|
@ -6,6 +6,7 @@ import {hideMessage, showMessage} from "../dialog/message";
|
||||||
import {confirmDialog} from "../dialog/confirmDialog";
|
import {confirmDialog} from "../dialog/confirmDialog";
|
||||||
import {hideElements} from "../protyle/ui/hideElements";
|
import {hideElements} from "../protyle/ui/hideElements";
|
||||||
import {viewCards} from "./viewCards";
|
import {viewCards} from "./viewCards";
|
||||||
|
import {Constants} from "../constants";
|
||||||
|
|
||||||
export const genCardItem = (item: ICardPackage) => {
|
export const genCardItem = (item: ICardPackage) => {
|
||||||
return `<li data-id="${item.id}" class="b3-list-item b3-list-item--narrow${isMobile() ? "" : " b3-list-item--hide-action"}">
|
return `<li data-id="${item.id}" class="b3-list-item b3-list-item--narrow${isMobile() ? "" : " b3-list-item--hide-action"}">
|
||||||
|
|
@ -181,7 +182,7 @@ export const quickMakeCard = (nodeElement: Element[]) => {
|
||||||
ids.push(item.getAttribute("data-node-id"));
|
ids.push(item.getAttribute("data-node-id"));
|
||||||
});
|
});
|
||||||
fetchPost("/api/riff/addRiffCards", {
|
fetchPost("/api/riff/addRiffCards", {
|
||||||
deckID: "20230218211946-2kw8jgx",
|
deckID: Constants.QUICK_DECK_ID,
|
||||||
blockIDs: ids
|
blockIDs: ids
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ export const viewCards = (deckID: string, title: string, cb:(response:IWebSocket
|
||||||
break;
|
break;
|
||||||
} else if (type === "remove") {
|
} else if (type === "remove") {
|
||||||
fetchPost("/api/riff/removeRiffCards", {
|
fetchPost("/api/riff/removeRiffCards", {
|
||||||
deckID: isDoc ? "20230218211946-2kw8jgx" : deckID,
|
deckID: isDoc ? Constants.QUICK_DECK_ID : deckID,
|
||||||
blockIDs: [target.getAttribute("data-id")]
|
blockIDs: [target.getAttribute("data-id")]
|
||||||
}, (removeResponse) => {
|
}, (removeResponse) => {
|
||||||
let nextElment = target.parentElement.nextElementSibling;
|
let nextElment = target.parentElement.nextElementSibling;
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ export abstract class Constants {
|
||||||
public static readonly TIMEOUT_BLOCKLOAD = 300;
|
public static readonly TIMEOUT_BLOCKLOAD = 300;
|
||||||
public static readonly TIMEOUT_TRANSITION = 150;
|
public static readonly TIMEOUT_TRANSITION = 150;
|
||||||
|
|
||||||
// help path
|
// id
|
||||||
public static readonly HELP_PATH = {
|
public static readonly HELP_PATH = {
|
||||||
zh_CN: "20210808180117-czj9bvb",
|
zh_CN: "20210808180117-czj9bvb",
|
||||||
zh_CHT: "20211226090932-5lcq56f",
|
zh_CHT: "20211226090932-5lcq56f",
|
||||||
|
|
@ -93,6 +93,8 @@ export abstract class Constants {
|
||||||
fr_FR: "20210808180117-6v0mkxr",
|
fr_FR: "20210808180117-6v0mkxr",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static readonly QUICK_DECK_ID = "20230218211946-2kw8jgx"
|
||||||
|
|
||||||
public static readonly KEYCODE: { [key: string]: string[] } = {
|
public static readonly KEYCODE: { [key: string]: string[] } = {
|
||||||
"186": [";", ":"],
|
"186": [";", ":"],
|
||||||
"187": ["=", "+"],
|
"187": ["=", "+"],
|
||||||
|
|
@ -108,7 +110,8 @@ export abstract class Constants {
|
||||||
};
|
};
|
||||||
// 冲突不使用 "⌘S/Q"
|
// 冲突不使用 "⌘S/Q"
|
||||||
// "⌘", "⇧", "⌥", "⌃"
|
// "⌘", "⇧", "⌥", "⌃"
|
||||||
// "⌘A", "⌘X", "⌘C", "⌘V", "⇧⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌘⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦" 不可自定义
|
// "⌘A", "⌘X", "⌘C", "⌘V", "⇧⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌘⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←",
|
||||||
|
// "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦" 不可自定义
|
||||||
public static readonly SIYUAN_KEYMAP: IKeymap = {
|
public static readonly SIYUAN_KEYMAP: IKeymap = {
|
||||||
general: {
|
general: {
|
||||||
editMode: {default: "⇧⌘G", custom: "⇧⌘G"},
|
editMode: {default: "⇧⌘G", custom: "⇧⌘G"},
|
||||||
|
|
@ -159,6 +162,7 @@ export abstract class Constants {
|
||||||
openBy: {default: "⌥,", custom: "⌥,"},
|
openBy: {default: "⌥,", custom: "⌥,"},
|
||||||
insertRight: {default: "⌥.", custom: "⌥."},
|
insertRight: {default: "⌥.", custom: "⌥."},
|
||||||
attr: {default: "⌥⌘A", custom: "⌥⌘A"},
|
attr: {default: "⌥⌘A", custom: "⌥⌘A"},
|
||||||
|
quickMakeCard: {default: "⌥⌘F", custom: "⌥⌘F"},
|
||||||
refresh: {default: "F5", custom: "F5"},
|
refresh: {default: "F5", custom: "F5"},
|
||||||
copyBlockRef: {default: "⇧⌘C", custom: "⇧⌘C"},
|
copyBlockRef: {default: "⇧⌘C", custom: "⇧⌘C"},
|
||||||
copyProtocol: {default: "⇧⌘H", custom: "⇧⌘H"},
|
copyProtocol: {default: "⇧⌘H", custom: "⇧⌘H"},
|
||||||
|
|
|
||||||
|
|
@ -668,7 +668,8 @@ export class Gutter {
|
||||||
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
|
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
|
||||||
window.siyuan.menus.menu.append(new MenuItem({
|
window.siyuan.menus.menu.append(new MenuItem({
|
||||||
label: window.siyuan.languages.quickMakeCard,
|
label: window.siyuan.languages.quickMakeCard,
|
||||||
iconHTML:`<svg class="b3-menu__icon"><use xlink:href="#iconRiffCard"></use></svg>`,
|
accelerator: window.siyuan.config.keymap.editor.general.quickMakeCard.custom,
|
||||||
|
iconHTML: `<svg class="b3-menu__icon" style="color:var(--b3-theme-primary)"><use xlink:href="#iconRiffCard"></use></svg>`,
|
||||||
icon: "iconRiffCard",
|
icon: "iconRiffCard",
|
||||||
click() {
|
click() {
|
||||||
quickMakeCard(selectsElement);
|
quickMakeCard(selectsElement);
|
||||||
|
|
@ -1440,7 +1441,8 @@ export class Gutter {
|
||||||
if (type !== "NodeThematicBreak") {
|
if (type !== "NodeThematicBreak") {
|
||||||
window.siyuan.menus.menu.append(new MenuItem({
|
window.siyuan.menus.menu.append(new MenuItem({
|
||||||
label: window.siyuan.languages.quickMakeCard,
|
label: window.siyuan.languages.quickMakeCard,
|
||||||
iconHTML:`<svg class="b3-menu__icon"><use xlink:href="#iconRiffCard"></use></svg>`,
|
accelerator: window.siyuan.config.keymap.editor.general.quickMakeCard.custom,
|
||||||
|
iconHTML: `<svg class="b3-menu__icon" style="color:var(--b3-theme-primary)"><use xlink:href="#iconRiffCard"></use></svg>`,
|
||||||
icon: "iconRiffCard",
|
icon: "iconRiffCard",
|
||||||
click() {
|
click() {
|
||||||
quickMakeCard([nodeElement]);
|
quickMakeCard([nodeElement]);
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,7 @@ import {preventScroll} from "../scroll/preventScroll";
|
||||||
import {getSavePath} from "../../util/newFile";
|
import {getSavePath} from "../../util/newFile";
|
||||||
import {escapeHtml} from "../../util/escape";
|
import {escapeHtml} from "../../util/escape";
|
||||||
import {insertHTML} from "../util/insertHTML";
|
import {insertHTML} from "../util/insertHTML";
|
||||||
|
import {quickMakeCard} from "../../card/makeCard";
|
||||||
|
|
||||||
export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
||||||
editorElement.addEventListener("keydown", (event: KeyboardEvent & { target: HTMLElement }) => {
|
editorElement.addEventListener("keydown", (event: KeyboardEvent & { target: HTMLElement }) => {
|
||||||
|
|
@ -993,6 +994,33 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (matchHotKey(window.siyuan.config.keymap.editor.general.quickMakeCard.custom, event)) {
|
||||||
|
const selectElement: Element[] = []
|
||||||
|
nodeElement.classList.add("protyle-wysiwyg--select");
|
||||||
|
let isRemove = true;
|
||||||
|
const removeIds: string[] = [];
|
||||||
|
protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select").forEach(item => {
|
||||||
|
selectElement.push(item);
|
||||||
|
item.classList.remove("protyle-wysiwyg--select");
|
||||||
|
removeIds.push(item.getAttribute("data-node-id"));
|
||||||
|
if ((item.getAttribute("custom-riff-decks") || "").indexOf(Constants.QUICK_DECK_ID) > -1) {
|
||||||
|
isRemove = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (isRemove) {
|
||||||
|
fetchPost("/api/riff/removeRiffCards", {
|
||||||
|
deckID: Constants.QUICK_DECK_ID,
|
||||||
|
blockIDs: removeIds
|
||||||
|
}, (removeResponse) => {
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
quickMakeCard(selectElement);
|
||||||
|
}
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
if (matchHotKey(window.siyuan.config.keymap.editor.general.attr.custom, event)) {
|
if (matchHotKey(window.siyuan.config.keymap.editor.general.attr.custom, event)) {
|
||||||
const topElement = getTopAloneElement(nodeElement);
|
const topElement = getTopAloneElement(nodeElement);
|
||||||
if (selectText === "") {
|
if (selectText === "") {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue