From 35f685b1000ef3cda6f9b56f40de64f94ef31846 Mon Sep 17 00:00:00 2001 From: Vinzent Date: Wed, 3 Aug 2022 17:11:39 +0200 Subject: [PATCH] feat: enable and disable plugin --- docs/docs/actions/miscellaneous.md | 10 ++++++---- src/main.ts | 12 ++++++++++++ src/types.ts | 4 ++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/docs/docs/actions/miscellaneous.md b/docs/docs/actions/miscellaneous.md index e4e9378..0a5c412 100644 --- a/docs/docs/actions/miscellaneous.md +++ b/docs/docs/actions/miscellaneous.md @@ -3,7 +3,9 @@ sidebar_position: 6 --- # Miscellaneous -| / | parameters | explanation | -| -------------- | ------------------------------ | --------------------------------------------------- | -| Exists | , exists=true | Copies `1` to clipboard if file exists, `0` if not. | -| Update plugins | updateplugins=true | Updates all community-plugins | +| / | parameters | explanation | +| ---------------------- | ------------------------------ | --------------------------------------------------- | +| Exists | , exists=true | Copies `1` to clipboard if file exists, `0` if not. | +| Update plugins | updateplugins=true | Updates all community-plugins | +| Enable custom plugin | enable-plugin | Enable `enable-plugin` plugin | +| Disable custom plugins | disable-plugin | Disable `disable-plugin` plugin | diff --git a/src/main.ts b/src/main.ts index a7abf63..4658f15 100644 --- a/src/main.ts +++ b/src/main.ts @@ -136,6 +136,10 @@ export default class AdvancedURI extends Plugin { parameters.data = await navigator.clipboard.readText(); } + if (parameters["enable-plugin"] || parameters["disable-plugin"]) { + this.handlePluginManagement(parameters); + } + if (parameters.workspace || parameters.saveworkspace == "true") { this.handleWorkspace(parameters); @@ -274,6 +278,14 @@ export default class AdvancedURI extends Plugin { } } + handlePluginManagement(parameters: Parameters): void { + if (parameters["enable-plugin"]) { + this.app.plugins.enablePlugin(parameters["enable-plugin"]); + } else if (parameters["disable-plugin"]) { + this.app.plugins.disablePlugin(parameters["disable-plugin"]); + } + } + async handleCommand(parameters: Parameters) { if (parameters.filepath) { if (parameters.mode) { diff --git a/src/types.ts b/src/types.ts index b02e5f0..789091b 100644 --- a/src/types.ts +++ b/src/types.ts @@ -30,6 +30,8 @@ declare module 'obsidian' { plugins: { [key: string]: PluginManifest; }; + enablePlugin(plugin: string): void; + disablePlugin(plugin: string): void; }; internalPlugins: { plugins: { @@ -106,6 +108,8 @@ export interface Parameters { line?: number; newpane?: "true" | "false"; clipboard?: "true"; + "enable-plugin"?: string; + "disable-plugin"?: string; } export interface HookParameters {