0064 快速笔记-多方案

快速添加笔记的需求多数人是有的,不过场景不同,我主要是灵感速记,以及每天日记内容的记录。因为我用的是子弹笔记法,所以这些条目都会以一个任务的形式进行添加,然后通过不同的任务状态来区分具体的条目,这点在前面也反复说过了。

这篇就以这个方向为例,讲几种实现方法,希望对大家有所启发。

QuickAdd

这个以前就说过(0013),不赘述了。

Templater

代码如下(建立一个 md 格式的模板文件放进去):

1
2
3
4
5
6
7
8
9
10
11
12
<%*
const types = {
'Note': 'n',
'Idea': 'i',
'Event': '!',
}
const note = await tp.system.prompt('请输入笔记内容...', '')
const type = await tp.system.suggester(Object.keys(types), Object.values(types), false, "请选择笔记类型")
if(note){
open(`obsidian://advanced-uri?daily=true&mode=append&data=${encodeURIComponent(`- [${type || 'n'}] ${note}`)}`)
}
%>

说明:

  • 【只需了解】这里使用了 Advanced URI 插件,实在是太好用了!
  • 代码最开始的列表是任务的状态标记,按需修改添加即可
  • 【只需了解】通过打开 Advanced URI 的地址来实现笔记追加,因为是当前库中,所以可以省略保险库参数,于是这代码就变得通用了
  • 【只需了解】因为是加入到每日笔记(依赖核心插件:日记)中,所以不需要写详细路径,只需要 daily=true 参数即可
  • 从后面找 'n' 是说默认条目状态是 n,这个根据需求修改就行。

使用时在任意笔记中插入此模板就行,不会影响当前笔记,只会把输入内容快速添加到当天日记中。如果你关闭 Advanced URI 设置中的第一项:Open file on write,那就真的是无感添加了(不建议)。

浏览器

聪明的同学一定发现了,这,就是打开一个网址啊!这个网址还几乎没有变量,那岂不是跟搜索是一个性质的。

话都说到这儿了,那给浏览器里添加一个搜索引擎不就行了么,比如这样:

obsidian://advanced-uri?vault=Obsidian&daily=true&mode=append&data=-%20%5Bn%5D%20%s

  • 如果你有多个保险库,推荐把保险库也指定上。
  • 最后的 %s 代表搜索的内容
  • -%20%5Bn%5D%20 部分是 - [n] 编码后的结果,我就是加个前缀,你可以按需修改。内容要用 url 编码工具转换一下,网络上大把在线工具,不举例了。
  • 你可以添加多条搜索引擎,分别对应不同类型的条目。

缺点,会弹出打开应用提示,得再点击一下。

Utools

我在用的快速启动工具,如果你用其他的,参照上面思路解决。

Utools 有一个快速搜索插件,叫“网页快开”,是官方插件,我寻思这就简单啦!结果……要求地址以 http 开头。

我用了一个叫做“快捷命令”的插件,它提供了一些 API,使得开发非常容易。也没啥好说的,就在里面建立一个脚本,简单的做一下填空。语言选择 quickcommand(默认),然后放入如下代码:

1
visit("obsidian://advanced-uri?vault=Obsidian&daily=true&mode=append&data=-%20%5Bn%5D%20{{subinput:请输入}}")

地址的构建前面都说过了,也可以自己查阅 Advanced URI 文档。双重大括号是一个系统变量,表示在 Utools 中输入的子字符串,就是关键词后面输入的内容。

提示,关键词可以设置一个稍微复杂一点的,然后在 Utool 中映射一下快捷键。常用功能嘛,给个快捷键不过分的。


其他自由发挥吧,应该在许多快速启动工具中都可以用类似的方法实现。

当然,复杂的内容就……就复杂点,Advanced URI 的文档很值得深入研究,确实可以实现比较复杂的功能,只要内容不是过长。而且他家的文档是有中文的,很友好。