From e103b5c2f0469d0a9dd1b1849659c3e13a0d6b16 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Tue, 12 Aug 2025 11:28:22 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/15453 --- app/src/plugin/index.ts | 13 ++++++++++++- app/src/plugin/uninstall.ts | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/plugin/index.ts b/app/src/plugin/index.ts index a892184a1..6036a5daf 100644 --- a/app/src/plugin/index.ts +++ b/app/src/plugin/index.ts @@ -155,8 +155,19 @@ export class Plugin { } public addIcons(svg: string) { - document.body.insertAdjacentHTML("afterbegin", ` + const svgElement = document.querySelector(`svg[data-name="${this.name}"] defs`); + if (svgElement) { + svgElement.innerHTML = svg; + } else { + const lastSvgElement = document.querySelector("body > svg:last-of-type"); + if (lastSvgElement) { + lastSvgElement.insertAdjacentHTML("afterend", ` ${svg}`); + } else { + document.body.insertAdjacentHTML("afterbegin", ` +${svg}`); + } + } } public addTopBar(options: { diff --git a/app/src/plugin/uninstall.ts b/app/src/plugin/uninstall.ts index 7fba77cf3..19cfb52e1 100644 --- a/app/src/plugin/uninstall.ts +++ b/app/src/plugin/uninstall.ts @@ -62,6 +62,8 @@ export const uninstall = (app: App, name: string, isUninstall = false) => { }); // rm plugin app.plugins.splice(index, 1); + // rm icons + document.querySelector(`svg[data-name="${plugin.name}"]`)?.remove(); // rm protyle toolbar getAllEditor().forEach(editor => { editor.protyle.toolbar.update(editor.protyle);