本文基于 Drafts 4LaunchBarEvernote

有一种生活方式是这样的:随时随地记录自己当前正在做的事。《奇特的一生》中柳比歇夫就是这么做的。下面摘抄一段:

乌里扬诺夫斯克。一九六四年四月七日。
分类昆虫学(画两张无名袋蛾的图)——三小时十五分。
基本工作合计——六小时二十分。鉴定袋蛾——二十分(1.0)
附加工作:给斯拉瓦写信——二小时四十五分(0.5)。
社会工作:植物保护小组开会——二小时二十五分。
休息:给伊戈尔写信——十分;
《乌里扬诺夫斯克真理报》——十分;
列夫·托尔斯泰的《塞瓦斯托波尔纪事》——一小时二十五分。
基本工作合计——六小时二十分。

这种方式固然不适合所有人,但是从中借鉴一些也没有什么坏处。比如突发的灵感需要记录,好的句子想要摘抄,这些在信息管理的过程中属于信息的收集,我觉得也可以纳入这种方式中。于是我开始着手打造我自己的 Daily Record 系统。我想做到一下几点:

  • iOS、macOS 双平台同步
  • 尽可能简化的操作
  • 按日期分类,井井有条

iOS 端

首先是 iOS 端,手机作为日常生活中最不可或缺的一部分,用它来记录自己的生活真是在合适不过了。那么什么工具能够最简单地记录文字呢?那当然是大名鼎鼎的 Drafts 了,之前少数派就有好几篇介绍 Drafts 的文章,有兴趣可以去看看。(听说最近 Drafts 5 要出了,所以没入手的还是不建议最近入手)

那么记录完了该怎么做呢?我们的目标是将每一天的记录合并到一条记录中,以日期为标题,所以我这里选择了 API 相当开放的,同步性也很好的 Evernote 了。
在 Drafts 中,Evernote 的 API 已经直接集成在其中,只要授权一下,就可以直接使用了。具体使用如下:

  1. 新建一个 Action

  2. 选择 STEPS 新建一个 step

  3. 选择 Evernote

  4. 填写 Title,Notebook

  5. 选择 append

这里的 Title 使用了 date formatter 的形式,Notebook 是事先在 Evernote 中建好的一个笔记本。截图如下:

null

然后我们来看看实际效果:

null

macOS 端

macOS 端上我选择用 LaunchBar 来做记录,原因无他,启动快,和其他应用联动性好,而且官方提供了一个 Evernote 的动作和我们想要达成的效果差不多。
首先我们来看一下官方的动作:传进去一段文本,然后新建一条笔记。

null

null

而我们想要的是传进去一段文本,合并到以相应日期为标题的笔记中,这个需要写一点点 AppleScript 代码。做成之后结果如下:
null

null

null

那么我们来看看是怎么实现的。首先我们打开 Action Editor,选中 All Actions 然后点击边栏右下的小锁按钮,找到被锁定的官方动作:Evernote - New Note With Text,右键复制,然后修改副本的名称,标识等,最后修改代码如下:

on handlestring(content)
    set today to current date
    set m to ((month of today) * 1) as string
    set d to (day of today) as string
    if m as number is less than 10 then
        set m to "0" & m
    end if
    if d as number is less than 10 then
        set d to "0" & d
    end if
    set todaystring to (year of today & "-" & m & "-" & d) as string
    tell application "Evernote"
        set notebook1 to notebook named "Daily"
        set note1 to (find notes todaystring)
        if note1 is not  then
            tell first item of note1 to append text "\n" & content
        else
            create note title todaystring with text "" notebook notebook1
        end if
    end tell
end handlestring

这里多说一句,因为 Drafts 的格式化日期的月份显示是02,而 AppleScript 中的日期月份是2,所以我在代码中人为地加了0,使得 Evernote 中能够标题相同。

如此一来,就大功告成了。整个系统以 Evernote 为中心,但是并不直接操纵它,而是通过外部接口访问,体现了良好的封装性(大雾)。可能有人会问为什么不直接用 Evernote 记录,因为它打开太慢了,而且打开后还要找具体的笔记太麻烦;为什么不用自带的备忘录,因为它开放的接口不够,不能自定义一些标题或者追加一些文本;为什么不用其他的工具诸如 Workflow 、Alfred,因为这篇文章说到底提供的是一种方法论,你可以用其他工具实现相同的功能,我选择这些工具不过是我的习惯罢了。