@nbtca/prompt 1.0.0 → 1.0.1

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/CHANGELOG.md ADDED
@@ -0,0 +1,164 @@
1
+ # NBTCA Prompt - UI 重构完成 ✨
2
+
3
+ ## 🎨 设计更新
4
+
5
+ ### 1. 新的标语
6
+ - ✅ 更换为英文标语:**"To be at the intersection of technology and liberal arts."**
7
+ - ✅ 移除居中显示,采用左对齐布局
8
+
9
+ ### 2. 渐变彩色效果
10
+ - ✅ 使用 `gradient-string` 实现蓝色主调渐变
11
+ - ✅ 颜色方案:深蓝 (#1e3a8a) → 天蓝 (#0ea5e9) → 青色 (#06b6d4)
12
+ - ✅ 添加动画效果,启动时标语会有流动的渐变动画(0.8秒)
13
+ - ✅ ASCII Logo 也使用蓝色渐变渲染
14
+
15
+ ### 3. 极简 UI设计
16
+ - ✅ 参考 Claude Code CLI 的简洁风格
17
+ - ✅ 移除冗余装饰元素
18
+ - ✅ 统一使用 dim 样式营造层次感
19
+ - ✅ 更清晰的信息结构
20
+
21
+ ### 4. Vim 键位支持
22
+ - ✅ 支持 `j` 向下导航
23
+ - ✅ 支持 `k` 向上导航
24
+ - ✅ 支持 `g` 跳到顶部
25
+ - ✅ 支持 `G` (Shift+g) 跳到底部
26
+ - ✅ 同时保留标准的 `↑` `↓` 箭头键
27
+ - ✅ 通过拦截 stdin 的 keypress 事件实现,无需修改 Inquirer
28
+
29
+ ## ⚡ 性能优化
30
+
31
+ ### 启动速度优化
32
+ - ✅ 动画时长优化:从 1.5秒 降至 0.8秒
33
+ - ✅ 动画帧数优化:从 15帧 降至 8帧
34
+ - ✅ 渐变预计算:避免重复创建渐变对象
35
+ - ✅ 移除未使用的代码和文件
36
+
37
+ ### 代码精简
38
+ - ✅ 删除 `DATA_MANAGEMENT.md` 无用文档
39
+ - ✅ 删除测试文件
40
+ - ✅ 删除临时文档
41
+ - ✅ 简化 UI 组件,移除未使用的函数
42
+
43
+ ## 📦 依赖更新
44
+
45
+ 新增依赖:
46
+ ```json
47
+ {
48
+ "gradient-string": "^3.0.0",
49
+ "@types/gradient-string": "^1.1.6",
50
+ "@inquirer/prompts": "^8.0.3"
51
+ }
52
+ ```
53
+
54
+ ## 🚀 使用方法
55
+
56
+ ```bash
57
+ # 安装依赖
58
+ npm install
59
+
60
+ # 构建项目
61
+ npm run build
62
+
63
+ # 运行
64
+ npm start
65
+
66
+ # 或者直接使用 npx(未来发布后)
67
+ npx @nbtca/prompt
68
+ ```
69
+
70
+ ## 🎯 界面预览
71
+
72
+ ```
73
+ [ASCII Art Logo 以蓝色渐变显示]
74
+
75
+ To be at the intersection of technology and liberal arts.
76
+ [流动的蓝色渐变动画 - 0.8秒]
77
+
78
+ v1.0.0
79
+
80
+ ↑↓ / jk 导航 • ⏎ 选择 • g 顶部 • G 底部
81
+
82
+ › 选择功能
83
+ 近期活动 查看最近30天的社团活动
84
+ ❯ 维修服务 电脑维修、软件安装
85
+ 知识库 技术文档、教程资源
86
+ 官方网站 访问NBTCA主页
87
+ GitHub 开源项目与代码
88
+ 关于 项目信息与帮助
89
+
90
+ 退出
91
+ ```
92
+
93
+ ## ✨ 亮点特性
94
+
95
+ 1. **真正的 Vim 键位** - j/k/g/G 完整支持,对 vim 用户极其友好
96
+ 2. **视觉吸引力** - 蓝色渐变动画让启动时更有科技感
97
+ 3. **快速启动** - 优化后动画仅需0.8秒,不影响使用体验
98
+ 4. **现代简洁** - 参考行业标杆 Claude Code 的设计语言
99
+ 5. **清晰易读** - 统一的层次结构和配色方案
100
+
101
+ ## 📝 技术细节
102
+
103
+ ### Vim 键位实现
104
+ ```typescript
105
+ // 通过拦截 stdin 的 keypress 事件来实现
106
+ export function enableVimKeys() {
107
+ const stdin = process.stdin;
108
+ const originalEmit = stdin.emit.bind(stdin);
109
+
110
+ (stdin.emit as any) = function (event: string, ...args: any[]) {
111
+ if (event === 'keypress') {
112
+ const [, key] = args;
113
+
114
+ // j -> down, k -> up, g -> home, G -> end
115
+ if (key.name === 'j') return originalEmit('keypress', null, { name: 'down' });
116
+ if (key.name === 'k') return originalEmit('keypress', null, { name: 'up' });
117
+ if (key.name === 'g' && !key.shift) return originalEmit('keypress', null, { name: 'home' });
118
+ if (key.name === 'g' && key.shift) return originalEmit('keypress', null, { name: 'end' });
119
+ }
120
+ return originalEmit(event, ...args);
121
+ };
122
+ }
123
+ ```
124
+
125
+ ### 渐变实现
126
+ ```typescript
127
+ // 创建蓝色主调渐变
128
+ const blueGradient = gradient([
129
+ { color: '#1e3a8a', pos: 0 }, // 深蓝
130
+ { color: '#0ea5e9', pos: 0.5 }, // 天蓝
131
+ { color: '#06b6d4', pos: 1 } // 青色
132
+ ]);
133
+
134
+ // 应用到文本
135
+ console.log(blueGradient('To be at the intersection of technology and liberal arts.'));
136
+ ```
137
+
138
+ ### 动画循环
139
+ ```typescript
140
+ // 使用3种颜色组合创造流动效果
141
+ const gradients = [
142
+ gradient('#1e3a8a', '#0ea5e9', '#06b6d4'),
143
+ gradient('#0ea5e9', '#06b6d4', '#1e3a8a'),
144
+ gradient('#06b6d4', '#1e3a8a', '#0ea5e9'),
145
+ ];
146
+
147
+ // 循环显示 8 帧,每帧 100ms
148
+ for (let i = 0; i < 8; i++) {
149
+ const frameGradient = gradients[i % 3];
150
+ process.stdout.write('\r' + frameGradient(text));
151
+ await delay(100);
152
+ }
153
+ ```
154
+
155
+ ## 🔧 后续优化建议
156
+
157
+ 1. ✨ 添加 `--no-animation` 参数跳过动画
158
+ 2. 🎨 支持自定义主题色
159
+ 3. ⚡ 考虑懒加载非必要模块
160
+ 4. 📦 使用 esbuild 打包减小体积
161
+
162
+ ---
163
+
164
+ **最佳实践**:现代 CLI 工具应该兼顾美观性和性能,0.8秒的动画是一个很好的平衡点,既不会让用户感到等待,又能提供愉悦的视觉体验。同时,真正的 Vim 键位支持让工具对开发者更加友好。
package/README.md CHANGED
@@ -1,235 +1,272 @@
1
- # NBTCA Welcome v2.3.0
1
+ # NBTCA Prompt
2
2
 
3
- ![Demo](assets/Prompt_demo.gif)
3
+ <div align="center">
4
4
 
5
- > 为浙大宁波理工学院计算机协会打造的专业欢迎工具
5
+ [![npm version](https://img.shields.io/npm/v/@nbtca/prompt)](https://www.npmjs.com/package/@nbtca/prompt)
6
+ [![npm downloads](https://img.shields.io/npm/dm/@nbtca/prompt)](https://www.npmjs.com/package/@nbtca/prompt)
7
+ [![Node.js Version](https://img.shields.io/node/v/@nbtca/prompt)](https://nodejs.org)
8
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.3+-blue)](https://www.typescriptlang.org/)
9
+ [![License](https://img.shields.io/npm/l/@nbtca/prompt)](LICENSE)
6
10
 
7
- ## ✨ 新功能特性
11
+ **极简优雅的浙大宁波理工学院计算机协会命令行工具**
8
12
 
9
- ### 🎨 增强的视觉效果
13
+ [安装](#-安装) [使用](#-使用) • [功能](#-核心功能) • [开发](#-开发)
10
14
 
11
- - **多种动画效果**: 彩虹、波浪、脉冲、打字机等动画
12
- - **渐变文字**: 支持多种颜色渐变效果
13
- - **加载动画**: 自定义加载动画和进度条
14
- - **系统信息显示**: 实时显示系统状态和性能
15
+ </div>
15
16
 
16
- ### 🚀 丰富的交互体验
17
+ ---
18
+
19
+ ## ✨ 特性
20
+
21
+ - 🚀 **极简设计** - 移除冗余,专注核心功能
22
+ - ⚡ **即时启动** - 无加载动画,快速响应
23
+ - 🎨 **智能UI** - Logo和文档查看支持优雅降级
24
+ - 📦 **TypeScript** - 完整类型安全,严格模式
25
+ - 🔧 **模块化** - 清晰的架构,易于维护
26
+ - 🌐 **现代化** - ES2022、async/await、ES Modules
27
+
28
+ ## 🎯 核心功能
17
29
 
18
- - **分类菜单**: 官方网站、技术支持、学习资源、社区交流等
19
- - **子菜单系统**: 每个分类都有详细的子菜单
20
- - **确认对话框**: 重要操作前的确认提示
21
- - **输入提示**: 支持文本和密码输入
30
+ ### 📅 近期活动
31
+ ICS 日历获取并展示社团未来30天的活动安排
22
32
 
23
- ### 📊 系统监控
33
+ ### 🔧 维修服务
34
+ 快速访问 NBTCA 电脑维修和软件安装服务
24
35
 
25
- - **实时系统信息**: CPU、内存、平台信息
26
- - **网络状态**: 连接状态和服务可用性
27
- - **性能指标**: 系统性能评估和建议
36
+ ### 📚 知识库
37
+ 在终端查看技术文档(Markdown 渲染),失败时自动打开浏览器
28
38
 
29
- ### 🔧 技术支持服务
39
+ ### 🌐 官方网站
40
+ 一键访问 NBTCA 主页和 GitHub 组织
30
41
 
31
- - **电脑维修**: 硬件和软件问题解决
32
- - **网络配置**: 网络连接和配置服务
33
- - **移动设备**: 手机和平板电脑支持
34
- - **服务预约**: 在线预约系统
42
+ ### ℹ️ 关于
43
+ 查看项目信息、版本号和功能特性
35
44
 
36
- ## 🚀 快速开始
45
+ ## 📦 安装
37
46
 
38
- ### 安装
47
+ ### 全局安装(推荐)
39
48
 
40
49
  ```bash
41
- npm install @nbtca/welcome
50
+ npm install -g @nbtca/prompt
42
51
  ```
43
52
 
44
- ### 使用
53
+ ### 使用 npx(无需安装)
45
54
 
46
55
  ```bash
47
- # 推荐方式
48
- npx @nbtca/welcome
56
+ npx @nbtca/prompt
57
+ ```
49
58
 
50
- # 或本地运行
51
- npm start
59
+ ## 🚀 使用
52
60
 
53
- # 开发模式(自动重启)
54
- npm run dev
61
+ 安装后,使用以下命令之一启动:
62
+
63
+ ```bash
64
+ nbtca # 简短命令
65
+ nbtca-welcome # 完整命令
55
66
  ```
56
67
 
57
- ## 📁 项目结构
68
+ ### 界面预览
58
69
 
59
70
  ```
60
- .
61
- ├── bin/
62
- └── nbtca-welcome.js # CLI 入口点
63
- ├── src/
64
- ├── index.js # 主入口文件
65
- │ ├── main.js # 核心应用逻辑
66
- │ ├── logo/ # ASCII Logo 相关
67
- │ │ ├── printLogo.js
68
- │ │ └── logo.txt # 终端图像数据
69
- │ ├── gradient/ # 渐变文字效果
70
- │ │ └── printGradientText.js
71
- │ ├── animation/ # 动画效果
72
- │ │ ├── printLolcatAnimated.js
73
- │ │ └── loadingAnimation.js
74
- │ ├── ui/ # 用户界面组件
75
- │ │ ├── welcomeBanner.js
76
- │ │ └── systemInfo.js
77
- │ └── menu/ # 交互菜单
78
- │ ├── showMainMenu.js
79
- │ ├── handleUserAction.js
80
- │ └── subMenu.js
81
- ├── assets/
82
- │ └── Prompt_demo.gif # 演示动画
83
- └── package.json
71
+ ███╗ ██╗██████╗ ████████╗ ██████╗ █████╗
72
+ ████╗ ██║██╔══██╗╚══██╔══╝██╔════╝██╔══██╗
73
+ ██╔██╗ ██║██████╔╝ ██║ ██║ ███████║
74
+ ██║╚██╗██║██╔══██╗ ██║ ██║ ██╔══██║
75
+ ██║ ╚████║██████╔╝ ██║ ╚██████╗██║ ██║
76
+ ╚═╝ ╚═══╝╚═════╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
77
+
78
+ 浙大宁波理工学院计算机协会
79
+
80
+ ──────────────── Prompt v1.0.0 ────────────────
81
+
82
+ ? 请选择功能:
83
+ › 近期活动 查看最近30天的社团活动
84
+ 维修服务 电脑维修、软件安装
85
+ 知识库 技术文档、教程资源
86
+ 官方网站 访问NBTCA主页
87
+ GitHub 开源项目与代码
88
+ 关于 项目信息与帮助
89
+ ───────────────────────────────────────
90
+ 退出
84
91
  ```
85
92
 
86
- ## 🎯 主要功能
87
-
88
- ### 🌐 官方网站服务
89
-
90
- - 🏠 官方网站主页
91
- - 📰 新闻资讯
92
- - 📅 活动日历
93
- - 👥 团队介绍
94
- - 📞 联系我们
93
+ ## 🏗️ 项目架构
95
94
 
96
- ### 🔧 技术支持服务
97
-
98
- - 💻 电脑硬件维修
99
- - 🔧 软件问题解决
100
- - 🌐 网络配置服务
101
- - 📱 移动设备支持
102
- - 🛠️ 硬件升级咨询
103
- - 📋 服务预约
104
-
105
- ### 📚 学习资源中心
95
+ ```
96
+ src/
97
+ ├── config/ # 配置文件
98
+ │ ├── data.ts # URL和应用信息常量
99
+ │ └── theme.ts # 颜色主题定义
100
+
101
+ ├── core/ # 核心模块
102
+ │ ├── logo.ts # 智能Logo显示(iTerm2图片 → ASCII降级)
103
+ │ ├── menu.ts # 主菜单系统
104
+ │ └── ui.ts # UI组件库
105
+
106
+ ├── features/ # 功能模块
107
+ │ ├── calendar.ts # ICS日历集成
108
+ │ ├── docs.ts # 知识库终端查看
109
+ │ ├── repair.ts # 维修服务访问
110
+ │ └── website.ts # 官网和GitHub访问
111
+
112
+ ├── logo/
113
+ │ ├── logo.txt # iTerm2图片格式
114
+ │ └── ascii-logo.txt # ASCII艺术字
115
+
116
+ ├── index.ts # 程序入口
117
+ ├── main.ts # 主逻辑
118
+ └── types.ts # TypeScript类型定义
119
+ ```
106
120
 
107
- - 📚 技术文档
108
- - 🎥 视频教程
109
- - 💡 编程学习
110
- - 🎨 设计资源
111
- - 🔬 学术研究
112
- - 📖 推荐书籍
121
+ ## 🛠️ 技术栈
113
122
 
114
- ### 👥 社区交流
123
+ ### 核心依赖
115
124
 
116
- - 💬 技术交流群
117
- - 📢 官方QQ群
118
- - 🐙 GitHub组织
119
- - 📱 微信公众号
120
- - 🎯 项目合作
121
- - 🏆 竞赛信息
125
+ | 包名 | 用途 |
126
+ |------|------|
127
+ | `axios` | HTTP请求(获取日历和文档) |
128
+ | `ical.js` | ICS日历解析 |
129
+ | `marked` + `marked-terminal` | Markdown终端渲染 |
130
+ | `chalk` | 终端颜色输出 |
131
+ | `inquirer` | 交互式菜单 |
132
+ | `open` | 打开浏览器 |
122
133
 
123
- ### ⚙️ 系统设置
134
+ ### 开发依赖
124
135
 
125
- - 🎨 主题设置
126
- - 🌐 网络配置
127
- - 📊 性能监控
128
- - 🔔 通知设置
129
- - 🔄 检查更新
136
+ - **TypeScript 5.3+** - 严格类型检查
137
+ - **tsx** - TypeScript执行和热重载
138
+ - **@types/\*** - 类型定义
130
139
 
131
- ## 🛠️ 技术栈
140
+ ## 💻 开发
132
141
 
133
- - **Node.js** (ES Modules)
134
- - **inquirer** - 交互式命令行界面
135
- - **chalk** - 终端颜色输出
136
- - **isomorphic-lolcat** - 彩虹色动画效果
137
- - **open** - 打开系统默认浏览器
138
- - **boxen** - 创建边框效果
142
+ ### 克隆仓库
139
143
 
140
- ## 🎨 动画效果
144
+ ```bash
145
+ git clone https://github.com/nbtca/prompt.git
146
+ cd prompt
147
+ ```
141
148
 
142
- ### 彩虹动画
149
+ ### 安装依赖
143
150
 
144
- ```javascript
145
- await printLolcatAnimated("Hello World!", {
146
- duration: 2000,
147
- fps: 30,
148
- effect: "rainbow",
149
- });
151
+ ```bash
152
+ npm install
150
153
  ```
151
154
 
152
- ### 波浪动画
155
+ ### 开发模式(带热重载)
153
156
 
154
- ```javascript
155
- await printLolcatAnimated("Hello World!", {
156
- effect: "wave",
157
- });
157
+ ```bash
158
+ npm run dev
158
159
  ```
159
160
 
160
- ### 脉冲动画
161
+ ### 构建
161
162
 
162
- ```javascript
163
- await printLolcatAnimated("Hello World!", {
164
- effect: "pulse",
165
- });
163
+ ```bash
164
+ npm run build
166
165
  ```
167
166
 
168
- ### 打字机效果
167
+ 构建产物将输出到 `dist/` 目录。
169
168
 
170
- ```javascript
171
- await printLolcatAnimated("Hello World!", {
172
- effect: "typewriter",
173
- });
169
+ ### 本地测试
170
+
171
+ ```bash
172
+ npm start
174
173
  ```
175
174
 
176
175
  ## 📊 系统要求
177
176
 
178
177
  - **Node.js**: >= 16.0.0
179
178
  - **操作系统**: Windows, macOS, Linux
180
- - **终端**: 支持 ANSI 转义序列的终端
179
+ - **终端**: 支持 ANSI 转义序列
181
180
 
182
- ## 🔧 开发
181
+ 推荐使用现代终端:
182
+ - macOS: iTerm2, Terminal.app
183
+ - Windows: Windows Terminal, PowerShell
184
+ - Linux: GNOME Terminal, Konsole
183
185
 
184
- ### 安装依赖
186
+ ## 🎨 设计理念
185
187
 
186
- ```bash
187
- npm install
188
- ```
188
+ ### 极简主义
189
189
 
190
- ### 运行开发模式
190
+ - ❌ 移除所有不必要的动画和装饰
191
+ - ✅ 保留核心功能,优化用户体验
192
+ - 📊 代码量减少 65%(从 4,966 行到 1,760 行)
191
193
 
192
- ```bash
193
- npm run dev
194
- ```
194
+ ### 优雅降级
195
195
 
196
- ### 构建
196
+ - **Logo显示**: iTerm2 图片 → ASCII 艺术字 → 纯文本
197
+ - **文档查看**: 终端 Markdown 渲染 → 浏览器打开
198
+ - **错误处理**: 友好提示,永不崩溃
197
199
 
198
- ```bash
199
- npm run build
200
- ```
200
+ ### 类型安全
201
+
202
+ - 全项目 TypeScript 严格模式
203
+ - 完整的接口和类型定义
204
+ - 编译时错误捕获
201
205
 
202
206
  ## 📝 更新日志
203
207
 
204
- ### v2.3.0
208
+ ### v1.0.0 (2025-11-21)
209
+
210
+ **重大变更**:
211
+ - 🔄 完整 TypeScript 重构
212
+ - 🎨 极简 UI 重新设计
213
+ - 📦 包名更改为 `@nbtca/prompt`
214
+ - 📉 代码量减少 65%
215
+
216
+ **新功能**:
217
+ - 📅 ICS 日历集成(从 ical.nbtca.space 获取活动)
218
+ - 📚 终端 Markdown 渲染器(查看知识库文档)
219
+ - 🎯 智能 Logo 显示(支持降级)
220
+ - 🚀 即时启动(移除所有加载动画)
205
221
 
206
- - ✨ 新增多种动画效果
207
- - 🎨 增强的渐变文字功能
208
- - 📊 实时系统信息显示
209
- - 🚀 分类菜单系统
210
- - 🔧 丰富的技术支持服务
211
- - 📚 学习资源中心
212
- - 👥 社区交流功能
213
- - ⚙️ 系统设置选项
222
+ **技术改进**:
223
+ - TypeScript 5.3+ 严格模式
224
+ - ES2022 模块系统
225
+ - 模块化架构(core/, features/, config/)
226
+ - 改进的 CI/CD(多版本测试,npm provenance)
214
227
 
215
- ### v2.2.0
228
+ ### v2.3.1 及更早版本
216
229
 
217
- - 🎨 基础动画效果
218
- - 🌐 官方网站访问
219
- - 🔧 维修服务
230
+ [CHANGELOG](https://github.com/nbtca/prompt/releases) 了解历史版本。
220
231
 
221
232
  ## 🤝 贡献
222
233
 
223
- 欢迎提交 Issue 和 Pull Request!
234
+ 欢迎贡献代码!请遵循以下步骤:
235
+
236
+ 1. Fork 本仓库
237
+ 2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
238
+ 3. 提交更改 (`git commit -m 'Add amazing feature'`)
239
+ 4. 推送到分支 (`git push origin feature/amazing-feature`)
240
+ 5. 创建 Pull Request
241
+
242
+ ### 开发规范
243
+
244
+ - 使用 TypeScript 严格模式
245
+ - 遵循现有代码风格
246
+ - 添加适当的注释
247
+ - 确保构建通过 (`npm run build`)
224
248
 
225
249
  ## 📄 许可证
226
250
 
227
- MIT License
251
+ [MIT License](LICENSE)
228
252
 
229
253
  ## 📞 联系我们
230
254
 
231
- - 🌐 官网: https://nbtca.space/
232
- - 📧 邮箱: contact@m1ng.space
233
- - 🐙 GitHub: https://github.com/nbtca
255
+ - 🌐 **官网**: https://nbtca.space
256
+ - 📧 **邮箱**: contact@nbtca.space
257
+ - 🐙 **GitHub**: https://github.com/nbtca
258
+ - 📦 **NPM**: https://www.npmjs.com/package/@nbtca/prompt
259
+
260
+ ## 🙏 致谢
261
+
262
+ 感谢所有为 NBTCA Prompt 做出贡献的开发者!
234
263
 
235
264
  ---
265
+
266
+ <div align="center">
267
+
268
+ **[⬆ 回到顶部](#nbtca-prompt)**
269
+
270
+ Made with ❤️ by [NBTCA](https://nbtca.space)
271
+
272
+ </div>
@@ -1 +1 @@
1
- {"version":3,"file":"logo.d.ts","sourceRoot":"","sources":["../../src/core/logo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAkC/C"}
1
+ {"version":3,"file":"logo.d.ts","sourceRoot":"","sources":["../../src/core/logo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwDH;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAmC/C"}