【已解决】每个笔记一个 id,生成文件链接时通过 id 生成

这样笔记名称及路径变更时,链接不会失效

可以使用时间戳命名,正式标题放在别名就行了。

Vinzent03/obsidian-advanced-uri: Advanced modes for Obsidian URI (github.com)

用过这个插件吗, 这个插件就能实现你说的功能

现在的OB也能实现这个功能的吧,在引用之后,就算修改笔记文件的名字或者路径,它都能同步修改链接。这个是在软件内操作的,但是如果你是软件外操作的话,那可能确实无法实现。
再说通过id来生成链接是简单,但是引用的时候确实非常麻烦

有两个问题

  1. 文件移动后,链接仍然会失效
  2. 使用时间戳命名,固然更稳定,但是快速切换等功能将受限,显示出来一列时间戳,没有清晰的文件名直观。

感谢,有空试试,这个像是通过关键key在ob中进行检索,不知道性能如何。

说的就是在外部打开ob链接。
id 应该是最简单高效的方式,不存在你说的引用的时候很麻烦的问题。
id 作为唯一主键,保障链接的有效性。笔记标题,别名等作为普通索引,方便ob内引用。
ob的笔记必然是有id的,不过在生成链接的时候,没有使用id去生成链接。这应该是一个可以改进的地方。

文件移动后链接不会失效。

因为有别名存在,快速切换也是清晰的。

链接中是有文件夹名称的,为什么移动后不会失效呢?
我试了下,是不行的啊。

快速切换里,没找到显示别名的开关,只能显示出文件名,该怎么显示别名呢?

链接是自动更新的,哪怕用的是绝对路径。

别名要在每个笔记的yaml里单独赋予,这样快速切换就可以直接搜索了。

笔记内,会自动更新链接,但在外部访问链接,如果笔记发生变动,链接会失效。这个链接是没办法自动更新的。

链接目前看到的构成是 库+文件夹名称+笔记名称,移动文件夹必然会链接失效啊。

如果使用 id 来生成链接,可以始终保证链接的有效性。

快速切换的问题,如果以时间戳命名,则切换的过程中,必然需要进行检索。而我只想打开快速切换列表中的某个最近的笔记,本可以不用检索。

不太懂为什么需要外部访问笔记。

不过即便外部访问笔记,可以考虑在根目录下遍历时间戳文件名,毕竟一个时间只会出现一次。也可以用advanced uri通过uid来访问。

感谢,开启uid,很好用。
谢谢谢谢!