article_image

本周介绍了《通过 Drafts 向 Obsidian 中发送笔记的快捷方法》。其实在 Windows 上,也可以利用 Quicker 来实现“快捷向 Obsidian 写入笔记”的操作。整个过程无需打开 Obsidian 就可以实现。

追加到日记

首先展示效果,你可以通过选中内容,触发动作,就可以自动追加内容到当天的日记文件中 D:\ObsidianLibrary\diary\2023-12-03-Daily.md ,如果文件不存在,会自动创建该文件。

动作下载:

🔗追加到日记 - Quicker 动作库

追加到日记 - 效果展示

在 Drafts 那篇文章中,Drafts 本身是一个文本编辑器,主要是针对已经编辑好的文本内容进行操作。而 Quicker 更常见的触发方式是选中内容和剪贴板内容。所以这个动作会“优先获取选中内容,如果没有再获取剪贴板内容”。


变量说明
变量说明

其次,我希望能提取出所有 Template 放在变量中进行修改,比如拆分这个目录:

D:\ObsidianLibrary\diary\2023-12-03-Daily.md

可以分为 Obsidian 根目录\日记目录\日期前缀-日记名 这样的结构,并且写入的内容是 当前时间 + 内容,所以我把这里用到的 5 个变量,都提取到变量列表中。你可以按照自己的喜好来自定义它的目录和写入的格式。

如果你什么都不设置,首次运行会检测 vaultPath 变量,让你手动选择一次根目录。后续就会保存这个变量,不再需要选择目录了。


写入文本文件
写入文本文件

整个动作最核心的步骤就是这一步:将新增的内容追加到当天的日记文件中。其他的步骤属于锦上添花。


动作完整结构
动作完整结构

添加笔记

添加笔记的效果是,你可以通过选中内容,触发动作,就会在 Obsidian 的特定目录下(默认 notes)创建笔记,使用第一行内容作为文件名。

动作下载:

🔗 添加笔记 - Quicker 动作库

添加笔记 - 效果展示

“添加笔记”的结构与“追加到日记”类似,只不过需要写入的文件名变成了“首行文本”。这里有一个注意点:在 Windows 中,文件名不允许包含以下字符: <, >, :, ", /, \, ?, *, |

所以我们需要额外添加 3 个步骤:首先需要将文本转换为列表,再获取第一行内容,最后用正则表达式删去这些不允许使用的字符。


替换部分操作
替换部分操作

这个正则表达式写法如下:

[<>:"/\\?*|]

我的处理方法是将这些符号替换成空格。由于 Quicker 的正则替换写法中是用 待替换内容|替换结果 实现的,所以无法在正则表达式中包含 | 符号了。我没有找到更好的办法解决这个问题,只能暂时去掉了对 | 的处理。

如果你想去掉更多字符,比如 # ,也可以在这个正则表达式里添加。你也可以选择使用缩短字符串的方式,避免文件名太长。

注意,由于这个动作设计目的不是用于网页剪藏的,没有特意去支持 HTML 的获取和写入。所以不支持图片的写入。如果你希望改造这个动作,考虑到 HTML 标签的复杂性,你可能需要去掉许多无关字符才能将首行作为文件名。

所以这两个动作合适的场景是,比如在微信、钉钉中有人提到某件事,我选中运行动作就可以快捷地记录到 Obsidian 而无需打开 Obsidian。


author_avatar

#UNTAG Developer