@walknpm/todo-cli 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.zh-CN.md CHANGED
@@ -1,10 +1,11 @@
1
1
  # todo-cli
2
2
 
3
- > **简体中文** | [English](./README.md)
3
+ > [English](./README.md) | **简体中文**
4
4
 
5
- 一个零依赖的 Node.js 命令行待办事项管理器。支持完整的增删改查、完成状态切换、
6
- 分类/标签、优先级排序、截止日期(含逾期高亮)、搜索、统计概览,以及导出
7
- (JSON / CSV / Markdown)。数据持久化到 `~/.todo-cli/todos.json`。
5
+ 一个零依赖的 Node.js 待办事项管理器,支持 **CLI + Web 界面**。完整的增删改查、
6
+ 子任务、循环任务、任务依赖、时间追踪、置顶、批量操作、分类/标签、优先级排序、
7
+ 截止日期、搜索、统计、看板、日历视图、时间线、导出(JSON / CSV / Markdown)
8
+ 和自动更新。数据保存在 `~/.todo-cli/todos.json`。
8
9
 
9
10
  ## 环境要求
10
11
 
@@ -16,7 +17,7 @@
16
17
 
17
18
  ```bash
18
19
  npm install -g @walknpm/todo-cli
19
- todo --version # → todo v1.1.0
20
+ todo --version # → todo v2.0.0
20
21
  ```
21
22
 
22
23
  **通过 git:**
@@ -25,189 +26,185 @@ todo --version # → todo v1.1.0
25
26
  git clone https://gitcode.com/hw_aishell_projects/todo_cli.git
26
27
  cd todo_cli
27
28
  npm install -g .
28
- todo --version # → todo v1.1.0
29
+ todo --version # → todo v2.0.0
29
30
  ```
30
31
 
31
- ## 命令一览
32
-
33
- | 命令 | 说明 |
34
- | --------------------- | -------------------------------------------------- |
35
- | `add <标题>` | 添加新待办 |
36
- | `list` | 列出待办(默认命令) |
37
- | `done <id>` | 标记完成(`done --all` = 全部完成) |
38
- | `toggle <id>` | 切换完成 / 待办状态 |
39
- | `edit <id>` | 编辑待办 |
40
- | `delete <id>` | 删除待办 |
41
- | `search <关键词>` | 搜索标题 / 标签 / 分类 / 备注 |
42
- | `stats` | 显示统计概览 |
43
- | `export [json\|csv\|md]` | 导出全部待办到标准输出 |
44
- | `archive` | 归档(删除所有已完成项) |
45
- | `update` | 自动更新到最新版(`--check` = 仅检查不安装) |
46
- | `clear` | 清空所有待办 |
47
- | `help` | 显示帮助 |
48
-
49
- `-h` / `--help` 可附加在**任意命令**后(或单独使用)显示帮助。
50
- `-v` / `--version` 显示版本号。
51
-
52
- ## 参数标志
53
-
54
- | 标志 | 适用命令 | 说明 |
55
- | ---------------------- | ---------------- | ------------------------------------------ |
56
- | `-p, --priority <v>` | add, edit | `high` \| `medium` \| `low`(默认: medium) |
57
- | `-t, --tags <v>` | add, edit | 逗号分隔的标签 |
58
- | `-c, --category <v>` | add, edit | 分类名称 |
59
- | `-d, --due <v>` | add, edit | 截止日期 `YYYY-MM-DD` |
60
- | `--note <v>` | add, edit | 较长的备注 / 描述 |
61
- | `--title <v>` | edit | 新标题 |
62
- | `--status <v>` | list | `all` \| `done` \| `pending` |
63
- | `--tag <v>` | list | 按标签过滤 |
64
- | `--sort <v>` | list | `priority` \| `created` \| `due` \| `id` |
65
- | `--all` | done | 完成所有待办项 |
66
- | `--check` | update | 仅检查是否有更新,不安装 |
67
- | `--format <v>` | export | `json` \| `csv` \| `md`(默认: json) |
68
-
69
- ## 使用示例
32
+ ## 🚀 Web 界面
70
33
 
71
- ```bash
72
- # 添加待办(含截止日期、优先级、标签、分类、备注)
73
- todo add "提交报税单" -p high -d 2025-01-31 -c finance -t urgent,monthly --note "附上收据"
74
-
75
- # 列出与过滤
76
- todo list
77
- todo list --status pending --sort due
78
- todo list --category work --priority high
34
+ 启动 Web 服务器:
79
35
 
