diff --git a/app/src/menus/Menu.ts b/app/src/menus/Menu.ts
index ec49f0206..c13b0a898 100644
--- a/app/src/menus/Menu.ts
+++ b/app/src/menus/Menu.ts
@@ -82,6 +82,16 @@ export class Menu {
}
}
+ public addSeparator() {
+ this.addItem({type: "separator"});
+ }
+
+ public addItem(option: IMenu) {
+ const menuItem = new MenuItem(option);
+ this.append(menuItem.element);
+ return menuItem.element;
+ }
+
public remove() {
if (window.siyuan.menus.menu.removeCB) {
window.siyuan.menus.menu.removeCB();
@@ -170,7 +180,7 @@ export class MenuItem {
});
}
let html = ``;
- if (options.iconHTML) {
+ if (typeof options.iconHTML === "string") {
html = options.iconHTML + html;
} else {
html = `${html}`;
diff --git a/app/src/plugin/API.ts b/app/src/plugin/API.ts
index ea28b232d..dea1d7dca 100644
--- a/app/src/plugin/API.ts
+++ b/app/src/plugin/API.ts
@@ -39,16 +39,14 @@ export class Menu {
if (this.isOpen) {
return;
}
- const menuItem = new MenuItem(option);
- this.menu.append(menuItem.element);
- return menuItem.element;
+ return this.menu.addItem(option);
}
addSeparator() {
if (this.isOpen) {
return;
}
- this.addItem({type: "separator"});
+ this.menu.addSeparator();
}
open(options: { x: number, y: number, h?: number, w?: number, isLeft: false }) {
diff --git a/app/src/protyle/gutter/index.ts b/app/src/protyle/gutter/index.ts
index 6020217f0..4f44a0e06 100644
--- a/app/src/protyle/gutter/index.ts
+++ b/app/src/protyle/gutter/index.ts
@@ -708,6 +708,12 @@ export class Gutter {
}
}).element);
}
+ this.app?.plugins?.forEach((plugin) => {
+ plugin.eventBus.emit("click-blockicon", {
+ menu: window.siyuan.menus.menu,
+ blockElements: selectsElement,
+ });
+ });
return window.siyuan.menus.menu;
}
@@ -1501,8 +1507,11 @@ export class Gutter {
type: "readonly",
label: `${updateHTML}${window.siyuan.languages.createdAt} ${dayjs(id.substr(0, 14)).format("YYYY-MM-DD HH:mm:ss")}`,
}).element);
- this.app.plugins.forEach((plugin) => {
- plugin.eventBus.emit("click-blockicon", [nodeElement]);
+ this.app?.plugins?.forEach((plugin) => {
+ plugin.eventBus.emit("click-blockicon", {
+ menu: window.siyuan.menus.menu,
+ blockElements: [nodeElement]
+ });
});
return window.siyuan.menus.menu;
}