Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FR: 希望加入插件启停模板 #54

Closed
hustrjh opened this issue Oct 4, 2022 · 3 comments
Closed

FR: 希望加入插件启停模板 #54

hustrjh opened this issue Oct 4, 2022 · 3 comments
Labels
enhancement New feature or request

Comments

@hustrjh
Copy link
Contributor

hustrjh commented Oct 4, 2022

首先感谢大佬的无私奉献!
我在平时实际使用示例库时有一个问题,就是插件太多,启动较慢,有些插件也不是用不上,只是不是每次都需要用。如果一并禁用,要用时再启用,操作较麻烦,如果一并启用,使用频率不高,还影响每次启动速度。所以受FastStartup模板的启发,我改写了一份插件启停模板,代码贴在下方,希望加入示例库,方便更多人。

模板文件

<%*
let myEn= await tp.system.suggester( ["启用", "停用"], [1, 0]);
let myChoice = await tp.system.suggester( ["编辑增强", "表格增强", "显示加强", "全部",], ["Edit+", "Table+", "View+", "All"]);
var i;
var num;
var pluginArr = [];
-%>
<%*
//函数定义
fastSwitch = async (choice, en) => {
	switch(choice)
	{
		case "Edit+":
			//pluginArr.splice(0, 0, "editing-toolbar", "obsidian-outliner");
			pluginArr=pluginArr.concat(["editing-toolbar", "obsidian-outliner", "various-complements", "number-headings-obsidian"]);
			break;
		case "Table+":
			pluginArr=pluginArr.concat(["notion-like-tables", "dbfolder", "obsidian-charts", "obsidian-echarts", "obsidian-yaml-database"]);
			break;
		case "View+":
			pluginArr=pluginArr.concat(["obsidian-quiet-outline", "obsidian-react-components", "ProxyGithub"]);
			break;
		case "All":
			pluginArr=pluginArr.concat(["editing-toolbar", "obsidian-outliner", "various-complements", "number-headings-obsidian", "notion-like-tables", "dbfolder", "obsidian-charts", "obsidian-echarts", "obsidian-yaml-database", "obsidian-quiet-outline", "obsidian-react-components", "ProxyGithub"]);
			break;
	}
	num = pluginArr.length;
	switch(en)
	{
		case 1:
			for(i=0;i<num;i++)
			{
				await app.plugins.enablePlugin(pluginArr[i]);
			}
			break;
		case 0:
			for(i=0;i<num;i++)
			{
				await app.plugins.disablePlugin(pluginArr[i]);
			}
			break;
	}
}

//函数调用
await fastSwitch(myChoice, myEn);
-%>

使用方法

这是一个Templater模板,放入模板文件夹即可。

  1. 使用时调用这份模板,先选择启用、停用插件。
    image
  2. 根据需求选择对应的选项,每个选项内的插件个数和名称都是自定义的,根据需求把相关插件放一起启用、停用。我发现editing-toolbarobsidian-outlinervarious-complements这几个插件启动消耗资源较多,建议不用每次都随软件启动。
    image

优点

  1. 通过模板启用同类多个插件后,下次再开启Obsidian时不会自动启用,不影响启动速度。我也曾尝试使用Advanced URI启停插件,这种方式只能一个一个启停,同时启停的效果下次再启动Obsidian时仍会保留,十分不便。
  2. 启停什么插件及数量都是可以自定义的,之所以不用js方式,就是因为js不方便在Obsidian中查看和修改。
  3. 以后安装、使用多少插件都更加灵活自由,无需担心影响启动速度,使用也方便。

说明

  1. 除了在启动Obsidian时就必须同时启用的插件外,其它插件都需要先手动禁用,否则这些没禁用的插件仍会随软件启动。
  2. 这份模板想使用的更方便,至少将模板绑定快捷键或者通过Buttons插件新建按钮。不建议QuickAdd方式,模板本身不产生新文件,但通过QuickAdd新建模板就会产生一个空文件。
@cumany
Copy link
Collaborator

cumany commented Oct 4, 2022

很棒! 感谢你的模板,下一版本会集成,谢谢!

@cumany cumany added the enhancement New feature or request label Oct 4, 2022
@hustrjh
Copy link
Contributor Author

hustrjh commented Oct 4, 2022

谢谢大佬的认可! 😄 这份模板只是抛砖引玉,希望这份模板能在大佬的改造和集成下更方便修改和使用! 👍 👍 👍

@cumany
Copy link
Collaborator

cumany commented Oct 21, 2022

已添加到最新的示例库中 感谢!

@cumany cumany closed this as completed Oct 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants