Obsidian 一键收藏技巧,从任何地方复制到笔记中,附原创 AHK 脚本

从网页收藏到任何地方的收藏

如果喜欢阅读和浏览网页,我们每天都会遇到大量有价值的信息。一篇深入分析的文章、一条启发思考的帖子,或者是某个论坛里的精彩讨论。

我相信各位已经用过了一些成熟的工具可以收集保存这些信息。 比方说:

  • 早期 Evernote 中著名的 Web Clipper 插件
  • 现在的 Readwise 划选收藏插件 (下图)
  • Notion 等在线笔记工具的网页收藏插件
  • ……

而 Obsidian 作为一款本地优先的知识管理工具,提供了另一种可能:它不仅可以作为个人知识库,还能让我们用自己的方式高效保存和整理信息。通过网页插件 Obsidian 也可以变成一个强大的信息收集中心,而且摆脱对某些云端的依赖。

Obsidian 有官方的网页收藏插件,而且开源, 我以前有过介绍。 不过这不是今天的重点。 今天的重点是:运用 Obsidian 的接口, 提供任何地方的笔记收藏,不局限于浏览器网页

从Obsidian的接口开始

那么,如何高效地将任何地方的信息收藏到 Obsidian 当中?有哪些方式可以让这个过程更加流畅(最好是一键完成)?我们首先要探索一下 Obsidian的接口

Obsidian 基于一个高度开放的笔记体系,笔记以文本文件形式存放, 而且接口则采用的是 URL Scheme, 这是一种类网页 URL 的调用方式, 和 CLI(命令行方式)类似。 而这些方式看似没有图形界面那么直观,却是 一种古老的,而且高度兼容的通信的方式。 即使时代发生怎样变化,图形界面一改再改,但是这些基于文本的基础接口却可以稳定存在,并被几乎任何程序调用。

Obsidian 一直强调类似这样的一个观点:即使 2060年的信息也应该能被 1960 年代的方式访问,这才是信息长存的秘诀。(想想看,文本文件就是这个理念下活生生的例子)

通过 Obsidian 开源的收藏插件代码,我们没可以看到一个清晰的 笔记收藏接口架构。
开源地址:https://github.com/obsidianmd/obsidian-clipper

先说结论

尽量利用剪贴板接口,通过剪贴板将笔记导入到 Obsidian。 这样做的好处是收藏信息量可以很大,而且结构容易编排。

接口基本格式

obsidian://new?file=PATH/FILENAME&clipboard

一些参数的含义:

  • file: 指定笔记文件名,Obsidian 以文件名作为笔记唯一标识,注意不要重复和特殊含义字符转码。
  • clipboard: 从剪贴板粘贴内容到笔记中,推荐使用。
  • vault: 指定资料库,可以不填,默认当前的资料库,我一般就一个当前资料库。
  • append: 将内容追加到给定笔记的最后。
  • prepend: 将内容追加到给定笔记的开头。

一些接口应用的例子

  1. 从剪贴板,创建新的笔记
    • obsidian://new?file=folder/note-name&clipboard
  2. 从剪贴板,创建一个每日笔记
    • obsidian://daily?clipboard
  3. 从剪贴板,追加笔记内容
    • obsidian://new?file=folder/note-name&clipboard&append

熟悉我的小伙伴们,也许知道很多年前我出过一个 AHK 脚本用于快捷 处理一些常规的文本快捷方式,直到今天我自己还在使用。 现在,有了 Obsidian 的接口,我们就可以扩充这个脚本了。

我增加了一个快捷方式,可以通过快捷键将选定的内容(无论是网页,还是其它地方),快速追加存放到 Obsidian 指定笔记中, 比方说:我可以默认资料库下设置一个名为 Inbox 的 Obsidian 笔记, 专门用来收集信息,事后再来回顾整理。

我的 AHK 脚本

我写了一段简要的 AHK 脚本,增加一个快捷方式。虽然 AHK 是一个Windows 下的 快捷键脚本工具(全称:AutoHotkey,见下图), 大家可以融会贯通,在macOS里实现相同的效果。

代码如下,大家可以直接复制到已有的脚本里,拿走不谢。(如要转载,标注一下出处,不要商用,谢谢)

!+c::HotkeyFunctionObsidianAppendInbox()

HotkeyFunctionObsidianAppendInbox()
{
  Send("^c")
  Sleep(300)
  A_Clipboard := "## " . FormatTime(A_Now, "yyyy-MM-dd HH:mm") . "nn" . A_Clipboard . "nn----xlr----`n"
  Run "obsidian://new?file=INBOX&clipboard&append"
}

运行后,只要按下 ALT-SHIFT-C 就会 自动复制选中内容,并且保存到 Obsidian INBOX的笔记下了。效果如下:

一些进阶的接口例子

既然说到剪贴板复制,火箭君也略有研究,实际上,Obsidian 既然支持剪贴板接口,那么可玩性就会大增很多。 这里我们需要理解, macOS 和 Windows 下目前都有 直接操作剪贴板的命令。

比方说:

  • Windows 下 的基础款命令是 clip
  • 如果是 PowerShell 则有更多剪贴板命令
  • macOS,包括 Linux下,则 是 pbcopy 命令。

有了这些命令, 通过「管道」就可以将任意内容注入剪贴板,然后导入Obsidian,形成一个自动化的「工具链」。如果有兴趣还可以使用第三方工具,形成更复杂的应用。 考虑到,写到这里,用法就比较硬核了,不像是普通读者能听懂的「人话」了,所以这里只给有需要和有动手意愿的小伙伴开个头,权当抛砖引玉,希望能带来启发就好。

另外,Obsidian 本身 还支持 「元信息」编辑,「元信息」可以作为笔记的一部分, 换言之,如果实现某种自动化时,给出指定的「元信息」结构,还能产生出更多的分类用途。 比方说:按下这个键时,会生成某个带特定标签的网页摘要放在 A笔记中……

Obsidian 的 「元信息」 支持,我记得在 1.X 的某个版本后才有,简单来说,只要下载最新的版本都是支持的。其格式如下,附在笔记正文开头前即可,具体属性就不再细细解释了,毕竟已经写得很清楚了(我就喜欢这种能够「自我说明」的文档)。

--- 
title: "Sample Note" 
date: 2025-02-09 
tags: [example, metadata, obsidian] 
summary: "This is a sample note demonstrating metadata usage in Obsidian." 
type: "reference" 
---

最后

虽然我也热爱使用 Craft 和 LogSeq, 但是最终会发现,各种工具,各有千秋,Obsidian 有其朴实无华的内涵,在看似简单的接口背后,给我们提供了广泛的发挥空间。我一直保留 Obsidian 作为 笔记归档的工具。 我也相信 Obsidian CEO(也是那个OB收藏插件的作者) 秉承的文件超越 App 的观点。

如果,各位读到过我之前文章所说的 「工具链」观点,Obsidian 就是那种可以完美融入到某个「工具链」中的产品,它不会绑架用户,也不会整天提醒用户充钱或向用户邀功,而只是默默地做好自己该做的事情,我个人对这类产品表示非常的尊重(况且还是免费的,真是没天理)。

One Reply to “”

  1. 最近因为 obsidian 可以实现笔记属性计算,在尝试全面转向 obsidian,用 ahk 剪辑内容、快速记录、快速创建带属性的任务,用 dataviewjs + metadata menu 来管理,胚子还行,还要大量的打磨

Z 发表评论 取消回复