From 73e4e20350355797b85a4f6997d3b5f1a3de1ac7 Mon Sep 17 00:00:00 2001 From: zigholding Date: Mon, 16 Dec 2024 12:51:58 +0800 Subject: [PATCH] select config folder --- data.json | 1 + src/commands.ts | 28 ++++++++++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/data.json b/data.json index 4d426d1..c764ac4 100644 --- a/data.json +++ b/data.json @@ -1,3 +1,4 @@ { + "strict_mode": false, "vaultDir": "" } \ No newline at end of file diff --git a/src/commands.ts b/src/commands.ts index e0ee980..2826f16 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -47,17 +47,33 @@ const cmd_export_plugin = (plugin:NoteSyncPlugin) => ({ let p = await nc.chain.tp_suggester(plugins,plugins); let eplugin = (plugin.app as any).plugins.getPlugin(p); if(eplugin){ - let paths = plugin.settings.vaultDir.split("\n").map( - (x:string)=>{ - return plugin.fsEditor.path.join(x,'.obsidian','plugins') - } - ) + let paths = plugin.settings.vaultDir.split("\n") let target = await plugin.fsEditor.select_valid_dir( paths ) - if(!plugin.fsEditor.fs.existsSync(target)){ + if(target){ + let items = plugin.fsEditor.list_dir(target,false) + items = items.filter((x:string)=>x.startsWith('.') && x!='.git').filter( + (x:string)=>plugin.fsEditor.isdir( + plugin.fsEditor.path.join(target,x) + ) + ) + if(items.length==1){ + target = plugin.fsEditor.path.join(target,items[0],'plugins') + }else if(items.length>1){ + let item = await plugin.fsEditor.notechain.chain.tp_suggester( + items,items,true,'config' + ) + if(item){ + target = plugin.fsEditor.path.join(target,item,'plugins') + } + } + } + if(!plugin.fsEditor.fs.existsSync(target) || + plugin.fsEditor.path.basename(target)!='plugins'){ target = await nc.chain.tp_prompt(plugin.strings.prompt_path_of_folder); } + target = target.replace(/\\/g,'/'); if(!target.endsWith('/' + p)){ target = target + '/' + p;