progress-dashboard
approvedby xym-py
A plugin for visualizing learning skill progress, auto-links skills via note YAML fields, supports manual drag to adjust progress - This plugin has not been manually reviewed by Obsidian staff.
Progress Dashboard / 学习项目进度看板
一个 Obsidian 插件,用于可视化展示和管理学习技能的进度。通过扫描笔记 YAML 中的 skill 和 skill-progress 字段,自动关联笔记到技能,并支持手动拖动调整进度。
✨ 功能特性
- 🎯 技能进度可视化 - 进度条展示每个技能的完成状态
- 📝 笔记自动关联 - 通过 YAML 字段自动关联笔记到技能
- 🖱️ 手动拖动进度 - 直接拖动进度条调整进度
- 🏷️ 分类管理 - 支持自定义技能分类
- 🔗 多笔记关联 - 一个技能可关联多个笔记
- 📚 父子技能结构 - 支持技能的层级结构(如:编程 → Python/JavaScript)
- 📊 笔记列表展示 - 右侧显示关联的笔记,可点击跳转
- 🔄 跨仓库支持 - 支持扫描 Obsidian 中所有打开的 Vault
- 📌 分类置顶 - 重要分类可以置顶显示
- 📅 日期记录 - 为技能添加开始日期和结束日期
📥 安装方式
方式一:通过 Obsidian 社区插件市场(推荐)
- 打开 Obsidian 设置 → 第三方插件
- 关闭"安全模式"
- 点击"浏览"
- 搜索 "Progress Dashboard"
- 点击"安装"
方式二:手动安装
- 下载最新的
main.js、manifest.json、styles.css - 将文件放入你的 Obsidian Vault 的
.obsidian/plugins/progress-dashboard/目录 - 重启 Obsidian
- 在设置中启用插件
# 目录结构应该是:
# YourVault/
# └── .obsidian/
# └── plugins/
# └── progress-dashboard/
# ├── main.js
# ├── manifest.json
# └── styles.css
📖 使用说明
1. 创建技能
点击顶部工具栏的 "+ 添加技能" 按钮,填写:
- 分类:技能所属分类(如:技术、学习、生活)
- 技能名称:技能的名称
- 技能描述:简要描述,用顿号/逗号分隔可拆为子技能
示例:
- 分类:
技术 - 名称:
编程 - 描述:
Python、JavaScript、Rust(会创建三个子技能)
2. 通过笔记关联技能
在笔记的 YAML frontmatter 中添加 skill 字段:
---
skill: 编程
skill-progress: 50
---
如果笔记关联子技能,使用 / 分隔:
---
skill: 编程/Python
skill-progress: 80
---
3. 调整进度
- 手动拖动:直接拖动进度条调整进度
- 笔记驱动:笔记的
skill-progress字段会自动同步进度
进度优先级:
- 手动拖动(最高优先级)
- 笔记的
skill-progress字段 - 默认 0%
4. 删除笔记关联
鼠标悬停在技能右侧的笔记标签上,会显示 × 按钮,点击即可删除关联。
5. 重置数据
点击顶部工具栏的 "重置" 按钮,将清除所有数据恢复到初始状态。
🏗️ 开发
环境要求
- Node.js >= 16
- npm
安装依赖
npm install
开发模式
npm run dev
构建
npm run build
📁 文件结构
progress-dashboard/
├── main.ts # TypeScript 源代码
├── main.js # 构建产物
├── manifest.json # 插件清单
├── styles.css # 样式文件
├── versions.json # 版本历史
├── package.json # 包配置
├── esbuild.config.mjs # 构建配置
└── tsconfig.json # TypeScript 配置
🤝 贡献
欢迎贡献代码!请:
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
📄 许可证
本项目基于 MIT License 开源。
🌟 致谢
感谢所有使用和贡献本插件的用户!
Progress Dashboard for Obsidian
A powerful Obsidian plugin for visualizing and managing learning skill progress. Automatically associates notes with skills by scanning YAML skill and skill-progress fields, with support for manual drag-to-adjust progress.
✨ Features
- 🎯 Skill Progress Visualization - Visual progress bars for each skill
- 📝 Auto Note Association - Automatically link notes to skills via YAML fields
- 🖱️ Manual Progress Adjustment - Drag progress bars directly
- 🏷️ Category Management - Organize skills with custom categories
- 🔗 Multi-Note Support - Associate multiple notes with a single skill
- 📚 Parent-Child Structure - Hierarchical skill structure (e.g., Programming → Python/JavaScript)
- 📊 Note List Display - View associated notes on the right side, clickable
- 🔄 Multi-Vault Support - Scans all Vaults open in Obsidian
- 📌 Pin Categories - Pin important categories to the top
- 📅 Date Tracking - Add start and end dates to skills
📥 Installation
Option 1: Community Plugins (Recommended)
- Open Obsidian Settings → Community Plugins
- Turn off "Restricted mode"
- Click "Browse"
- Search for "Progress Dashboard"
- Click "Install"
Option 2: Manual Installation
- Download the latest
main.js,manifest.json,styles.css - Place files in
.obsidian/plugins/progress-dashboard/directory - Restart Obsidian
- Enable the plugin in settings
📖 Usage
1. Create a Skill
Click the "+ Add Skill" button in the toolbar, fill in:
- Category: Skill category (e.g., Technology, Learning, Life)
- Skill Name: Name of the skill
- Description: Brief description, use commas to create sub-skills
Example:
- Category:
Technology - Name:
Programming - Description:
Python, JavaScript, Rust(creates three sub-skills)
2. Associate Notes via YAML
Add skill field to your note's YAML frontmatter:
---
skill: Programming
skill-progress: 50
---
For sub-skills, use / separator:
---
skill: Programming/Python
skill-progress: 80
---
3. Adjust Progress
- Manual Drag: Drag the progress bar directly
- Note-Driven: The
skill-progressfield in notes automatically syncs
Progress Priority:
- Manual drag (highest priority)
- Note's
skill-progressfield - Default 0%
4. Remove Note Association
Hover over the note tag on the right side of the skill, an × button will appear, click to remove.
5. Reset Data
Click the "Reset" button to clear all data and restore to initial state.
🏗️ Development
Prerequisites
- Node.js >= 16
- npm
Install Dependencies
npm install
Development Mode
npm run dev
Build
npm run build
📁 File Structure
progress-dashboard/
├── main.ts # TypeScript source
├── main.js # Build output
├── manifest.json # Plugin manifest
├── styles.css # Style file
├── versions.json # Version history
├── package.json # Package config
├── esbuild.config.mjs # Build config
└── tsconfig.json # TypeScript config
🤝 Contributing
Contributions are welcome! Please:
- Fork this repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Create a Pull Request
📄 License
This project is licensed under the MIT License.
🌟 Acknowledgments
Thanks to all users who use and contribute to this plugin!
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.