Dataview 如何通过 UID 筛选某一天的笔记?

根本需求是这样:我需要筛选昨天做的、且未包含 sr-due 字段的笔记,让我今天对其进行第一次复习。

之前尝试了使用 file.cday 进行筛选,但是同步到别的设备以后这个筛选就失效了(可能是创建时间以每个设备为准),因此需要使用 UID 进行筛选。

本来觉得可以将 date(today) - dur(1 day) 转换成诸如 YYYYMMDD 这样的字符串,然后看 UID 是否包含这个字符串,但是 Dataview 好像没有这样的格式化转换?

笔记的 YAML 如下

image

1 个赞

社区插件有一个 Incremental Writing 插件可以将指定标签的笔记进行周期性的回顾(也可以手动安排时间),然后通过命令面板来快速访问,并且可以设定优先级。如果感觉侵入性不是很强的话,似乎可以满足你的需求。

其实我已经用了 spaced repetition …只是有时候卡太多了,优先复习前一天写的 :sweat_smile:

已找到写法:

LIST WHERE date(regexreplace(string(UID), "(\d{4})(\d{2})(\d{2})(\d.+)", "$1-$2-$3")) = date(yesterday)