80
- # 搜索
81
- todo search 报税
82
-
83
- # 批量完成与归档
84
- todo done --all
85
- todo archive
86
-
87
- # 统计概览
88
- todo stats
89
-
90
- # 自动更新
91
- todo update --check # 检查是否有新版本
92
- todo update # 安装最新版本
93
-
94
- # 导出
95
- todo export csv > todos.csv
96
- todo export md
36
+ ```bash
37
+ todo web # 默认端口 3456
38
+ todo web 8080 # 自定义端口
39
+ npm run web # 通过 npm 脚本
97
40
  ```
98
41
 
99
- ## 项目结构
42
+ 然后在浏览器中打开 **http://localhost:3456**。
43
+
44
+ ### Web 界面功能
45
+
46
+ | 功能 | 说明 |
47
+ | ---- | ---- |
48
+ | **仪表盘** | 统计卡片、完成率、最近待办、即将到期 |
49
+ | **列表视图** | 完整待办列表,支持行内操作、筛选、排序、搜索 |
50
+ | **看板** | 拖拽在"待办"和"已完成"列之间移动 |
51
+ | **日历** | 月历视图,待办按截止日期显示 |
52
+ | **时间线** | 所有待办的时间顺序活动流 |
53
+ | **添加/编辑弹窗** | 完整表单,包含循环和置顶 |
54
+ | **详情视图** | 子任务管理、依赖关系、时间戳、快捷操作 |
55
+ | **时间追踪** | 启动/停止计时器,浮动计时器组件 |
56
+ | **深色/浅色主题** | 切换并保存到 localStorage |
57
+ | **响应式** | 适配桌面、平板和手机 |
58
+ | **键盘快捷键** | `n` = 新建待办,`/` = 搜索,`Esc` = 关闭弹窗 |
59
+
60
+ ## 命令
61
+
62
+ ### 核心命令
63
+
64
+ | 命令 | 说明 |
65
+ | ---- | ---- |
66
+ | `add <标题>` | 添加新待办 |
67
+ | `list` | 列出待办(默认命令) |
68
+ | `show <id>` | 查看待办详情 |
69
+ | `done <id>` | 标记完成(`done --all` = 全部完成) |
70
+ | `toggle <id>` | 切换完成/待办状态 |
71
+ | `edit <id>` | 编辑待办 |
72
+ | `delete <id>` | 删除待办(别名:`rm`、`remove`) |
73
+ | `duplicate <id>` | 复制待办(别名:`dup`) |
74
+ | `pin <id>` | 切换置顶状态 |
75
+ | `search <关键词>` | 搜索标题/标签/分类/备注/负责人 |
76
+ | `stats` | 显示统计信息 |
77
+ | `export [json\|csv\|md]` | 导出所有待办 |
78
+ | `archive` | 归档(删除)所有已完成的待办 |
79
+ | `clear` | 删除所有待办 |
80
+ | `web [端口]` | 启动 Web 界面服务器(默认:3456) |
81
+ | `update` | 更新到最新版本(`--check` = 仅检查) |
82
+ | `help` | 显示帮助 |
83
+
84
+ ### 子任务
100
85
 
101
- ```
102
- todo_cli/
103
- ├── bin/
104
- │ └── todo.js # 可执行入口(shebang)
105
- ├── src/
106
- │ ├── store.js # JSON 文件持久化层
107
- │ ├── todo.js # 领域逻辑(增删改查、搜索、统计、导出等)
108
- │ └── cli.js # 命令解析、ANSI 彩色、表格输出
109
- ├── skill/
110
- │ ├── SKILL.md # DSH 技能指令
111
- │ ├── README.md # 技能文档
112
- │ └── CHANGELOG.md # 技能变更记录
113
- ├── package.json
114
- ├── README.md # 英文文档
115
- └── README.zh-CN.md # 中文文档
86
+ ```bash
87
+ todo subtask add <id> <标题> # 添加子任务
88
+ todo subtask done <id> <sid> # 切换子任务完成状态
89
+ todo subtask edit <id> <sid> <标题> # 编辑子任务标题
90
+ todo subtask delete <id> <sid> # 删除子任务
116
91
  ```
117
92
 
118
- ---
93
+ ### 循环任务
119
94
 
120
- ## 🤖 AI 自动部署提示词
95
+ ```bash
96
+ todo recur <id> daily [间隔] # 每 N 天重复
97
+ todo recur <id> weekly [间隔] # 每 N 周重复
98
+ todo recur <id> monthly [间隔] # 每 N 月重复
99
+ todo recur <id> yearly [间隔] # 每 N 年重复
100
+ todo recur <id> off # 取消循环
101
+ ```
121
102
 
122
- > 以下提示词可直接粘贴给 AI 助手(如 Claude、ChatGPT、DeepSeek 等),AI 会自动完成部署。
123
- > 复制对应场景的代码块即可。
103
+ 当循环待办被标记为完成时,会自动创建一个新的待办实例,截止日期按循环间隔推进。
124
104
 
125
- ### 场景一:从零安装并验证
105
+ ### 任务依赖
126
106
 
127
- ```
128
- 请帮我安装部署 todo-cli 命令行待办工具,步骤如下:
129
-
130
- 1. 全局安装:npm install -g @walknpm/todo-cli
131
- 2. 验证安装:运行 todo --version,确认输出 "todo v1.1.0"
132
- 3. 功能验证:依次执行以下命令并确认每步输出正常:
133
- - todo add "部署测试任务" -p high -t test -c verify
134
- - todo list
135
- - todo done 1
136
- - todo stats
137
- - todo clear
138
- 4. 如果任何步骤报错,请展示完整错误信息并尝试修复。
139
-
140
- 完成后告诉我安装路径和 todo --version 的输出。
107
+ ```bash
108
+ todo dep add <id> <依赖id> # 添加依赖(阻止完成)
109
+ todo dep remove <id> <依赖id> # 移除依赖
141
110
  ```
