【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 插件执行命令",
      }
    }
  }
}
©2022~2024 稻米鼠. Last build at 2024-10-12 00:00:34