Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


之前我写过几篇文章,介绍如何使用 Notion 来管理个人事务,利用了 Notion 强大的数据库和各类视图功能,实现任务、项目等多维度管理,使得我们能够清晰的管理复杂项目。然而在实际工作和生活中,除了这类复杂项目,往往还有有一些提醒类的小任务,比如说每月 14 号还信用卡、每周三参加例会等,这些小任务不会产生其他结构化且相关联的内容,如果都统一使用 Notion 来管理不是不可以,但总感觉有点太「重」。如果你同时也在重度使用 Roam Research 的话,我再介绍一个我正在使用中的而且非常棒的解决方案,让你在每天打开 Roam 页面后,就能立刻安排好今日的所有日程。

先来用一副动图演示一下我是怎样开始 4 月 6 号这一天的日程的:

如果说以上过程都是全自动完成的,是不是很神奇?

Roam Research 中的基础提醒

Roam 作为一款新型笔记工具广受好评,我自己在使用过程中将它作为我的 Slip-Box 来使用(关于 Slip-Box 可以阅读 How to Take Smart Notes),是我强大的思考和笔记工具,能够帮助我形成知识网络,更好的进行思考和写作。

同时它也提供了一些简单的、勉强算得上「提醒」的功能,我们先来看看有哪些方式。

按日期提醒

比如文章开头提到,每月 14 日需要还信用卡,那么我们可以新增一条笔记:

还信用卡 [[April 14th, 2021]]

后边被 [[]] 包围的日期就是需要需要执行这个任务的日期,在 Roam 中必须指定一个明确的日期,也就是某年某月某日。当日期到达这一天时,会在当天的日期笔记中出现这一条提醒事项。

To-do 列表

Roam 中利用 {{[[TODO]]}} 可以新建一条待办任务,在前面会出现一个单选框,打勾即代表已经完成了这项任务,拿"周三参加例会"举例:

{{[[TODO]]}} 周三参加例会


To-do 标签

另外我们还可以利用 TODO 标签来实现所有待办任务的提醒,当然你需要进入到 TODO 页面或者建立一个 TODO 标签的查询才可以看到这些待办任务。写法很简单:

周三参加例会 #TODO

以上三种方式的最终效果如下图:

除了第一种指定日期的方式我们会在当天看到提醒外,其他两种方式都只能通过主动查询才能够看到提醒,这当然不是一种好的方式,甚至达不到「可用」的标准。那么,如何来改进呢?

这里就要提到 Roam42 这款开源的 Roam Research 的插件,源代码托管在 Github 上面。

Roam42

作者对这款插件的定义是:一款令人愉悦的且有趣又强大的高级用户工具集合。翻译有点儿拗口,但使用感觉的确如此。Roam42 的强大来自于「SmartBlocks」,类似于模版,但又不像 Roam 原生提供的静态模版,它可以实现动态模版,

安装

Roam42 安装比较简单,只需要在你的 Roam 中新建一个页面,再将一段代码复制进去启用即可。打开 Roam42 的安装介绍页面,找到下面这段:

点击上面的「Copy code」或者直接复制下方的代码均可,然后将它粘贴到你新建的页面中,比如我新建了一个 Roam42 页面。粘贴好后,点击你页面中的「Yes, I know what I'm doing」 按钮,当按钮上的文字变成「Stop this」,安装就完成了。稍等几秒,你会发现右上角多出两个 Roam42 的菜单按钮。

接下来,你就可以使用强大的「SmartBlocks」功能了。

SmartBlocks

前面提到过,SmartBlocks 类似于模版,也就是说,你可以预先定义好模版的格式和内容,在需要的时候直接将模版导入到页面中,不需要输入重复的内容。Roam 原生的 template 功能导入模版后,你需要手工输入除固定内容以外的其他内容。而 SmartBlocks 强大之处在于它可以利用自身代码自动完成这一过程。

我每天上午坐在电脑前第一件事就是打开 Roam,然后敲下键盘上的 jj,回车。如上面的动图所示,当天需要完成的任务和一些相关内容就会自动展示出来。我下面来一步步详细介绍怎样利用 SmartBlocks 来实现。

新建 SmartBlocks 模版页面

新增一个页面,名称随意,我这里就命名为「42RoamBlock」,这也是 SmartBlocks 标签的名称。然后输入以下模版内容,我会一项项解释。

