【已解决】 关于更改默认新建笔记的存放位置逻辑

痛点:我当前的设置是 “ 基于当前文件所在的文件夹 ”,我的索引页面与所有笔记是分离存放的,这致使每当我在索引页面创建一个不存在的笔记的链接时,默认新建在了索引页面的文件夹中,实际上我想让他存放在下一层级的 “ Node ” 文件夹内,每次进行此类操作时都要手动移动文件,不方便。

以 “Math” 文件夹举例,我的目录层级如下:
image

类似于附件默认存放路径的设置,其中可选择 “ 当前文件所在文件夹下指定的子文件夹中 ”,这很好的将每一类相关文件夹的附件进行了分离,但对于新建笔记却没有这种选项,想问一下有没有插件能够更改默认新建笔记存放位置的逻辑,以实现我的需求。

emmm,可能有人觉得大可不必分离索引页面和笔记内容,我个人习惯是在文件列表只展开至索引层级,展开到笔记层级会非常杂乱,我还带点强迫症,所以我觉得分离是有必要的。

如果用右键文件夹的方式建立笔记的话,又有两个弊端:

  1. 相比于直接在索引文件建立笔记的方式多了两步操作,还不如手动移动笔记至文件夹中。
  2. 当在索引文件批量建立新笔记时,此方式只能手动一个个新建。

由社区用户 “ champ ” 开发的 “ default-locations-for-new-notes ” 插件已成功解决此问题,并且更好的支持了设定不同目录新建笔记的存放逻辑,链接如下:

2 个赞

这个需要用到一个私有api,等我有时间写一个插件

1 个赞

插件放在了github仓库里面了,你看下可以不

1 个赞

还有个思路就是用folder note 插件,文件夹下面同名的笔记就是你的索引文件,新建的笔记就存在当前文件夹中,然后你点击文件夹就可以直接打开索引文件。

太酷啦,小小的测试了一下,完美实现了我的需求,很棒的小插件!

有个小建议:可以增加当指定目录不存在时的异常处理的选项功能,供用户自选选择此情境下新建笔记的存放位置~,这样就不单只索引文件能使用了,也方便了用户在写笔记时可以将笔记自动放置在当前目录。

其实可以加一个选项:当配置的目录不存在时是否创建该目录

如果开启了这个选项,则新笔记将存放在这个新创建的目录中;如果不开启,则保持现在的逻辑(放在仓库的根目录下)

不知道你说的异常处理的选项都有哪些?

这个选项也不错。

我考虑到,有些使用场景是写笔记的时候会用双链机制创建笔记,比如一个公式他想单独创一个笔记链接到当前笔记,它们应该同属于 “Math/Node/” 文件夹下的笔记,而如果他选择了存放到配置的目录中,会因为没有此目录被放在仓库的根目录下,如果加入一个选项能够在不开启 “当配置的目录不存在时是否创建该目录” 时配置存放的逻辑(例如:仓库根目录、当前文件所在的文件夹、配置的文件夹),用户就可以自行定义不存在此目录是存放的逻辑了。

我懂你的意思了,你的意思是在索引笔记中创建的新笔记放在索引笔记所在目录下的Node子目录中,而在Node目录下的笔记创建的新笔记放在当前的Node目录中,而不是下级Node子目录中(如果开启自动创建文件,就会自动创建嵌套的Node目录)。

这种确实不能用“是否创建不存在的目录”来解决,这种想要通用,只能是加自定义匹配规则了,判断父笔记所在路径,然后配置在这个路径下的笔记中创建新笔记时保存的位置,这样的话,针对你这个场景,只用配置2条规则:索引文件所在目录和Node目录即可

举个例子,假设有一个笔记位于/a/b/c.md,在这个笔记中所创建的新笔记的存放位置,取决于匹配到的规则,匹配顺序依次为:

- /a/b/c.md
- /a/b/
- /a/
- /

其中每一条规则都可以配置一个目标路径(支持root/current变量)

则你的场景只需要下面这两条规则即可:

/Math/${*}/Node: ${current}
/Math/${*}/: ${current}/Node

${*}是一个目录通配符

不知道这样是否符合你的预期

对的 这就是我设想的

这样就能更好的自定义笔记存放的逻辑了

ok 0.0.2版本安排上

1 个赞

@KilluaAoki
发布了,试下新版本

还有一个就是,你在新建笔记的时候就指定绝对路径,这样也可以实现这个需求

测试了一下,已经完美满足我的需求了,太赞了佬



插件里面找不到

目录截个图 看看

已截图 发到上面了

解决了 和一个插件冲突。不得不吐槽一下那个插件,导致ob笔记切换卡顿,还会影响你开发的这个插件。


请问已经按要求将插件文件夹放到.obsidian\plugins中,但是在启用时报这个错误是什么原因呢?谢谢!

obsidian42 brat 插件安装试试呢