【QuickAdd】快速切换笔记
我希望随时能够快速切换到自己需要的笔记,Obsidian 提供了“快速切换”、“书签”的核心插件,如果不满意还可以安装“Quick Switcher++”插件,都很强,很好用。
但我经常需要快速打开的就那么三五个文件,是的,大概可以找置顶功能。可是如果我想打开当天的日记呢?有些插件也支持 Obsidian “日记”插件中的地址设置。可我还有个周记的……
所以就弄了个 QuickAdd 脚本,来实现这个功能:
- 将本文所附代码保存到笔记仓库中的任意位置,文件后缀是
.js
- 在 QuickAdd 中建立一个叫做“快速切换”的“Macro”(宏),注意不是在“manage Macros”(管理宏)中
- 点亮这条动作的小闪电,然后进入动作设置(闪电后面的齿轮图标),然后在动作设置界面点击加号图标创建对应的宏
- 这时会选中一个动作同名的宏,点击后面的齿轮图标(吐槽,QuickAdd 居然用了两种齿轮图标)进入宏设置
- “User Scripts” 中选择刚才保存的 JS 文件,点击 Add
- 现在脚本上去了,点击脚本后面的齿轮图标进行设置
- 一行一条:
笔记名称|在 Obsidian 左侧目录树中右键复制的笔记地址
,如:起始页|obsidian://open?file=Start.md
,竖线前后可以有空格 - 地址支持 QuickAdd 的变量(详见:https://quickadd.obsidian.guide/docs/FormatSyntax),不过在地址中最好只用日期时间相关的变量
- 保存,第一次使用前要重启 Obsidian,否则命令必然报错
- 然后你就可以用任何你喜欢的方式快速调用这条动作了,我是在快捷键中给它绑定了一个快捷键。
- 进阶用法:和 Advanced URI 插件配合,就能快速调用命令啥的了,相当于一个常用动作收藏夹。
/**
* 笔记快速切换
* @author: 稻米鼠
* @description: 借助 QuickAdd 插件实现笔记快速切换
* @created: 2024-05-19
* @updated: 2024-05-19
* @version: 0.0.1
*/
module.exports = {
entry: async (QuickAdd, settings) => {
// 将设置中的目标链接拆分成名称和链接
const pageNames = []
const pageURIs = []
settings["目标链接"].split(/\r?\n/g).forEach(line => {
const item = line.split(/\|/g)
pageNames.push(item[0].trim())
pageURIs.push(item[1].trim().replace(/ /g, '%20'))
})
// 弹出页面选择框
const url = await QuickAdd.quickAddApi.suggester(
pageNames,
pageURIs
);
// 格式化目标链接并打开
const formatUrl = await QuickAdd.quickAddApi.format(url)
open(formatUrl)
},
settings: {
name: "笔记快速切换",
author: "稻米鼠",
options: {
"目标链接": {
type: "format",
defaultValue: "",
placeholder: "起始页 | obsidian://open?file=Start.md",
description: "一行一条,格式为:名称 | 地址。对于笔记,可以在左侧目录树中右键复制 Obsidian 链接。也可以借助 AdvancedURI 插件执行命令",
}
}
}
}