一句话总结
简介
- dataview DQL可以通过
- [ ]任务名称 [due:: yyyy-MM-dd]
的格式给待办添加属性
- 总体逻辑
- 待办分为有/无 due 属性,其中有 due 属性的待办按标记,分为每年/月提醒的循环待办
- (循环提醒待办仅作提醒用途,不区分有无完成,因为打勾后第二个循环周期开始初始状态就是完成,重置需要额外操作或用 task 插件区分完成状态)
- 检索的内容:未完成的非循环待办;未来七天内的循环待办
- 纯文本 + 有合法 due 属性 + 无合法 due 属性的未来七天内的待办
正常待办
- 无 due 属性或有合法 due 属性,仅显示未完成
task
where
where !completed and !(date(due) or contains(due, "a") or contains(due, "m"))
未来七天内+过期三天内的循环待办
- 非合法 due 属性,不区分完成
- 格式 - 每月循环:
- [ ]任务名 [due:: m标记日]
- 例:
- [ ]还信用卡 [due:: m10]
,表示每月 3 日~13 日,当前待办会出现在下面的 dataview 列表中
- 格式 - 每年循环:
- [ ]任务名 [due:: a标记月-日]
- 月日可不补齐 0,已添加自动补齐
- 例:
- [ ]续费 [due:: a9-8]
,表示每年 9 月 1 日~11 日,当前待办会出现在下面的 dataview 列表中)
- 标记日前的字母不能为
y
,否则无法生效(纯文本(无 due 属性)的 contains(due,"y")
值始终为 true,原因暂不清楚)
task
where !date(due)
where (padleft(split(substring(due, 1), "-")[0], 2, "0") + padleft(split(substring(due, 1), "-")[1], 2, "0") <= dateformat(date(today) + dur(7 day),"MMdd") and padleft(split(substring(due, 1), "-")[0], 2, "0") + padleft(split(substring(due, 1), "-")[1], 2, "0") >= dateformat(date(today) - dur(3 day),"MMdd")) and contains(due, "a") OR ((number(substring(due, 1)) <= (date(today) + dur(7 day)).day and number(substring(due, 1)) >= (date(today) - dur(3 day)).day) and contains(due, "m"))
1 个赞