使用 obsidian URI
Obsidian 支持自定义的 URI 协议 Obsidian://
,这个协议可以用来触发 Obsidian 内部的各种动作。自定义 URI 协议通常用于 MacOS 中的跨应用程序工作流。
如果你已经安装了 Obsidian,下面这个命令将在当前设备上打开 Obidian:点击此处
为了让你的操作系统将 obsidian://
URI 重定向到 Obsidian,你可能需要执行一些额外的步骤。
obsidian://
自定义协议处理程序。obsidian.desktop
文件。你可以在此获得更多相关信息 Exec
字段指定为 Exec=executable %u
。%u
将用于传递 obsidian://
URI 给 Obsidian。 Obsidian-x.y.z.AppImage --appimage-extract
来解压它。然后确保 Exec
指向解压出来的可执行文件。Obsidian URI 通常采用以下形式:
obsidian://action?param1=value¶m2=value
action
表示你想让 Obsidian 执行的动作。这部分非常重要
你需要确保 URI 中的值是正确编码的。比如,正斜线字符 /
必须编码为 %2F
,空格字符必须编码为 %20
。这一点特别重要,因为不符合规范的 URI 将不能正常运行。想要了解更多编码规范请点击此处
open
动作动作描述:在 Obsidian 中打开一个库,甚至打开库内的某个文件。
可能用到的参数:
vault
既可以使用库名称,也可以使用库 ID。
ef6ca3e3b524d22f
。目前没有简单的方法来找到这些 ID,我们日后会开发相关的功能。目前库 ID 可以在以下路径找到:
%appdata%/obsidian/obsidian.json
%appdata%
替换为 ~/Library/Application Support/
%appdata%
替换为 ~/.config/
。file
既可以使用文件名称,也可以使用基于库的根目录的文件路径。
[[Wiki链接]]
一样的定位规则。md
,可以省略扩展名。path
则是文件在系统中的绝对路径。
vault
和 file
参数。vault
,再执行 file
。示例:
obsidian://open?vault=my%20vault
my vault
的库。如果该库已经打开,则让焦点回到该库上。obsidian://open?vault=ef6ca3e3b524d22f
ef6ca3e3b524d22f
的库。obsidian://open?vault=my%20vault&file=my%20note
my vault
的库,并且库中包含 my note.md
这样一条笔记的话,这将打开该笔记。obsidian://open?vault=my%20vault&file=my%20note.md
my vault
库中名为 my note
的笔记。obsidian://open?vault=my%20vault&file=path%2Fto%2Fmy%20note
my vault
库中路径为 path/to/my note
的笔记。obsidian://open?path=%2Fhome%2Fuser%2Fmy%20vault%2Fpath%2Fto%2Fmy%20note
这将让 Obsidian 查找包含路径 /home/user/my vault/path/to/my note
的库。随后,路径参数的剩余部分将传递给 file
参数。这就好比在一个路径为 /home/user/my vault
的库中将 file
参数设置为 path/to/my note
一样。obsidian://open?path=D%3A%5CDocuments%5CMy%20vault%5CMy%20note
D:\Documents\My vault\My note
的库。随后,路径参数的剩余部分将传递给 file
参数。这就好比在一个路径为 D:\Documents\My vault
的库中将 file
参数设置为 My note
一样。search
动作描述:打开 Obsidian 中某个库的查询面板,然后执行搜索(是否执行搜索是可选的)。
可能用到的参数:
vault
既可以是库名称,也可以是库 ID,这和 open
动作里一样。query
用于设置要执行的搜索。这是可选参数。示例:
obsidian://search?vault=my%20vault
my vault
的库,然后打开该库的查询面板。obsidian://search?vault=my%20vault&query=MOC
my vault
的库,然后打开该库的查询面板,并搜索 MOC
。new
动作描述:在库中创建一篇新笔记,并为笔记写入一些内容(可选)。
可能用到的参数:
vault
既可以是库名称,也可以是库 ID,这和 open
动作里一样。name
用于指定创建的笔记名称。新笔记的存放位置受设置中 新建笔记的存放位置
选项控制。file
通过基于库的绝对路径来创建笔记。这将覆盖 name
的设置。path
通过全局的绝对路径来创建笔记,这和 open
动作中的一样。该参数将覆盖 vault
和 file
的设置。content
指定新笔记中的内容,该参数非必须。silent
如果你不想打开新笔记,则设置此参数。示例:
-obsidian://new?vault=my%20vault&name=my%20note\
这将打开名为 my vault
的库,并创建一篇名为 my note
的新笔记。
-obsidian://new?vault=my%20vault&path=path%2Fto%2Fmy%20note
这将打开名为 my vault
的库,并在 path/to/my note
路径下创建一篇名为 my note
的新笔记。
hook-get-address
动作描述:与 Hook 配合使用的动作,即复制当前笔记的 URI 到剪贴板,即点击该 URI 后自动生成一个 open
当前笔记的 URI 并复制到剪贴板。使用方式: obsidian://hook-get-address
。
可能用到的参数:
vault
用于指定库,可以是库名称也可以是库 ID。此参数非必须。如果不指定此参数,动作将指向当前或上次打开的库。除了上述形式之外,你还可以使用两种简写形式来打开库或文件:
obsidian://vault/my vault/my note
这等同于 obsidian://open?vault=my%20vault&file=my%20note
obsidian:///absolute/path/to/my note
这等同于 obsidian://open?path=%2Fabsolute%2Fpath%2Fto%2Fmy%20note
Preview: