part-5 · 插件生态与扩展

Tasks 任务管理专题:让勾选框长出大脑

从截止日期到重复任务,从查询过滤到跨笔记汇总,构建你的全仓库任务中枢。

Markdown 自带的 - [ ] 勾选框简单可爱,却缺少日期、优先级、重复这些”任务管理”的灵魂要素。Tasks 插件(由 obsidian-tasks-group 维护)把这些能力以”emoji 字段”的形式嫁接到普通任务行上,再配上一套查询语言,让你能在任意笔记里汇总全仓库的任务。本篇带你从基础语法走到工作流落地。

基本任务语法与增强字段

Tasks 不改动 Markdown 的任务语法,而是在任务行末尾追加”emoji 标记”来承载额外信息。最朴素的任务依然是:

- [ ] 倒垃圾

勾选时把 [ ] 改成 [x] 即可。Tasks 的增强,全靠下面这些 emoji 字段。

日期家族

Tasks 用不同 emoji 区分”什么时候做”和”什么时候发生”两类日期,格式统一为 YYYY-MM-DD

字段Emoji含义示例
截止日期 Due📅必须完成的最后期限📅 2026-07-15
计划日期 Scheduled打算哪天做⏳ 2026-07-10
开始日期 Start🛫最早可开始🛫 2026-07-05
创建日期 Created任务何时创建➕ 2026-07-02
完成日期 Done何时完成(自动)✅ 2026-07-09
取消日期 Cancelled何时取消(自动)❌ 2026-07-09

一条完整任务可以同时带多个日期:

- [ ] 写季度报告 🛫 2026-07-05 ⏳ 2026-07-08 📅 2026-07-15

[!tip] 别被日期吓到 你不必每条任务都填满六个日期。多数人只用截止日期 📅 就够了。开启设置里的”自动添加创建日期/完成日期”后,➕ 和 ✅ 会自动补上,无需手填。任务管理的要义是”够用就好”,别过度设计。

优先级

用 emoji 标记优先级,从高到低:

  • Highest 最高
  • 🔼 High 高
  • 🔽 Low 低
- [ ] 救火 ⏫
- [ ] 常规推进 🔼
- [ ] 有空再做 🔽

重复任务

用 🔁 加一条以 every 开头的规则,任务就变成重复任务。完成它时,Tasks 会自动生成下一个周期的任务,并在原任务上打完成标记。

- [ ] 倒垃圾 🔁 every Sunday 📅 2026-07-05

完成上述任务后,文件里会变成:

- [ ] 倒垃圾 🔁 every Sunday 📅 2026-07-12
- [x] 倒垃圾 🔁 every Sunday 📅 2026-07-05 ✅ 2026-07-05

规则很灵活:

  • every weekday:每个工作日
  • every week:每周
  • every month on the last:每月最后一天(推荐写法,稳定可靠)
  • every 2 weeks:每两周
  • every week when done:以完成日为基准计算下次(而非以原日期为基准)

[!note] 月末的坑 用 every month 时,若下个月没有对应的日子(比如 31 号),Tasks 会把日期提前到该月最后一天,而非跳过。若你写 every month on the 31st,则会跳过不足 31 天的月份。日常用 every month on the last 最安全。

查询语法:聚合全仓库任务

Tasks 的精髓在于查询。在任意笔记里写一个 ```text 代码块,就能按条件把全仓库的任务拉到一处。最简单的查询列出所有任务:

```text
```

按状态过滤

```text
not done
```

not done 只看未完成,done 只看已完成。

按日期过滤

## 今天到期
```text
not done
due today
```

## 已逾期
```text
not done
due before today
```

## 未来一周
```text
not done
due after yesterday
due before in 7 days
```

日期支持绝对日期(2026-07-15,也接受 15th July 2026 这类自然语言)和相对日期(todaytomorrowyesterdaynext mondayin two weeks14 days ago)。

按标签和路径过滤

```text
not done
tags include #工作
path includes 项目/凤凰
```

description includes 关键词 还能按任务文本过滤。多个条件默认是”与”关系,用 AND/OR/NOT 组合:

```text
not done
(path includes 项目) AND NOT (tags include #someday)
```

按优先级过滤

```text
not done
priority is highest
```

可选 highesthighmediumlow,以及 priority is above mediumpriority is below high 等比较。

排序、分组、限量

```text
not done
due before in 7 days
sort by priority desc
sort by due asc
group by due
limit 20
```

可按 duescheduledstartprioritypathstatuscreated 等排序与分组,limit 限制结果数量。查询指令大小写不敏感(Due todaydue today 等效),唯独 AND/OR/NOT 必须大写。

[!tip] 用 callout 包裹查询 把 tasks 代码块放进 > [!check] 这类 callout 里,能给任务清单套上一层好看的边框和标题,做仪表盘时特别整齐。

跨笔记任务汇总

这是 Tasks 最让人上头的用法。在工作笔记里放一个”今日聚焦”查询,在周报里放一个”本周到期”查询,在项目页里放一个”该项目未完成任务”查询——同一批任务,在不同视图里各司其职,而数据源只有一份。

## 项目凤凰 · 待办
```text
not done
path includes 项目/凤凰
sort by due
```

与日历、看板工作流组合

Tasks + Calendar:Calendar 插件管”哪天写日记”,Tasks 查询管”那天的任务”。日记模板里放一段 due today 查询,每天打开日记,当天该做的事自动列好。

Tasks + 看板(Kanban):用看板笔记按”待办/进行中/完成”分列,每列配一段 Tasks 查询,比如进行中列用 tags include #进行中 AND not done。拖拽改状态即改标签,视图随之刷新。

Tasks + Dataview:需要更复杂的统计(比如”本月完成了多少高优任务”)时,可用 Dataview 的 TASK 查询配合 WHERE 条件,或用 filter by function 这类 Tasks 高阶能力做自定义过滤。


Tasks 的妙处在于:它没有发明新文件类型,而是让每一条普通的 Markdown 任务都”可被检索、可被聚合”。你的任务既留在它该在的笔记里(项目页、日记、会议纪要),又能被任意视图召集成军。从今天起,试着在日记里写第一条带 📅 的任务,再放一个 due today 查询——你会发现,管理待办这件事,终于和记笔记合二为一了。