🎨 Add data-id attribute to the buttons (#15052)

斜杠菜单中插件添加的选项、顶栏的插件菜单、顶栏的外观模式菜单,修正块引用锚文本的右键菜单

fix https://github.com/siyuan-note/siyuan/issues/12518
This commit is contained in:
Jeffrey Chen 2025-07-23 17:53:25 +08:00 committed by GitHub
parent 963cbfe15f
commit be3db79688
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 13 additions and 2 deletions

View file

@ -134,6 +134,7 @@ export const initBar = (app: App) => {
window.siyuan.menus.menu.remove();
window.siyuan.menus.menu.element.setAttribute("data-name", "barmode");
window.siyuan.menus.menu.append(new MenuItem({
id: "themeLight",
label: window.siyuan.languages.themeLight,
icon: "iconLight",
current: window.siyuan.config.appearance.mode === 0 && !window.siyuan.config.appearance.modeOS,
@ -142,6 +143,7 @@ export const initBar = (app: App) => {
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
id: "themeDark",
label: window.siyuan.languages.themeDark,
current: window.siyuan.config.appearance.mode === 1 && !window.siyuan.config.appearance.modeOS,
icon: "iconDark",
@ -150,6 +152,7 @@ export const initBar = (app: App) => {
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
id: "themeOS",
label: window.siyuan.languages.themeOS,
current: window.siyuan.config.appearance.modeOS,
icon: "iconMode",

View file

@ -620,7 +620,7 @@ export const refMenu = (protyle: IProtyle, element: HTMLElement) => {
}
});
window.siyuan.menus.menu.append(new MenuItem({
id: "iconRefresh",
id: "turnInto",
label: window.siyuan.languages.turnInto,
icon: "iconRefresh",
submenu

View file

@ -10,6 +10,7 @@ export const openTopBarMenu = (app: App, target?: Element) => {
const menu = new Menu("topBarPlugin");
/// #if !MOBILE
menu.addItem({
id: "manage",
icon: "iconSettings",
label: window.siyuan.languages.manage,
ignore: isHuawei() || window.siyuan.config.readonly,
@ -17,7 +18,7 @@ export const openTopBarMenu = (app: App, target?: Element) => {
openSetting(app).element.querySelector('.b3-tab-bar [data-name="bazaar"]').dispatchEvent(new CustomEvent("click"));
}
});
menu.addSeparator(undefined, isHuawei() || window.siyuan.config.readonly);
menu.addSeparator({id: "separator_1"}, isHuawei() || window.siyuan.config.readonly);
/// #endif
let hasPlugin = false;
app.plugins.forEach((plugin) => {
@ -27,6 +28,7 @@ export const openTopBarMenu = (app: App, target?: Element) => {
plugin.topBarIcons.forEach(item => {
const hasUnpin = window.siyuan.storage[Constants.LOCAL_PLUGINTOPUNPIN].includes(item.id);
const submenu = [{
id: hasUnpin ? "pin" : "unpin",
icon: hasUnpin ? "iconPin" : "iconUnpin",
label: hasUnpin ? window.siyuan.languages.pin : window.siyuan.languages.unpin,
click() {
@ -43,6 +45,7 @@ export const openTopBarMenu = (app: App, target?: Element) => {
}];
if (hasSetting) {
submenu.push({
id: "config",
icon: "iconSettings",
label: window.siyuan.languages.config,
click() {
@ -53,6 +56,7 @@ export const openTopBarMenu = (app: App, target?: Element) => {
const itemLabel = target ? item.getAttribute("aria-label") : item.textContent.trim();
if (!target) {
submenu.push({
id: "play",
icon: "iconPlay",
label: itemLabel,
click() {
@ -62,6 +66,7 @@ export const openTopBarMenu = (app: App, target?: Element) => {
});
}
const menuOption: IMenu = {
id: item.id,
icon: "iconInfo",
label: itemLabel,
click: target ? () => {
@ -84,6 +89,7 @@ export const openTopBarMenu = (app: App, target?: Element) => {
if (!hasTopBar && hasSetting) {
hasPlugin = true;
menu.addItem({
id: plugin.name,
icon: "iconSettings",
label: plugin.displayName,
click() {
@ -97,6 +103,7 @@ export const openTopBarMenu = (app: App, target?: Element) => {
window.siyuan.menus.menu.element.querySelector(".b3-menu__separator")?.remove();
} else {
menu.addItem({
id: "emptyContent",
iconHTML: "",
type: "readonly",
label: window.siyuan.languages.emptyContent,

View file

@ -332,6 +332,7 @@ export const hintSlash = (key: string, protyle: IProtyle) => {
plugin.protyleSlash.forEach(slash => {
allList.push({
filter: slash.filter,
id: slash.id,
value: `plugin${Constants.ZWSP}${plugin.name}${Constants.ZWSP}${slash.id}`,
html: slash.html
});