Obsidian学习追踪系统
Obsidian 学习追踪系统 - 结合 Dataview + Ratings + Progress Bar + Spaced Repetition
[!info] related notes
Obsidian 学习追踪系统完全指南
目标:建立 Obsidian 学习追踪系统,评估掌握度、安排复习、追踪进度
涉及插件:Dataview + Ratings + Progress Bar + Spaced Repetition + Habit Tracker
难度级别:⭐⭐⭐⭐
推荐度:⭐⭐⭐⭐⭐
适用人群:学生、教师、自学者、专业人士
📋 快速导航
系统架构
整体框架
学习材料输入
↓
笔记 (Note)
├─ 内容记录 (Markdown)
├─ 元数据 (YAML Frontmatter)
│ ├─ 主题标签 (tags)
│ ├─ 创建日期 (created)
│ └─ 掌握度 (rating: 1-5)
└─ 关系链接 (Internal Links)
↓
Dataview 查询
├─ 按掌握度分类 (1星→5星)
├─ 按主题分类
├─ 按学习进度筛选
└─ 统计汇总
↓
仪表板 (Dashboard)
├─ 掌握度概览
├─ 待复习列表
├─ 学习进度
├─ 习惯追踪
└─ 时间线
↓
评分与复习
├─ Ratings: 快速评分 (1-5星)
├─ Spaced Repetition: 复习计划
├─ Progress Bar: 进度可视化
└─ Habit Tracker: 学习习惯
核心组件
1️⃣ Ratings(掌握度评分)
功能:为笔记快速打星,表示掌握程度
评分标准:
| 星数 | 掌握度 | 表现 | 下一步 |
|---|---|---|---|
| ⭐ | 0-20% | 完全陌生,刚接触 | 重点学习 |
| ⭐⭐ | 20-40% | 有基本概念,但不熟练 | 做练习题 |
| ⭐⭐⭐ | 40-60% | 基本掌握,有部分遗忘 | 复习重点 |
| ⭐⭐⭐⭐ | 60-80% | 比较熟练,细节不清 | 深入学习 |
| ⭐⭐⭐⭐⭐ | 80-100% | 完全掌握,能教他人 | 定期复习 |
使用方法:
---
title: "JavaScript 闭包"
rating: 3 # 或在编辑时点击插件 UI 快速评分
---
# JavaScript 闭包
闭包是指有权访问另一个函数作用域中变量的函数...
Dataview 查询示例:
```dataview
table title, rating, created
from ""
where rating <= 3
sort rating asc
### 2️⃣ Dataview(数据查询与统计)
**功能**:根据笔记元数据动态生成表格、列表、统计
**常用查询示例**:
**按掌握度分类**
table rating, created, file.ctime
from ""
where tag = "javascript"
group by rating
sort rating desc
**统计学习进度**
SELECT
rating,
count() as "笔数"
FROM ""
WHERE tag = "learning"
GROUP BY rating
SORT rating desc
**需要复习的笔记**
list from ""
where rating <= 3 and created < date("now") - dur(7 days)
sort created asc
limit 10
### 3️⃣ Progress Bar(进度可视化)
**功能**:显示学习进度的进度条
**使用方法**:
```markdown
## 学习进度
`progress 12/20` # 显示 12/20 的进度条
`progress 60%` # 显示 60% 的进度条
`progress 5/5` # 显示 100%
配合 Dataview 的动态进度
## JavaScript 掌握度
`progress 3/5`
3 个掌握(4-5星) / 5 个笔记总数
[[JavaScript 笔记列表]]
4️⃣ Spaced Repetition(间隔复习)
功能:根据遗忘曲线安排复习计划
工作原理(SRS)
第 1 天 复习(刚学会)
↓
3 天后 再复习(开始遗忘)
↓
7 天后 再复习(巩固印象)
↓
14 天后 再复习(深化记忆)
↓
30 天后 复习(形成长期记忆)
设置复习卡片:
---
title: "Python 装饰器"
tags:
- python
- learning
sr-due: 2025-12-08
sr-interval: 1
sr-ease: 250
---
# Python 装饰器
## 问题
什么是装饰器?有什么用途?
## 答案
装饰器是一个函数,接收一个函数作为参数,
返回一个新函数。用途包括:
- 函数功能增强(如日志、性能计时)
- 权限验证
- 缓存
- ...
命令:
Obsidian_SR: Review notes- 开始复习Obsidian_SR: Easy- 标记为”简单”Obsidian_SR: Good- 标记为”适中”Obsidian_SR: Hard- 标记为”困难”
5️⃣ Habit Tracker(习惯追踪)
功能:记录并追踪学习习惯
使用方法:
## 学习习惯追踪
习惯1: 每日编程一小时
- [x] 12-01
- [x] 12-02
- [x] 12-03
- [ ] 12-04
- [x] 12-05
习惯2: 完成一道算法题
- [x] 12-01
- [ ] 12-02
- [x] 12-03
- [x] 12-04
- [x] 12-05
## 本周总结
- 编程: 5/7 天 (71%)
- 算法: 4/7 天 (57%)
安装与配置
第一步:安装必需插件
在 Obsidian 中:Settings → Community plugins
必需:
✅ Dataview
✅ Ratings
✅ Progress Bar
✅ Spaced Repetition
可选(推荐):
⭐ Habit Tracker
⭐ Calendar
⭐ Periodic Notes
第二步:配置 Dataview
Settings → Community plugins → Dataview
Enable JavaScript Queries: ✅
Enable Inline Queries: ✅
Enable Inline Data: ✅
第三步:配置 Ratings
Settings → Community plugins → Ratings
Show ratings inline: ✅
Star style: 🟡 (选择你喜欢的样式)
Color ratings: ✅
第四步:配置 Spaced Repetition
Settings → Community plugins → Spaced Repetition
Repetition interval:
- 1 day
- 3 days
- 7 days
- 14 days
- 30 days
Next note delay: 30 seconds
Show SR info: ✅
第五步:配置 Habit Tracker
Settings → Community plugins → Habit Tracker
Track habits: ✅
Habit colors:
- Complete: #00ff00 (绿)
- Incomplete: #ff0000 (红)
Habit calendar: ✅
完整工作流
📅 日常学习流程
上午:学习新知识
1. 创建新笔记
文件名: 主题-内容.md
例: javascript-closure.md
2. 记录笔记
- 概念定义
- 核心要点
- 代码示例
- 应用场景
3. 添加元数据
---
title: "JavaScript 闭包"
tags:
- javascript
- web-dev
- important
rating: 0 # 初始:未评分
created: 2025-12-08
---
中午:复习与评分
1. 打开已学笔记
2. 点击 Ratings 插件,评分
⭐⭐⭐ (掌握度 60%)
3. 记录笔记
- 模糊的地方标记
- 添加相关链接
- 写下疑问
下午:Spaced Repetition 复习
1. 命令: Obsidian_SR: Review notes
2. 系统显示需要复习的卡片
3. 阅读并回答问题
4. 评分:Easy / Good / Hard
5. 自动安排下次复习时间
晚上:数据整理与规划
1. 打开仪表板 (Dashboard)
2. 查看今日学习统计
3. 检查明日学习计划
4. 更新习惯追踪记录
仪表板设计
仪表板文件结构
Dashboard.md
├─ 📊 今日统计
├─ 📚 学习进度
├─ ⚠️ 待复习列表
├─ 🔥 高频错题
├─ 📈 学习趋势
├─ 🎯 周计划
├─ 📋 学习主题
└─ 💪 习惯追踪
完整仪表板示例
---
title: "学习仪表板"
---
# 📊 学习仪表板
> 实时学习追踪系统 - 数据自动更新
---
## 📈 本周统计
| 指标 | 数值 | 变化 |
|-----|------|------|
| 总笔数 | 42 | ↑ 5 |
| 平均掌握度 | 3.2⭐ | ↑ 0.3 |
| 需复习 | 8 | ↓ 2 |
| 已掌握 | 15 | ↑ 3 |
---
## ⚠️ 今日待复习 (8 篇)
```dataview
table rating, file.mtime as "最后编辑"
from ""
where (sr-due <= date("now"))
sort sr-due asc
limit 5
📚 学习进度
JavaScript (24/30)
progress 24/30
- ⭐⭐⭐⭐⭐ 完全掌握: 8
- ⭐⭐⭐⭐ 很掌握: 10
- ⭐⭐⭐ 基本掌握: 6
- ⭐⭐ 需加强: 0
Python (18/25)
progress 18/25
- ⭐⭐⭐⭐⭐ 完全掌握: 5
- ⭐⭐⭐⭐ 很掌握: 8
- ⭐⭐⭐ 基本掌握: 5
- ⭐⭐ 需加强: 0
🎯 按掌握度分类
需要重点学习 (⭐ - ⭐⭐)
list from ""
where rating <= 2
group by tags
sort rating asc
基本掌握 (⭐⭐⭐)
list from ""
where rating = 3
sort created desc
limit 10
已掌握 (⭐⭐⭐⭐ 及以上)
list from ""
where rating >= 4
sort created desc
limit 10
🔥 高频错题
table rating, created
from ""
where tag = "错题" and rating < 3
sort created desc
💪 学习习惯追踪
本周目标完成情况
| 习惯 | 目标 | 完成 | 进度 |
|---|---|---|---|
| 每日编程 1h | 7 天 | 6 天 | 86% |
| 完成算法题 | 7 道 | 5 道 | 71% |
| 复习笔记 | 5 次 | 5 次 | 100% |
| 写博客 | 2 篇 | 1 篇 | 50% |
📅 周学习计划
本周 (12-08 ~ 12-14)
Monday (12-08)
- 复习 JavaScript 原型链
- 学习 Python 装饰器
- 完成算法题 (二叉树)
Tuesday (12-09)
- 学习 React Hooks
- 复习 CSS Flexbox
- 总结笔记
…
🏆 学习成就
最近 30 天:
- 📝 新增笔数: 15
- ⭐ 平均评分: 3.5
- 📈 进度提升: +12%
- 🎯 掌握话题: 5 个
上次更新: {{date}} | 下次更新: Tomorrow
---
## 进阶技巧
### 1. 建立主题学习地图
**创建 MOC(Map of Content)**
```markdown
---
title: "JavaScript 学习地图"
tags:
- javascript
- moc
---
# JavaScript 学习地图
## 基础 (⭐⭐)
- [[JavaScript 基本类型]]
- [[JavaScript 变量与作用域]]
- [[JavaScript 函数]]
## 进阶 (⭐⭐⭐)
- [[JavaScript 闭包]]
- [[JavaScript 原型链]]
- [[JavaScript this 绑定]]
## 高级 (⭐⭐⭐⭐)
- [[JavaScript 异步编程]]
- [[JavaScript 事件循环]]
- [[JavaScript 模块系统]]
## 框架 (⭐⭐⭐⭐⭐)
- [[React 基础]]
- [[Vue 基础]]
- [[Angular 基础]]
---
`progress 8/15`
已掌握: 8 / 计划学习: 15
2. 建立链接关系图
相关笔记链接
---
title: "JavaScript 闭包"
tags:
- javascript
- important
prerequisites:
- [[JavaScript 函数]]
- [[JavaScript 作用域]]
related:
- [[JavaScript 高阶函数]]
- [[JavaScript 装饰器]]
rating: 3
---
# JavaScript 闭包
## 前置知识
[[JavaScript 函数]] → [[JavaScript 作用域]] → **本笔记**
## 衍生知识
[[JavaScript 高阶函数]]、[[JavaScript 装饰器]]
## 知识图谱
[可视化关系图]
3. 复习计划自动化
创建复习提醒
## 复习日程表
```dataview
table sr-due, file.name, rating
from ""
where sr-due <= date("now") + dur(7 days)
sort sr-due asc
### 4. 导出学习报告
```markdown
## 月度学习报告
### 📊 数据统计
```dataview
SELECT
dateformat(created, "yyyy-MM") as "月份",
count() as "新增笔数",
round(average(rating), 2) as "平均掌握度"
FROM ""
GROUP BY dateformat(created, "yyyy-MM")
SORT month desc
📈 掌握度趋势
SELECT
dateformat(created, "yyyy-MM-dd") as "日期",
round(average(rating), 1) as "掌握度"
FROM ""
GROUP BY dateformat(created, "yyyy-MM-dd")
SORT date desc
LIMIT 30
---
## 常见问题
### Q1:如何快速输入评分?
**方式 1:Ratings 插件 UI**
- 打开笔记,点击 Ratings 插件图标
- 点击星星快速评分
**方式 2:Frontmatter 编辑**
```yaml
---
rating: 3
---
方式 3:Dataview inline
rating:: 3
Q2:Spaced Repetition 如何设定复习间隔?
自动间隔(推荐)
Easy → 3 天后
Good → 7 天后
Hard → 1 天后
自定义间隔
在插件设置中修改:
Review Intervals:
- Easy: 10 days
- Good: 5 days
- Hard: 1 day
Q3:如何处理已完全掌握的知识?
不删除,只是标记
---
rating: 5
status: "mastered"
last_review: 2025-12-08
---
然后在仪表板中使用 where rating = 5 筛选。
Q4:如何合并相似的笔记?
步骤:
- 打开两个相似笔记
- 将内容合并到一个笔记中
- 在另一个笔记中添加重定向:
---
redirect: [[merged-note]]
---
Q5:如何导出学习成果?
导出选项:
-
导出为 PDF
- 使用 Better Export PDF 插件
- 导出仪表板与笔记
-
导出为 CSV
table title, rating, created from ""→ 右键 → Export as CSV
-
导出为 Markdown
- 直接复制笔记内容
- 或使用 Markdown Exporter 插件
📚 完整学习工作流
周一
├─ 上午:学习新知识(3 篇笔记)
├─ 下午:Spaced Repetition 复习(10 条卡片)
└─ 晚上:更新仪表板
周二-周四
├─ 重复上述流程
└─ 记录高频错题
周五
├─ 周总结(统计本周学习成果)
├─ 更新学习计划(下周目标)
└─ 复习本周所有新笔记
周末
├─ 深化学习(完成练习题)
├─ 整理笔记(优化结构)
└─ 休息恢复
🎯 学习建议
-
坚持记笔记
- 每学一个知识点就记录
- 包括概念、例子、应用场景
-
定期评分
- 学完立即评分
- 复习时重新评分
-
设定复习计划
- 使用 Spaced Repetition
- 按照遗忘曲线复习
-
建立知识体系
- 使用 MOC 梳理主题
- 添加链接关系
-
追踪学习习惯
- 每日学习时间
- 完成率统计
- 进度可视化
📚 相关文档
- obsidian-scoring-and-mastery-plugin - 单个插件详细指南
- obsidian-sync-and-deployment-guide - 发布学习笔记到网站
- dataview-plugin-guide - Dataview 完整语法参考