142
111
 
143
- ### 场景二:安装 + 导入已有数据
112
+ ### 时间追踪
144
113
 
114
+ ```bash
115
+ todo timer start <id> # 开始计时(会停止其他正在运行的计时器)
116
+ todo timer stop <id> # 停止计时并记录时间
117
+ todo timer log <id> <分钟> # 手动记录时间
118
+ todo timer # 查看活动计时器
145
119
  ```
146
- 请帮我部署 todo-cli 并导入已有待办数据:
147
-
148
- 1. 克隆并安装:
149
- git clone https://gitcode.com/hw_aishell_projects/todo_cli.git
150
- cd todo_cli && npm install -g .
151
120
 
152
- 2. 确认 todo --version 正常输出。
121
+ ### 批量操作
153
122
 
154
- 3. 以下是我的待办事项,请逐条用 todo add 命令创建(根据内容自动判断优先级、分类和标签):
155
- - [在此粘贴你的待办列表,每行一条]
156
-
157
- 4. 创建完成后运行 todo list 和 todo stats,把结果展示给我确认。
123
+ ```bash
124
+ todo bulk done <ids...> # 批量完成
125
+ todo bulk delete <ids...> # 批量删除
126
+ todo bulk priority <ids...> -p <值> # 批量设置优先级
127
+ todo bulk category <ids...> -c <值> # 批量设置分类
128
+ todo bulk assign <ids...> --assignee <值> # 批量设置负责人
158
129
  ```
159
130
 
160
- ### 场景三:卸载
131
+ ## 示例
161
132
 
162
- ```
163
- 请帮我卸载 todo-cli 工具:
133
+ ```bash
134
+ # 添加包含所有字段的待办
135
+ todo add "提交报税单" -p high -d 2025-01-31 -c finance -t urgent,monthly --note "附上收据" --estimate 120 --assignee bob
164
136
 
165
- 1. 运行 npm uninstall -g todo-cli
166
- 2. 删除数据文件:rm -rf ~/.todo-cli
167
- 3. 运行 todo --version 确认已无法找到该命令
168
- 4. 告诉我卸载是否成功。
169
- ```
137
+ # 列表与筛选
138
+ todo list --status pending --sort due
139
+ todo list --overdue
140
+ todo list --category work --priority high
170
141
 
171
- ### 场景四:更新到最新版本
142
+ # 子任务
143
+ todo subtask add 1 "调研方案"
144
+ todo subtask add 1 "撰写草稿"
145
+ todo subtask done 1 1
172
146
 
173
- ```
174
- 请帮我更新 todo-cli 到最新版本:
147
+ # 循环任务
148
+ todo recur 3 weekly 1
149
+ todo done 3 # 自动创建下周的新实例
175
150
 
176
- 1. 运行 todo update --check 检查是否有新版本
177
- 2. 如果有更新,运行 todo update 自动安装最新版
178
- 3. 运行 todo --version 确认版本号已更新
179
- 4. 运行 todo list 确认已有数据未丢失
180
- 5. 告诉我更新结果。
181
- ```
151
+ # 任务依赖
152
+ todo dep add 5 3 # 待办 #5 在 #3 完成前被阻止
182
153
 
183
- ### 场景五:完整部署(含数据备份与恢复)
154
+ # 时间追踪
155
+ todo timer start 2
156
+ todo timer stop 2
157
+ todo timer log 2 30
184
158
 
185
- ```
186
- 请帮我完成 todo-cli 的完整部署流程:
159
+ # 置顶与复制
160
+ todo pin 1
161
+ todo duplicate 3
187
162
 
