本周介绍了《通过 Drafts 向 Obsidian 中发送笔记的快捷方法》。其实在 Windows 上,也可以利用 Quicker 来实现“快捷向 Obsidian 写入笔记”的操作。整个过程无需打开 Obsidian 就可以实现。
追加到日记
首先展示效果,你可以通过选中内容,触发动作,就可以自动追加内容到当天的日记文件中 D:\ObsidianLibrary\diary\2023-12-03-Daily.md
,如果文件不存在,会自动创建该文件。
动作下载:
在 Drafts 那篇文章中,Drafts 本身是一个文本编辑器,主要是针对已经编辑好的文本内容进行操作。而 Quicker 更常见的触发方式是选中内容和剪贴板内容。所以这个动作会“优先获取选中内容,如果没有再获取剪贴板内容”。
其次,我希望能提取出所有 Template 放在变量中进行修改,比如拆分这个目录:
D:\ObsidianLibrary\diary\2023-12-03-Daily.md
可以分为 Obsidian 根目录\日记目录\日期前缀-日记名
这样的结构,并且写入的内容是 当前时间 + 内容
,所以我把这里用到的 5 个变量,都提取到变量列表中。你可以按照自己的喜好来自定义它的目录和写入的格式。
如果你什么都不设置,首次运行会检测 vaultPath
变量,让你手动选择一次根目录。后续就会保存这个变量,不再需要选择目录了。
整个动作最核心的步骤就是这一步:将新增的内容追加到当天的日记文件中。其他的步骤属于锦上添花。
添加笔记
添加笔记的效果是,你可以通过选中内容,触发动作,就会在 Obsidian 的特定目录下(默认 notes)创建笔记,使用第一行内容作为文件名。
动作下载:
“添加笔记”的结构与“追加到日记”类似,只不过需要写入的文件名变成了“首行文本”。这里有一个注意点:在 Windows 中,文件名不允许包含以下字符: <
, >
, :
, "
, /
, \
, ?
, *
, |
。
所以我们需要额外添加 3 个步骤:首先需要将文本转换为列表,再获取第一行内容,最后用正则表达式删去这些不允许使用的字符。
这个正则表达式写法如下:
[<>:"/\\?*|]
我的处理方法是将这些符号替换成空格。由于 Quicker 的正则替换写法中是用 待替换内容|替换结果
实现的,所以无法在正则表达式中包含 |
符号了。我没有找到更好的办法解决这个问题,只能暂时去掉了对 |
的处理。
如果你想去掉更多字符,比如 #
,也可以在这个正则表达式里添加。你也可以选择使用缩短字符串的方式,避免文件名太长。
注意,由于这个动作设计目的不是用于网页剪藏的,没有特意去支持 HTML 的获取和写入。所以不支持图片的写入。如果你希望改造这个动作,考虑到 HTML 标签的复杂性,你可能需要去掉许多无关字符才能将首行作为文件名。
所以这两个动作合适的场景是,比如在微信、钉钉中有人提到某件事,我选中运行动作就可以快捷地记录到 Obsidian 而无需打开 Obsidian。