URI 深度链接速查表
Obsidian URI(obsidian://)允许从外部应用或脚本控制 Obsidian。
基本格式
text
obsidian://action?vault=仓库名&参数1=值1&参数2=值2通用参数
| 参数 | 说明 | 示例 |
|---|---|---|
vault | 仓库名称或 ID | MyVault |
file | 文件路径 | Notes/MyNote |
path | 文件路径(与 file 类似) | Notes/MyNote |
仓库名称 vs ID
- 名称:使用仓库的显示名称,如
MyVault - ID:使用仓库的随机 ID,在
.obsidian/app.json中查看 - 建议使用名称,更直观
操作列表
打开笔记
text
obsidian://open?vault=MyVault&file=Notes/MyNote| 参数 | 说明 |
|---|---|
vault | 仓库名 |
file | 文件路径 |
path | 文件路径(替代 file) |
打开到指定标题:
text
obsidian://open?vault=MyVault&file=Notes/MyNote&heading=My%20Heading创建新笔记
text
obsidian://new?vault=MyVault&name=MyNote&content=Hello&folder=Inbox| 参数 | 说明 |
|---|---|
vault | 仓库名 |
name | 笔记名称 |
content | 笔记内容(需 URL 编码) |
folder | 存放文件夹 |
overwrite | true 覆盖已有文件 |
append | true 追加到已有文件 |
open | true(默认)创建后打开 |
追加内容到已有笔记:
text
obsidian://new?vault=MyVault&name=Daily/2024-01-15&content=%0A%23%23%20%E6%96%B0%E5%A2%9E%0A%E8%BF%BD%E5%8A%A0%E5%86%85%E5%AE%B9&append=true搜索
text
obsidian://search?vault=MyVault&query=keyword| 参数 | 说明 |
|---|---|
vault | 仓库名 |
query | 搜索关键词 |
打开搜索并替换
text
obsidian://search?vault=MyVault&query=old&replace=new打开图谱
text
obsidian://graph?vault=MyVault| 参数 | 说明 |
|---|---|
vault | 仓库名 |
color | 颜色过滤 |
filter | 过滤条件 |
打开设置
text
obsidian://settingsURL 编码参考
特殊字符必须 URL 编码:
| 字符 | 编码 | 说明 |
|---|---|---|
| 空格 | %20 | 或使用 + |
| 换行 | %0A | \n |
# | %23 | 标题符号 |
& | %26 | 参数分隔符 |
= | %3D | 赋值符号 |
/ | %2F | 路径分隔符 |
[ | %5B | Wiki 链接 |
] | %5D | Wiki 链接 |
| ` | ` | %7C |
| 中文 | %E4%B8%AD | UTF-8 编码 |
编码工具
bash
# Python URL 编码
python3 -c "import urllib.parse; print(urllib.parse.quote('你好世界'))"
# JavaScript URL 编码
node -e "console.log(encodeURIComponent('你好世界'))"
# Shell URL 编码
echo -n "你好世界" | xxd -plain | sed 's/\(..\)/%\1/g'跨平台调用
macOS
bash
# 使用 open 命令
open "obsidian://open?vault=MyVault&file=Notes/MyNote"
# 使用 AppleScript
osascript -e 'tell application "Obsidian" to open location "obsidian://open?vault=MyVault&file=Notes/MyNote"'Windows
powershell
# PowerShell
Start-Process "obsidian://open?vault=MyVault&file=Notes/MyNote"
# CMD
start "obsidian://open?vault=MyVault&file=Notes/MyNote"Linux
bash
# 使用 xdg-open
xdg-open "obsidian://open?vault=MyVault&file=Notes/MyNote"iOS 快捷指令
- 在快捷指令中使用「URL」操作
- 输入
obsidian://new?vault=MyVault&name=QuickNote&content=Hello - 添加「打开 URL」操作
Android Tasker
- 创建 Task
- 添加 Action → Misc → Open URL
- URL:
obsidian://new?vault=MyVault&name=QuickNote
集成示例
从浏览器快速保存
创建浏览器书签,点击即可保存当前页面到 Obsidian:
javascript
javascript:void(open('obsidian://new?vault=MyVault&name='+encodeURIComponent(document.title)+'&content='+encodeURIComponent('# '+document.title+'\n\n来源: '+location.href+'\n\n'+window.getSelection().toString())))从终端创建笔记
bash
# 添加到 .zshrc 或 .bashrc
obsidian-new() {
local vault="${OBSIDIAN_VAULT:-MyVault}"
local name="$1"
local content="$2"
open "obsidian://new?vault=$vault&name=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$name'))")&content=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$content'))")"
}
# 使用
obsidian-new "Quick Note" "Hello from terminal"Alfred Workflow (macOS)
- 创建 Script Filter
- 使用 Python/Shell 构造 Obsidian URI
- 使用 Open URL Action 打开
VS Code 集成
在 VS Code 的 tasks.json 中添加:
json
{
"version": "2.0.0",
"tasks": [
{
"label": "Open in Obsidian",
"type": "shell",
"command": "open",
"args": ["obsidian://open?vault=MyVault&file=${relativeFile}"],
"problemMatcher": []
}
]
}常见问题
URI 不生效?
- 确保 Obsidian 已安装并打开过
- 检查仓库名是否正确(区分大小写)
- 确保 URL 编码正确
- macOS:检查是否有其他应用拦截了
obsidian://scheme
中文文件名如何处理?
所有中文字符必须 URL 编码:
bash
# 正确
obsidian://open?vault=MyVault&file=%E7%AC%94%E8%AE%B0
# 错误
obsidian://open?vault=MyVault&file=笔记如何调试 URI?
- 在终端中执行 URI 命令
- 检查 Obsidian 控制台是否有错误
- 使用
--verbose参数(如支持)
相关资源
- URI 深度链接 — 完整教程
- Apple 生态集成 — iOS/Mac 集成
- 自动化集成 — 通用自动化方案
- 移动端快捷指令 — iOS 快捷指令