188
- 【安装】
189
- 1. git clone https://gitcode.com/hw_aishell_projects/todo_cli.git
190
- 2. cd todo_cli && npm install -g .
191
- 3. 确认 todo --version 输出版本号
163
+ # 批量操作
164
+ todo bulk done 1 2 3
165
+ todo bulk priority 1 2 3 -p high
192
166
 
193
- 【备份】(如果 ~/.todo-cli/todos.json 已存在)
194
- 4. 如果存在 ~/.todo-cli/todos.json,先备份到 ~/todo-backup-$(date +%Y%m%d).json
195
- 5. 确认备份文件内容有效
167
+ # Web 界面
168
+ todo web 8080
196
169
 
197
- 【验证】
198
- 6. 执行 todo add "验证任务" -p medium 并确认输出
199
- 7. 执行 todo list 确认表格正常显示
200
- 8. 执行 todo delete 1 清理验证数据
170
+ # 统计
171
+ todo stats
201
172
 
202
- 【恢复】(如果有备份)
203
- 9. 如果之前做了备份,将备份文件复制回 ~/.todo-cli/todos.json
204
- 10. 执行 todo list 确认数据已恢复
173
+ # 导出
174
+ todo export csv > todos.csv
175
+ todo export md
205
176
 
206
- 最后汇总报告:安装状态、版本号、备份/恢复状态。
177
+ # 自动更新
178
+ todo update --check
179
+ todo update
207
180
  ```
208
181
 
209
- ---
182
+ ## 项目结构
183
+
184
+ ```
185
+ todo_cli/
186
+ ├── bin/
187
+ │ └── todo.js # 可执行入口
188
+ ├── src/
189
+ │ ├── store.js # JSON 文件持久化层
190
+ │ ├── todo.js # 领域逻辑(增删改查、子任务、循环、依赖、计时、批量...)
191
+ │ ├── cli.js # 命令解析、ANSI 颜色、表格输出
192
+ │ └── server.js # 零依赖 HTTP 服务器(REST API + 静态文件)
193
+ ├── web/
194
+ │ ├── index.html # SPA 外壳
195
+ │ ├── css/
196
+ │ │ └── style.css # 现代响应式设计(深色/浅色主题)
197
+ │ └── js/
198
+ │ └── app.js # SPA 应用逻辑(仪表盘、列表、看板、日历、时间线)
199
+ ├── skill/
200
+ │ ├── SKILL.md
201
+ │ ├── README.md
202
+ │ └── CHANGELOG.md
203
+ ├── package.json
204
+ ├── README.md # 英文文档
205
+ └── README.zh-CN.md # 中文文档
206
+ ```
210
207
 
211
- ## 开源协议
208
+ ## 许可证
212
209
 
213
210
  MIT
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walknpm/todo-cli",
3
- "version": "1.2.0",
4
- "description": "A zero-dependency Node.js CLI todo list manager with CRUD, due dates, search, stats, export, and auto-update.",
3
+ "version": "2.0.0",
4
+ "description": "A zero-dependency Node.js CLI + Web todo list manager with subtasks, recurring, dependencies, time tracking, kanban, calendar, and more.",
5
5
  "type": "module",
6
6
  "main": "src/cli.js",
7
7
  "bin": {
@@ -11,7 +11,9 @@
11
11
  "node": ">=18"
12
12
  },
13
13
  "scripts": {
14
- "start": "node bin/todo.js"
14
+ "start": "node bin/todo.js",
15
+ "web": "node src/server.js",
16
+ "dev": "node src/server.js 3456"
15
17
  },
16
18
  "keywords": [
17
19
  "todo",
@@ -19,18 +21,29 @@
19
21
  "task",
20
22
  "productivity",
21
23
  "todo-list",
22
- "command-line"
24
+ "command-line",
25
+ "web-ui",
26
+ "kanban",
27
+ "calendar",
28
+ "subtasks",
29
+ "recurring",
30
+ "time-tracking"
23
31
  ],
24
32
  "author": "walknpm",
25
33
  "license": "MIT",
26
34
  "repository": {
27
35
  "type": "git",
28
- "url": "https://gitcode.com/hw_aishell_projects/todo_cli.git"
36
+ "url": "https://gitcode.com/hw_aishell_projects/todo-web.git"
37
+ },
38
+ "homepage": "https://gitcode.com/hw_aishell_projects/todo-web",
39
+ "publishConfig": {
40
+ "access": "public",
41
+ "registry": "https://registry.npmjs.org"
29
42
  },
30
- "homepage": "https://gitcode.com/hw_aishell_projects/todo_cli",
31
43
  "files": [
32
44
  "bin/",
33
45
  "src/",
46
+ "web/",
34
47
  "skill/",
35
48
  "README.md",
36
49
  "README.zh-CN.md"