在日常工作中,我们需要在每周开始的时候列一下当周的计划,同时需要回顾一下之前遗留的事项。最重要的,是需要有一个地方把这些遗留事项和当周计划记录下来。对于这类 TODO 场景,市场上有非常多的工具可以选择。不过,如果能够把该场景也在 obsidian 里面做了,那么离我 all in obsidian 的目标就又近了一步。
需求我自己的每周计划希望能实现以下功能:
在日历视图中直接创建,自动计算并填入计划对应的开始日期,不用我手动输入可以自定义模板,保证所有周计划的格式是统一的通过 checklist 管理和标记事项的完成状态可以自动归档之前遗留的事项,并在最新的周计划中显示和直接交互实践日历视图

要搞定需求 1,我们先需要一个日历视图。
我使用的是 Calendar 这个插件,安装之后,我们就可以在侧边栏上看见一个日历视图。

在设置中打开 Calendar 的配置项,可以看见,这个插件直接就支持了周计划的功能。 下面是我的配置:
打开 【show week number】,这样能一眼看清我们要创建的是第几周的周计划定义周计划的文件名格式、模板文件和周计划文件生成的文件夹看看效果,最左边的一栏就是 week number 的展示,单击一下就会弹出提示,确认是不是要创建周计划:
周计划模板
接下来,我们需要来配置周计划的模板。这个其实要简单很多,根据我们在Calendar里面配置的模板地址创建一个模板文件。
我的第一版模板非常简单:
一个日期一个本周事项的 todo list ( markdown 中通过 - [ ] xxxx 表示即可)遗留事项,可以让我自己进行遗留事项的汇总。可以看见,当我创建一个新的周计划的时候,日期就会按照模板的格式自动填上,我们可以直接进行编辑。
至此,需求 2 和 3 也已经满足。
自动化归档遗留事项
要想完成需求 4,本质上需要当前的文档能够知道【周计划】文件夹中有哪些 todo list 是没有被勾选为完成的。这对于文本系统来说可以说是一件很难的事情,但是在 obsidian 中却可以轻松做到,答案就是 Dataview 插件。
Dataview 插件允许我们对所有的文件和任务 (Task) 进行过滤,这样一来,我们的所有笔记就像是一个数据库,可以通过类似于 sql 的语句进行筛选和排序展示,这也为我们归档遗留事项提供了可能性。
安装完插件之后,我们开始来对模板进行改造:
主要改造了两个地方,这里只说明改动点,具体的用法请参考文档(可在文末获取):
增加了文档属性,dataview 通过支持在文件中自定义文档属性,来帮助用户自定义过滤条件。这里我就把计划的开始日期作为一个文档属性,用于后面的过滤。添加了遗留事项的筛选逻辑,里面的语句翻译成白话就是【过滤出文件夹"周计划"中文档属性plan_start_day(计划开始时间)早于当前时间 7 天且未完成的任务】看看效果:
可以看到,当我创建一个新的周计划的时候,计划开始时间距离当前时间 7 天以上且未完成的所有任务都会被列在遗留事项中。更方便的是,我在当前计划中勾选完成的遗留事项,也会自动在其对应的计划中被勾选 (本质上遗留事项中展示的是对事项的引用),这样我永远只需要关注最新的计划即可。
总结至此,通过Calendar和Dataview两个插件的组合使用,能够满足我自己需求的每周计划就完成了。
现在,我每周需要做周计划的时候就打开日历侧边栏,点击创建一个周计划文件,然后就可以开始添加计划了。每完成一个事项,我也直接在对应的周计划中勾选。因为遗留事项自动收集,所以我也可以实时关注和更新遗留事项的状态。
关注我,了解更多有用的工具。
更多文档资料,可回复【每周计划】获取。