Obsidian学习追踪系统

Obsidian 学习追踪系统 - 结合 Dataview + Ratings + Progress Bar + Spaced Repetition

#resource / obsidian #type / howto #status / evergreen

[!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

💪 学习习惯追踪

本周目标完成情况

习惯目标完成进度
每日编程 1h7 天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:如何合并相似的笔记?

步骤

  1. 打开两个相似笔记
  2. 将内容合并到一个笔记中
  3. 在另一个笔记中添加重定向:
---
redirect: [[merged-note]]
---

Q5:如何导出学习成果?

导出选项

  1. 导出为 PDF

    • 使用 Better Export PDF 插件
    • 导出仪表板与笔记
  2. 导出为 CSV

    table title, rating, created
    from ""

    → 右键 → Export as CSV

  3. 导出为 Markdown

    • 直接复制笔记内容
    • 或使用 Markdown Exporter 插件

📚 完整学习工作流

周一
├─ 上午:学习新知识(3 篇笔记)
├─ 下午:Spaced Repetition 复习(10 条卡片)
└─ 晚上:更新仪表板

周二-周四
├─ 重复上述流程
└─ 记录高频错题

周五
├─ 周总结(统计本周学习成果)
├─ 更新学习计划(下周目标)
└─ 复习本周所有新笔记

周末
├─ 深化学习(完成练习题)
├─ 整理笔记(优化结构)
└─ 休息恢复

🎯 学习建议

  1. 坚持记笔记

    • 每学一个知识点就记录
    • 包括概念、例子、应用场景
  2. 定期评分

    • 学完立即评分
    • 复习时重新评分
  3. 设定复习计划

    • 使用 Spaced Repetition
    • 按照遗忘曲线复习
  4. 建立知识体系

    • 使用 MOC 梳理主题
    • 添加链接关系
  5. 追踪学习习惯

    • 每日学习时间
    • 完成率统计
    • 进度可视化

📚 相关文档


创建于 2025/12/8 更新于 2026/5/27