@nbtca/prompt 1.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/.github/workflows/ci.yml +40 -0
- package/.github/workflows/publish.yml +59 -0
- package/DATA_MANAGEMENT.md +409 -0
- package/LICENSE +21 -0
- package/README.md +235 -0
- package/assets/Prompt_demo.gif +0 -0
- package/bin/nbtca-welcome.js +2 -0
- package/dist/config/data.d.ts +22 -0
- package/dist/config/data.d.ts.map +1 -0
- package/dist/config/data.js +25 -0
- package/dist/config/data.js.map +1 -0
- package/dist/config/theme.d.ts +23 -0
- package/dist/config/theme.d.ts.map +1 -0
- package/dist/config/theme.js +25 -0
- package/dist/config/theme.js.map +1 -0
- package/dist/core/logo.d.ts +9 -0
- package/dist/core/logo.d.ts.map +1 -0
- package/dist/core/logo.js +71 -0
- package/dist/core/logo.js.map +1 -0
- package/dist/core/menu.d.ts +9 -0
- package/dist/core/menu.d.ts.map +1 -0
- package/dist/core/menu.js +153 -0
- package/dist/core/menu.js.map +1 -0
- package/dist/core/ui.d.ts +49 -0
- package/dist/core/ui.d.ts.map +1 -0
- package/dist/core/ui.js +95 -0
- package/dist/core/ui.js.map +1 -0
- package/dist/features/calendar.d.ts +27 -0
- package/dist/features/calendar.d.ts.map +1 -0
- package/dist/features/calendar.js +121 -0
- package/dist/features/calendar.js.map +1 -0
- package/dist/features/docs.d.ts +21 -0
- package/dist/features/docs.d.ts.map +1 -0
- package/dist/features/docs.js +109 -0
- package/dist/features/docs.js.map +1 -0
- package/dist/features/repair.d.ts +9 -0
- package/dist/features/repair.d.ts.map +1 -0
- package/dist/features/repair.js +37 -0
- package/dist/features/repair.js.map +1 -0
- package/dist/features/website.d.ts +17 -0
- package/dist/features/website.d.ts.map +1 -0
- package/dist/features/website.js +39 -0
- package/dist/features/website.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/logo/ascii-logo.txt +6 -0
- package/dist/logo/logo.txt +2 -0
- package/dist/main.d.ts +9 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +36 -0
- package/dist/main.js.map +1 -0
- package/dist/types.d.ts +48 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +64 -0
- package/src/config/data.js +484 -0
- package/src/config/data.ts +28 -0
- package/src/config/theme.js +138 -0
- package/src/config/theme.ts +26 -0
- package/src/core/logo.ts +80 -0
- package/src/core/menu.ts +165 -0
- package/src/core/ui.ts +119 -0
- package/src/features/calendar.ts +153 -0
- package/src/features/docs.ts +120 -0
- package/src/features/repair.ts +40 -0
- package/src/features/website.ts +43 -0
- package/src/index.ts +9 -0
- package/src/logo/ascii-logo.txt +6 -0
- package/src/logo/logo.txt +2 -0
- package/src/logo/printLogo.js +26 -0
- package/src/main.ts +39 -0
- package/src/types.ts +51 -0
- package/tsconfig.json +53 -0
package/README.md
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# NBTCA Welcome v2.3.0
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
> 为浙大宁波理工学院计算机协会打造的专业欢迎工具
|
|
6
|
+
|
|
7
|
+
## ✨ 新功能特性
|
|
8
|
+
|
|
9
|
+
### 🎨 增强的视觉效果
|
|
10
|
+
|
|
11
|
+
- **多种动画效果**: 彩虹、波浪、脉冲、打字机等动画
|
|
12
|
+
- **渐变文字**: 支持多种颜色渐变效果
|
|
13
|
+
- **加载动画**: 自定义加载动画和进度条
|
|
14
|
+
- **系统信息显示**: 实时显示系统状态和性能
|
|
15
|
+
|
|
16
|
+
### 🚀 丰富的交互体验
|
|
17
|
+
|
|
18
|
+
- **分类菜单**: 官方网站、技术支持、学习资源、社区交流等
|
|
19
|
+
- **子菜单系统**: 每个分类都有详细的子菜单
|
|
20
|
+
- **确认对话框**: 重要操作前的确认提示
|
|
21
|
+
- **输入提示**: 支持文本和密码输入
|
|
22
|
+
|
|
23
|
+
### 📊 系统监控
|
|
24
|
+
|
|
25
|
+
- **实时系统信息**: CPU、内存、平台信息
|
|
26
|
+
- **网络状态**: 连接状态和服务可用性
|
|
27
|
+
- **性能指标**: 系统性能评估和建议
|
|
28
|
+
|
|
29
|
+
### 🔧 技术支持服务
|
|
30
|
+
|
|
31
|
+
- **电脑维修**: 硬件和软件问题解决
|
|
32
|
+
- **网络配置**: 网络连接和配置服务
|
|
33
|
+
- **移动设备**: 手机和平板电脑支持
|
|
34
|
+
- **服务预约**: 在线预约系统
|
|
35
|
+
|
|
36
|
+
## 🚀 快速开始
|
|
37
|
+
|
|
38
|
+
### 安装
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install @nbtca/welcome
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 使用
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 推荐方式
|
|
48
|
+
npx @nbtca/welcome
|
|
49
|
+
|
|
50
|
+
# 或本地运行
|
|
51
|
+
npm start
|
|
52
|
+
|
|
53
|
+
# 开发模式(自动重启)
|
|
54
|
+
npm run dev
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 📁 项目结构
|
|
58
|
+
|
|
59
|
+
```
|
|
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
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## 🎯 主要功能
|
|
87
|
+
|
|
88
|
+
### 🌐 官方网站服务
|
|
89
|
+
|
|
90
|
+
- 🏠 官方网站主页
|
|
91
|
+
- 📰 新闻资讯
|
|
92
|
+
- 📅 活动日历
|
|
93
|
+
- 👥 团队介绍
|
|
94
|
+
- 📞 联系我们
|
|
95
|
+
|
|
96
|
+
### 🔧 技术支持服务
|
|
97
|
+
|
|
98
|
+
- 💻 电脑硬件维修
|
|
99
|
+
- 🔧 软件问题解决
|
|
100
|
+
- 🌐 网络配置服务
|
|
101
|
+
- 📱 移动设备支持
|
|
102
|
+
- 🛠️ 硬件升级咨询
|
|
103
|
+
- 📋 服务预约
|
|
104
|
+
|
|
105
|
+
### 📚 学习资源中心
|
|
106
|
+
|
|
107
|
+
- 📚 技术文档
|
|
108
|
+
- 🎥 视频教程
|
|
109
|
+
- 💡 编程学习
|
|
110
|
+
- 🎨 设计资源
|
|
111
|
+
- 🔬 学术研究
|
|
112
|
+
- 📖 推荐书籍
|
|
113
|
+
|
|
114
|
+
### 👥 社区交流
|
|
115
|
+
|
|
116
|
+
- 💬 技术交流群
|
|
117
|
+
- 📢 官方QQ群
|
|
118
|
+
- 🐙 GitHub组织
|
|
119
|
+
- 📱 微信公众号
|
|
120
|
+
- 🎯 项目合作
|
|
121
|
+
- 🏆 竞赛信息
|
|
122
|
+
|
|
123
|
+
### ⚙️ 系统设置
|
|
124
|
+
|
|
125
|
+
- 🎨 主题设置
|
|
126
|
+
- 🌐 网络配置
|
|
127
|
+
- 📊 性能监控
|
|
128
|
+
- 🔔 通知设置
|
|
129
|
+
- 🔄 检查更新
|
|
130
|
+
|
|
131
|
+
## 🛠️ 技术栈
|
|
132
|
+
|
|
133
|
+
- **Node.js** (ES Modules)
|
|
134
|
+
- **inquirer** - 交互式命令行界面
|
|
135
|
+
- **chalk** - 终端颜色输出
|
|
136
|
+
- **isomorphic-lolcat** - 彩虹色动画效果
|
|
137
|
+
- **open** - 打开系统默认浏览器
|
|
138
|
+
- **boxen** - 创建边框效果
|
|
139
|
+
|
|
140
|
+
## 🎨 动画效果
|
|
141
|
+
|
|
142
|
+
### 彩虹动画
|
|
143
|
+
|
|
144
|
+
```javascript
|
|
145
|
+
await printLolcatAnimated("Hello World!", {
|
|
146
|
+
duration: 2000,
|
|
147
|
+
fps: 30,
|
|
148
|
+
effect: "rainbow",
|
|
149
|
+
});
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### 波浪动画
|
|
153
|
+
|
|
154
|
+
```javascript
|
|
155
|
+
await printLolcatAnimated("Hello World!", {
|
|
156
|
+
effect: "wave",
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 脉冲动画
|
|
161
|
+
|
|
162
|
+
```javascript
|
|
163
|
+
await printLolcatAnimated("Hello World!", {
|
|
164
|
+
effect: "pulse",
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 打字机效果
|
|
169
|
+
|
|
170
|
+
```javascript
|
|
171
|
+
await printLolcatAnimated("Hello World!", {
|
|
172
|
+
effect: "typewriter",
|
|
173
|
+
});
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## 📊 系统要求
|
|
177
|
+
|
|
178
|
+
- **Node.js**: >= 16.0.0
|
|
179
|
+
- **操作系统**: Windows, macOS, Linux
|
|
180
|
+
- **终端**: 支持 ANSI 转义序列的终端
|
|
181
|
+
|
|
182
|
+
## 🔧 开发
|
|
183
|
+
|
|
184
|
+
### 安装依赖
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
npm install
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 运行开发模式
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
npm run dev
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### 构建
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npm run build
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## 📝 更新日志
|
|
203
|
+
|
|
204
|
+
### v2.3.0
|
|
205
|
+
|
|
206
|
+
- ✨ 新增多种动画效果
|
|
207
|
+
- 🎨 增强的渐变文字功能
|
|
208
|
+
- 📊 实时系统信息显示
|
|
209
|
+
- 🚀 分类菜单系统
|
|
210
|
+
- 🔧 丰富的技术支持服务
|
|
211
|
+
- 📚 学习资源中心
|
|
212
|
+
- 👥 社区交流功能
|
|
213
|
+
- ⚙️ 系统设置选项
|
|
214
|
+
|
|
215
|
+
### v2.2.0
|
|
216
|
+
|
|
217
|
+
- 🎨 基础动画效果
|
|
218
|
+
- 🌐 官方网站访问
|
|
219
|
+
- 🔧 维修服务
|
|
220
|
+
|
|
221
|
+
## 🤝 贡献
|
|
222
|
+
|
|
223
|
+
欢迎提交 Issue 和 Pull Request!
|
|
224
|
+
|
|
225
|
+
## 📄 许可证
|
|
226
|
+
|
|
227
|
+
MIT License
|
|
228
|
+
|
|
229
|
+
## 📞 联系我们
|
|
230
|
+
|
|
231
|
+
- 🌐 官网: https://nbtca.space/
|
|
232
|
+
- 📧 邮箱: contact@m1ng.space
|
|
233
|
+
- 🐙 GitHub: https://github.com/nbtca
|
|
234
|
+
|
|
235
|
+
---
|
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 核心URL配置
|
|
3
|
+
* 集中管理所有外部链接
|
|
4
|
+
*/
|
|
5
|
+
export declare const URLS: {
|
|
6
|
+
readonly homepage: "https://nbtca.space";
|
|
7
|
+
readonly github: "https://github.com/nbtca";
|
|
8
|
+
readonly docs: "https://docs.nbtca.space";
|
|
9
|
+
readonly repair: "https://nbtca.space/repair";
|
|
10
|
+
readonly calendar: "https://ical.nbtca.space";
|
|
11
|
+
readonly email: "contact@nbtca.space";
|
|
12
|
+
};
|
|
13
|
+
export declare const APP_INFO: {
|
|
14
|
+
readonly name: "Prompt";
|
|
15
|
+
readonly version: "1.0.0";
|
|
16
|
+
readonly description: "浙大宁波理工学院计算机协会";
|
|
17
|
+
readonly fullDescription: "NBTCA Prompt - 极简命令行工具";
|
|
18
|
+
readonly author: "m1ngsama <contact@m1ng.space>";
|
|
19
|
+
readonly license: "MIT";
|
|
20
|
+
readonly repository: "https://github.com/nbtca/prompt";
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/config/data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,IAAI;;;;;;;CAYP,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 核心URL配置
|
|
3
|
+
* 集中管理所有外部链接
|
|
4
|
+
*/
|
|
5
|
+
export const URLS = {
|
|
6
|
+
// 主要链接
|
|
7
|
+
homepage: 'https://nbtca.space',
|
|
8
|
+
github: 'https://github.com/nbtca',
|
|
9
|
+
docs: 'https://docs.nbtca.space',
|
|
10
|
+
repair: 'https://nbtca.space/repair',
|
|
11
|
+
// API链接
|
|
12
|
+
calendar: 'https://ical.nbtca.space',
|
|
13
|
+
// 联系方式
|
|
14
|
+
email: 'contact@nbtca.space'
|
|
15
|
+
};
|
|
16
|
+
export const APP_INFO = {
|
|
17
|
+
name: 'Prompt',
|
|
18
|
+
version: '1.0.0',
|
|
19
|
+
description: '浙大宁波理工学院计算机协会',
|
|
20
|
+
fullDescription: 'NBTCA Prompt - 极简命令行工具',
|
|
21
|
+
author: 'm1ngsama <contact@m1ng.space>',
|
|
22
|
+
license: 'MIT',
|
|
23
|
+
repository: 'https://github.com/nbtca/prompt'
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/config/data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,OAAO;IACP,QAAQ,EAAE,qBAAqB;IAC/B,MAAM,EAAE,0BAA0B;IAClC,IAAI,EAAE,0BAA0B;IAChC,MAAM,EAAE,4BAA4B;IAEpC,QAAQ;IACR,QAAQ,EAAE,0BAA0B;IAEpC,OAAO;IACP,KAAK,EAAE,qBAAqB;CACpB,CAAC;AAEX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,eAAe;IAC5B,eAAe,EAAE,wBAAwB;IACzC,MAAM,EAAE,+BAA+B;IACvC,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,iCAAiC;CACrC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 极简主题配置
|
|
3
|
+
* 只保留基础颜色定义
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 基础颜色常量
|
|
7
|
+
*/
|
|
8
|
+
export declare const COLORS: {
|
|
9
|
+
readonly cyan: "#00bcd4";
|
|
10
|
+
readonly blue: "#2196f3";
|
|
11
|
+
readonly green: "#4caf50";
|
|
12
|
+
readonly yellow: "#ffeb3b";
|
|
13
|
+
readonly red: "#f44336";
|
|
14
|
+
readonly gray: "#9e9e9e";
|
|
15
|
+
readonly white: "#ffffff";
|
|
16
|
+
readonly primary: "#00bcd4";
|
|
17
|
+
readonly success: "#4caf50";
|
|
18
|
+
readonly warning: "#ffeb3b";
|
|
19
|
+
readonly error: "#f44336";
|
|
20
|
+
readonly info: "#2196f3";
|
|
21
|
+
readonly muted: "#9e9e9e";
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/config/theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;CAiBT,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 极简主题配置
|
|
3
|
+
* 只保留基础颜色定义
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 基础颜色常量
|
|
7
|
+
*/
|
|
8
|
+
export const COLORS = {
|
|
9
|
+
// 主题色
|
|
10
|
+
cyan: '#00bcd4',
|
|
11
|
+
blue: '#2196f3',
|
|
12
|
+
green: '#4caf50',
|
|
13
|
+
yellow: '#ffeb3b',
|
|
14
|
+
red: '#f44336',
|
|
15
|
+
gray: '#9e9e9e',
|
|
16
|
+
white: '#ffffff',
|
|
17
|
+
// 语义色
|
|
18
|
+
primary: '#00bcd4',
|
|
19
|
+
success: '#4caf50',
|
|
20
|
+
warning: '#ffeb3b',
|
|
21
|
+
error: '#f44336',
|
|
22
|
+
info: '#2196f3',
|
|
23
|
+
muted: '#9e9e9e'
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/config/theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM;IACN,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAEhB,MAAM;IACN,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;CACR,CAAC"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 智能Logo显示模块
|
|
3
|
+
* 尝试显示iTerm2图片格式logo,失败则降级到ASCII艺术字
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync } from 'fs';
|
|
6
|
+
import { fileURLToPath } from 'url';
|
|
7
|
+
import { dirname, join } from 'path';
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
+
const __dirname = dirname(__filename);
|
|
11
|
+
/**
|
|
12
|
+
* 计算字符串的实际显示宽度(考虑中文字符)
|
|
13
|
+
*/
|
|
14
|
+
function getDisplayWidth(str) {
|
|
15
|
+
let width = 0;
|
|
16
|
+
for (const char of str) {
|
|
17
|
+
// 中文字符、全角符号等占2个宽度
|
|
18
|
+
width += char.charCodeAt(0) > 127 ? 2 : 1;
|
|
19
|
+
}
|
|
20
|
+
return width;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 尝试读取并显示logo文件
|
|
24
|
+
*/
|
|
25
|
+
export async function printLogo() {
|
|
26
|
+
try {
|
|
27
|
+
// 尝试读取iTerm2图片格式logo
|
|
28
|
+
const logoPath = join(__dirname, '../logo/logo.txt');
|
|
29
|
+
const logoContent = readFileSync(logoPath, 'utf-8');
|
|
30
|
+
// 如果成功读取且内容有效,直接显示
|
|
31
|
+
if (logoContent && logoContent.length > 100) {
|
|
32
|
+
console.log(logoContent);
|
|
33
|
+
printDescription();
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
// iTerm2 logo读取失败,继续尝试ASCII logo
|
|
39
|
+
}
|
|
40
|
+
// 降级:显示ASCII艺术字logo
|
|
41
|
+
try {
|
|
42
|
+
const asciiLogoPath = join(__dirname, '../logo/ascii-logo.txt');
|
|
43
|
+
const asciiContent = readFileSync(asciiLogoPath, 'utf-8');
|
|
44
|
+
// 使用cyan颜色显示ASCII logo,不居中(ASCII艺术本身已经设计好)
|
|
45
|
+
console.log();
|
|
46
|
+
const lines = asciiContent.split('\n').filter(line => line.trim());
|
|
47
|
+
lines.forEach(line => {
|
|
48
|
+
console.log(chalk.cyan(line));
|
|
49
|
+
});
|
|
50
|
+
printDescription();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
// 如果ASCII logo也失败,显示简单的文本logo
|
|
54
|
+
console.log(chalk.cyan.bold('\n NBTCA'));
|
|
55
|
+
printDescription();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 显示描述文字
|
|
60
|
+
*/
|
|
61
|
+
function printDescription() {
|
|
62
|
+
const description = '浙大宁波理工学院计算机协会';
|
|
63
|
+
const terminalWidth = process.stdout.columns || 80;
|
|
64
|
+
// 计算实际显示宽度
|
|
65
|
+
const displayWidth = getDisplayWidth(description);
|
|
66
|
+
const padding = Math.max(0, Math.floor((terminalWidth - displayWidth) / 2));
|
|
67
|
+
console.log();
|
|
68
|
+
console.log(' '.repeat(padding) + chalk.gray(description));
|
|
69
|
+
console.log();
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logo.js","sourceRoot":"","sources":["../../src/core/logo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/core/menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyDH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAuClD"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 极简菜单系统
|
|
3
|
+
* 6大核心功能菜单
|
|
4
|
+
*/
|
|
5
|
+
import inquirer from 'inquirer';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import { showCalendar } from '../features/calendar.js';
|
|
8
|
+
import { openRepairService } from '../features/repair.js';
|
|
9
|
+
import { showDocsMenu } from '../features/docs.js';
|
|
10
|
+
import { openHomepage, openGithub } from '../features/website.js';
|
|
11
|
+
import { printDivider, printNewLine } from './ui.js';
|
|
12
|
+
import { APP_INFO, URLS } from '../config/data.js';
|
|
13
|
+
/**
|
|
14
|
+
* 主菜单选项
|
|
15
|
+
*/
|
|
16
|
+
const MAIN_MENU = [
|
|
17
|
+
{
|
|
18
|
+
name: chalk.cyan('› ') + chalk.white('近期活动 ') + chalk.gray('查看最近30天的社团活动'),
|
|
19
|
+
value: 'events',
|
|
20
|
+
short: '近期活动'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: chalk.cyan('› ') + chalk.white('维修服务 ') + chalk.gray('电脑维修、软件安装'),
|
|
24
|
+
value: 'repair',
|
|
25
|
+
short: '维修服务'
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: chalk.cyan('› ') + chalk.white('知识库 ') + chalk.gray('技术文档、教程资源'),
|
|
29
|
+
value: 'docs',
|
|
30
|
+
short: '知识库'
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: chalk.cyan('› ') + chalk.white('官方网站 ') + chalk.gray('访问NBTCA主页'),
|
|
34
|
+
value: 'website',
|
|
35
|
+
short: '官方网站'
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: chalk.cyan('› ') + chalk.white('GitHub ') + chalk.gray('开源项目与代码'),
|
|
39
|
+
value: 'github',
|
|
40
|
+
short: 'GitHub'
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: chalk.cyan('› ') + chalk.white('关于 ') + chalk.gray('项目信息与帮助'),
|
|
44
|
+
value: 'about',
|
|
45
|
+
short: '关于'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: chalk.gray('─'.repeat(50)),
|
|
49
|
+
value: 'separator',
|
|
50
|
+
disabled: true
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: chalk.red('› ') + chalk.white('退出'),
|
|
54
|
+
value: 'exit',
|
|
55
|
+
short: '退出'
|
|
56
|
+
}
|
|
57
|
+
];
|
|
58
|
+
/**
|
|
59
|
+
* 显示主菜单
|
|
60
|
+
*/
|
|
61
|
+
export async function showMainMenu() {
|
|
62
|
+
while (true) {
|
|
63
|
+
try {
|
|
64
|
+
const { action } = await inquirer.prompt([
|
|
65
|
+
{
|
|
66
|
+
type: 'list',
|
|
67
|
+
name: 'action',
|
|
68
|
+
message: chalk.bold('请选择功能:'),
|
|
69
|
+
choices: MAIN_MENU,
|
|
70
|
+
pageSize: 15,
|
|
71
|
+
loop: false
|
|
72
|
+
}
|
|
73
|
+
]);
|
|
74
|
+
// 处理用户选择
|
|
75
|
+
if (action === 'exit') {
|
|
76
|
+
console.log();
|
|
77
|
+
console.log(chalk.cyan('再见!感谢使用NBTCA工具'));
|
|
78
|
+
console.log();
|
|
79
|
+
process.exit(0);
|
|
80
|
+
}
|
|
81
|
+
await handleAction(action);
|
|
82
|
+
// 操作完成后显示分隔线
|
|
83
|
+
printNewLine();
|
|
84
|
+
printDivider();
|
|
85
|
+
printNewLine();
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
// 处理Ctrl+C退出
|
|
89
|
+
if (err.message?.includes('User force closed')) {
|
|
90
|
+
console.log();
|
|
91
|
+
console.log(chalk.cyan('再见!'));
|
|
92
|
+
console.log();
|
|
93
|
+
process.exit(0);
|
|
94
|
+
}
|
|
95
|
+
throw err;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 处理用户操作
|
|
101
|
+
*/
|
|
102
|
+
async function handleAction(action) {
|
|
103
|
+
switch (action) {
|
|
104
|
+
case 'events':
|
|
105
|
+
await showCalendar();
|
|
106
|
+
break;
|
|
107
|
+
case 'repair':
|
|
108
|
+
await openRepairService();
|
|
109
|
+
break;
|
|
110
|
+
case 'docs':
|
|
111
|
+
await showDocsMenu();
|
|
112
|
+
break;
|
|
113
|
+
case 'website':
|
|
114
|
+
await openHomepage();
|
|
115
|
+
break;
|
|
116
|
+
case 'github':
|
|
117
|
+
await openGithub();
|
|
118
|
+
break;
|
|
119
|
+
case 'about':
|
|
120
|
+
showAbout();
|
|
121
|
+
break;
|
|
122
|
+
default:
|
|
123
|
+
console.log(chalk.gray('未知操作'));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 显示关于信息
|
|
128
|
+
*/
|
|
129
|
+
function showAbout() {
|
|
130
|
+
console.log();
|
|
131
|
+
console.log(chalk.cyan.bold(' 关于 NBTCA'));
|
|
132
|
+
console.log();
|
|
133
|
+
printDivider();
|
|
134
|
+
console.log();
|
|
135
|
+
console.log(chalk.white(' 项目名称: ') + chalk.cyan(APP_INFO.name));
|
|
136
|
+
console.log(chalk.white(' 版本: ') + chalk.cyan(`v${APP_INFO.version}`));
|
|
137
|
+
console.log(chalk.white(' 描述: ') + chalk.gray(APP_INFO.fullDescription));
|
|
138
|
+
console.log();
|
|
139
|
+
console.log(chalk.white(' GitHub: ') + chalk.cyan(APP_INFO.repository));
|
|
140
|
+
console.log(chalk.white(' 官网: ') + chalk.cyan(URLS.homepage));
|
|
141
|
+
console.log(chalk.white(' 邮箱: ') + chalk.cyan(URLS.email));
|
|
142
|
+
console.log();
|
|
143
|
+
console.log(chalk.gray(' 功能特性:'));
|
|
144
|
+
console.log(chalk.gray(' • 查看社团近期活动'));
|
|
145
|
+
console.log(chalk.gray(' • 在线维修服务'));
|
|
146
|
+
console.log(chalk.gray(' • 技术知识库访问'));
|
|
147
|
+
console.log(chalk.gray(' • 快速访问官网和GitHub'));
|
|
148
|
+
console.log();
|
|
149
|
+
console.log(chalk.white(' 开源协议: ') + chalk.cyan('MIT License'));
|
|
150
|
+
console.log(chalk.white(' 作者: ') + chalk.cyan('m1ngsama <contact@m1ng.space>'));
|
|
151
|
+
console.log();
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/core/menu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 极简UI组件库
|
|
3
|
+
* 提供基础的终端UI组件
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 菜单项接口
|
|
7
|
+
*/
|
|
8
|
+
export interface MenuItem {
|
|
9
|
+
name: string;
|
|
10
|
+
value: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 显示顶部边框标题
|
|
15
|
+
*/
|
|
16
|
+
export declare function printHeader(title: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* 显示分隔线
|
|
19
|
+
*/
|
|
20
|
+
export declare function printDivider(): void;
|
|
21
|
+
/**
|
|
22
|
+
* 显示加载spinner
|
|
23
|
+
*/
|
|
24
|
+
export declare function showSpinner(text: string, duration: number): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* 显示成功消息
|
|
27
|
+
*/
|
|
28
|
+
export declare function success(msg: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* 显示错误消息
|
|
31
|
+
*/
|
|
32
|
+
export declare function error(msg: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* 显示信息消息
|
|
35
|
+
*/
|
|
36
|
+
export declare function info(msg: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* 显示警告消息
|
|
39
|
+
*/
|
|
40
|
+
export declare function warning(msg: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* 清屏
|
|
43
|
+
*/
|
|
44
|
+
export declare function clearScreen(): void;
|
|
45
|
+
/**
|
|
46
|
+
* 打印空行
|
|
47
|
+
*/
|
|
48
|
+
export declare function printNewLine(count?: number): void;
|
|
49
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/core/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAcD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAY/C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI,CAIpD"}
|