任务管理系统
Obsidian 可以成为强大的任务管理工具,本指南将介绍如何构建完整的任务管理系统。
GTD 工作流
GTD 简介
GTD(Getting Things Done)是大卫·艾伦提出的高效任务管理方法,包含五个核心步骤:
📥 收集 → 🔍 处理 → 📋 组织 → 📅 回顾 → 🎯 执行在 Obsidian 中实现
收集箱结构:
markdown
---
type: inbox
date: {{date}}
---
## 快速收集
- [ ] 任务 1
- [ ] 任务 2
- [ ] 想法/想法记录处理流程:
收到任务
↓
是否可执行?
├── 否 → 归档/删除/ someday
└── 是
↓
是否 2 分钟内可完成?
├── 是 → 立即执行
└── 否
↓
需要委派?
├── 是 → 等待清单
└── 否 → 项目/下一步行动任务笔记结构
基础任务模板
markdown
---
type: task
status: todo
priority: medium
created: {{date}}
due:
tags: [任务]
---
# {{title}}
## 任务描述
## 子任务
- [ ] 子任务 1
- [ ] 子任务 2
## 相关资料
-
## 备注项目模板
markdown
---
type: project
status: active
start: {{date}}
deadline:
progress: 0
---
# {{title}}
## 项目目标
1. 目标 1
2. 目标 2
## 任务列表
- [ ] 任务 1
- [ ] 任务 2
## 进度
[ ]||||||||||| 0%
## 相关笔记
-任务追踪
使用 Dataview 追踪
待办任务:
dataview
TABLE
priority AS "优先级",
due AS "截止日期",
file.folder AS "位置"
FROM #任务
WHERE status = "todo" AND !completed
SORT priority ASC, due ASC本周任务:
dataview
TABLE
choice(completed, "✅", "⬜") AS "状态",
due AS "截止"
FROM #任务
WHERE due >= date(today) AND due <= date(today) + dur(7 days)
SORT due ASC过期任务:
dataview
LIST
FROM #任务
WHERE due < date(today) AND status != "done"
SORT due ASC任务看板
使用看板视图管理任务:
markdown
## 待办
- [ ] 任务 1
- [ ] 任务 2
## 进行中
- [ ] 任务 3 (进行中)
## 已完成
- [x] 任务 4日记任务管理
每日任务模板
markdown
---
type: daily
date: {{date}}
---
## 今日任务
- [ ] 重要任务 1
- [ ] 常规任务 2
- [ ] 琐碎任务 3
## 今日重点
- 重点事项说明
## 时间块
| 时间 | 任务 |
|-----|------|
| 09:00-10:00 | |
| 10:00-12:00 | |
| 14:00-16:00 | |
## 复盘
### 完成情况
### 明日计划任务汇总
dataviewjs
// 汇总今日任务完成情况
const today = dv.date("today").toFormat("yyyy-MM-dd");
const daily = dv.page(`日记/${today}`);
if (daily) {
const tasks = daily.file.tasks;
const completed = tasks.where(t => t.completed).length;
const total = tasks.length;
dv.paragraph(`📊 今日完成: ${completed}/${total}`);
if (completed < total) {
dv.header(3, "未完成任务");
dv.taskList(tasks.where(t => !t.completed));
}
}周回顾
周回顾模板
markdown
---
type: weekly
week: {{week}}
---
## 本周目标
- [ ] 目标 1
- [ ] 目标 2
## 完成情况
| 目标 | 状态 | 备注 |
|-----|------|-----|
| 目标 1 | ✅ | |
| 目标 2 | ⬜ | |
## 数据统计
```dataview
TABLE length(file.tasks) AS "任务数"
FROM "日记"
WHERE file.ctime >= date({{week_start}}) AND file.ctime <= date({{week_end}})下周计划
- [ ] 计划 1
- [ ] 计划 2
## 推荐插件
### 任务相关插件
| 插件 | 功能 |
|-----|------|
| Tasks | 任务增强、循环任务、截止提醒 |
| Kanban | 看板视图 |
| Reminder | 任务提醒 |
| Progress Bar | 进度条 |
| Dataview | 数据查询统计 |
### Tasks 插件配置
安装 Tasks 插件后,可以使用增强的任务语法:
```markdown
- [ ] 普通任务
- [ ] #任务 带截止日期 📅 2024-01-20
- [ ] #任务 循环任务 🔁 每天
- [ ] #任务 带优先级 ⏫
- [ ] #任务 带开始日期 🛫 2024-01-15自动化工作流
自动创建日记
使用 Templater 自动创建:
javascript
<%*
// 自动创建今日日记
const today = tp.date.now("YYYY-MM-DD");
const filePath = `日记/${today}.md`;
if (!tp.file.exists(filePath)) {
tp.file.create_new("日记模板", filePath);
}
%>任务自动汇总
dataviewjs
// 自动汇总所有未完成任务
const tasks = dv.pages()
.file.tasks
.where(t => !t.completed);
dv.taskList(tasks);进度自动计算
dataviewjs
// 自动计算项目进度
const project = dv.current();
const tasks = project.file.tasks;
const completed = tasks.where(t => t.completed).length;
const total = tasks.length;
const progress = Math.round((completed / total) * 100);
dv.paragraph(`进度: ${progress}% (${completed}/${total})`);最佳实践
任务分类
建议使用标签或文件夹分类:
任务/
├── 工作/
│ ├── 项目A/
│ └── 项目B/
├── 生活/
│ ├── 健康/
│ └── 财务/
└── 学习/
├── 课程/
└── 阅读/优先级系统
使用四象限法则:
| 紧急 | 不紧急 | |
|---|---|---|
| 重要 | 立即执行 | 计划执行 |
| 不重要 | 委派他人 | 以后再说 |
定期回顾
建立回顾习惯:
- 每日回顾:傍晚 5 分钟整理
- 每周回顾:周末 30 分钟全面梳理
- 每月回顾:月度目标检查
提示
任务管理的关键在于「简单可执行」,不要过度复杂化系统!
INFO
建议从简单的任务列表开始,逐步添加复杂功能。