注意第一行 Daily Routine 就是这个模版的名称,后边必须跟着标签 #42SmartBlock,这样 Roam42 才会将这部分内容定义为一个 SmartBlocks 模版。当输入 jj 后,选择此项即可自动导入此模版内容,就像上边动图演示的那样。

基本语法

先解释一下 Roam42 的基本语法:

<%函数名:参数1,参数2,...%>

在输入 Roam42 提供的「函数」时,你都可以用快捷键 jj 调出菜单,再输入 < 来进行选择输入,并且当你选择了某个函数后,页面的右下角会出现此函数的使用说明。

Daily Routine

代码:

#[[Daily Routine]] `<%DATE:today,dddd%>` `<%TIME%>`

  • DATE 加上参数 dddd 表示当日是周几的完整英文拼写。
  • TIME 表示当前时间。

今日提醒

在「今日提醒」部分,列出了我日常的、循环的一些提醒,比如每天、每周、每月等固定周期要做的事情。

代码:

- {{[[TODO]]}} 每天拍一张照片

- <%IFDAYOFWEEK: 3%>{{[[TODO]]}} 例会(每周三)

- <%IFDAYOFWEEK: 2%>{{[[TODO]]}} 洗衣服(每周二)

- <%IFDAYOFMONTH: 6%>{{[[TODO]]}} 交电费(每月 6 号)

  • 每天拍一张照片是固定每天要做的,所以直接将静态内容写在模版里。
  • IFDAYOFWEEK 表示每周几固定要完成的事情,比如参数 3 就代表每周三。
  • IFDAYOFMONTH 表示每月固定日期要完成的事情,参数 6 表示每月 6 号。

今日任务

这一部分显示了我之前安排在今天需要做的某件事情,比如动图中「购买麦片」这一事项,是我 4 月 1 日提前安排好的,Roam42 自动将它找了出来显示在 6 号这一天的「今日任务」中。

代码:

<%TODOTODAY:50%> —— <%PAGE%>

  • TODOTODAY 表示当天的 To-do,参数 50 表示最多显示 50 条。
  • PAGE 表示每条 To-do 所属的页面,让你能够看到这条任务的上下文是哪一天或者哪个页面。

追踪任务

追踪任务列出了所有已经逾期的任务和没有指定特定日期的 To-do,有一些事项我们在平时安排时只是想在某些时候去做,并不一定要指定特定的完成日期,就会在这一部分提醒你,这样就永远也不会忘记了。

代码:

<%TODOOVERDUEDNP:50%> —— <%PAGE%>

  • TODOOVERDUEDNP 表示所有页面中包括的未完成的 To-do 事项(已完成的标签是 DONE),参数 50 表示最多显示 50 条。

impress me 回顾

这里会每次随机显示两条我曾经记录在 Roam 中的让我印象深刻的句子,我给这些句子都加上过 impress me 标签。

代码:

<%REPEAT:2%>{{[[embed]]: <%RANDOMBLOCKMENTION:impress me%>}}

  • REPEAT 表示循环,次数可由参数指定,这里代表每次显示两条后边的内容。
  • embed 表示显示的内容直接嵌入这里,而不只是引用的链接,可以直接在这里编辑内容。
  • RANDOMBLOCKMENTION 表示随机选择参数指定的内容,这里也就是我打过 impress me 标签的内容。

到这里,我的「Daily Routine」模版就完成了,足够简单也足够强大。用来提醒琐事和时不时冒出的想法再好不过了,特别适合像我一样重度使用 Roam Research 的用户。让我们每天在 Roam Research 中思考和工作的同时,也能借助它来安排好每天的日程。

当然 Roam42 能做的远远不止这些,感兴趣的朋友可以到 这里 查看详细的介绍和其他函数功能,作者也还在持续更新和添加新的特性,希望能带来更多实用功能。

最后再次强烈推荐一下 How to Take Smart Notes 这本书,书中介绍的方法和理念能让你的阅读、学习、思考和写作能力上一个台阶,我自己也在慢慢的实践和积累中,能够深刻体会到这本书给我带来的变化,有机会我也会写一篇读书笔记分享出来,希望对大家有帮助。

How to Take Smart Notes 封面,图片引用自 briansunter.com


> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