@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
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 知识库终端查看模块
|
|
3
|
+
* 获取并渲染Markdown文档
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import axios from 'axios';
|
|
7
|
+
import { marked } from 'marked';
|
|
8
|
+
import markedTerminal from 'marked-terminal';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import open from 'open';
|
|
11
|
+
import inquirer from 'inquirer';
|
|
12
|
+
import { error, info, success, warning } from '../core/ui.js';
|
|
13
|
+
|
|
14
|
+
// 配置marked使用终端渲染器
|
|
15
|
+
marked.use(markedTerminal as any);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 文档列表(硬编码常用文档)
|
|
19
|
+
*/
|
|
20
|
+
const DOCS_LIST = [
|
|
21
|
+
{ name: '返回主菜单', value: 'back' },
|
|
22
|
+
{ name: '在浏览器中打开知识库', value: 'browser' }
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 获取文档列表
|
|
27
|
+
*/
|
|
28
|
+
export async function fetchDocs(): Promise<string[]> {
|
|
29
|
+
// 简化版:返回预设的文档列表
|
|
30
|
+
// 实际项目中可以从API动态获取
|
|
31
|
+
return [
|
|
32
|
+
'首页',
|
|
33
|
+
'技术文档',
|
|
34
|
+
'教程资源'
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* 查看指定文档
|
|
40
|
+
*/
|
|
41
|
+
export async function viewDoc(path: string): Promise<void> {
|
|
42
|
+
try {
|
|
43
|
+
info(`正在加载文档: ${path}`);
|
|
44
|
+
|
|
45
|
+
const response = await axios.get(`https://docs.nbtca.space/${path}`, {
|
|
46
|
+
timeout: 10000,
|
|
47
|
+
headers: {
|
|
48
|
+
'User-Agent': 'NBTCA-CLI/2.3.1'
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
console.log('\r' + ' '.repeat(50) + '\r'); // 清除加载提示
|
|
53
|
+
|
|
54
|
+
// 渲染Markdown
|
|
55
|
+
const rendered = marked(response.data);
|
|
56
|
+
console.log(rendered);
|
|
57
|
+
console.log();
|
|
58
|
+
|
|
59
|
+
success('文档加载完成');
|
|
60
|
+
} catch (err) {
|
|
61
|
+
error('无法加载文档');
|
|
62
|
+
warning('建议在浏览器中查看');
|
|
63
|
+
|
|
64
|
+
const { openBrowser } = await inquirer.prompt([
|
|
65
|
+
{
|
|
66
|
+
type: 'confirm',
|
|
67
|
+
name: 'openBrowser',
|
|
68
|
+
message: '是否在浏览器中打开?',
|
|
69
|
+
default: true
|
|
70
|
+
}
|
|
71
|
+
]);
|
|
72
|
+
|
|
73
|
+
if (openBrowser) {
|
|
74
|
+
await openDocsInBrowser();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 在浏览器中打开知识库
|
|
81
|
+
*/
|
|
82
|
+
export async function openDocsInBrowser(): Promise<void> {
|
|
83
|
+
try {
|
|
84
|
+
info('正在打开浏览器...');
|
|
85
|
+
await open('https://docs.nbtca.space');
|
|
86
|
+
success('已在浏览器中打开知识库');
|
|
87
|
+
} catch (err) {
|
|
88
|
+
error('无法打开浏览器');
|
|
89
|
+
console.log(chalk.gray(' 请手动访问: https://docs.nbtca.space'));
|
|
90
|
+
}
|
|
91
|
+
console.log();
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 显示知识库菜单
|
|
96
|
+
*/
|
|
97
|
+
export async function showDocsMenu(): Promise<void> {
|
|
98
|
+
while (true) {
|
|
99
|
+
console.log();
|
|
100
|
+
console.log(chalk.cyan.bold(' 知识库'));
|
|
101
|
+
console.log();
|
|
102
|
+
|
|
103
|
+
const { action } = await inquirer.prompt([
|
|
104
|
+
{
|
|
105
|
+
type: 'list',
|
|
106
|
+
name: 'action',
|
|
107
|
+
message: '选择操作:',
|
|
108
|
+
choices: DOCS_LIST,
|
|
109
|
+
pageSize: 10
|
|
110
|
+
}
|
|
111
|
+
]);
|
|
112
|
+
|
|
113
|
+
if (action === 'back') {
|
|
114
|
+
break;
|
|
115
|
+
} else if (action === 'browser') {
|
|
116
|
+
await openDocsInBrowser();
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 维修服务模块
|
|
3
|
+
* 打开维修服务网页
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import open from 'open';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { error, info, success } from '../core/ui.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 维修服务URL
|
|
12
|
+
*/
|
|
13
|
+
const REPAIR_URL = 'https://nbtca.space/repair';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 打开维修服务页面
|
|
17
|
+
*/
|
|
18
|
+
export async function openRepairService(): Promise<void> {
|
|
19
|
+
try {
|
|
20
|
+
console.log();
|
|
21
|
+
info('正在打开维修服务页面...');
|
|
22
|
+
console.log();
|
|
23
|
+
|
|
24
|
+
await open(REPAIR_URL);
|
|
25
|
+
|
|
26
|
+
success('已在浏览器中打开维修服务页面');
|
|
27
|
+
console.log();
|
|
28
|
+
console.log(chalk.gray(' 服务内容:'));
|
|
29
|
+
console.log(chalk.gray(' • 电脑硬件维修'));
|
|
30
|
+
console.log(chalk.gray(' • 软件安装与配置'));
|
|
31
|
+
console.log(chalk.gray(' • 系统优化与故障排查'));
|
|
32
|
+
console.log(chalk.gray(' • 数据恢复与备份'));
|
|
33
|
+
console.log();
|
|
34
|
+
} catch (err) {
|
|
35
|
+
error('无法打开浏览器');
|
|
36
|
+
console.log();
|
|
37
|
+
console.log(chalk.yellow(' 请手动访问: ') + chalk.cyan(REPAIR_URL));
|
|
38
|
+
console.log();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 官网访问模块
|
|
3
|
+
* 打开NBTCA官方网站或GitHub
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import open from 'open';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { error, info, success } from '../core/ui.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 打开指定URL
|
|
12
|
+
*/
|
|
13
|
+
export async function openWebsite(url: string, name: string = '网站'): Promise<void> {
|
|
14
|
+
try {
|
|
15
|
+
console.log();
|
|
16
|
+
info(`正在打开${name}...`);
|
|
17
|
+
|
|
18
|
+
await open(url);
|
|
19
|
+
|
|
20
|
+
success(`已在浏览器中打开${name}`);
|
|
21
|
+
console.log(chalk.gray(` ${url}`));
|
|
22
|
+
console.log();
|
|
23
|
+
} catch (err) {
|
|
24
|
+
error('无法打开浏览器');
|
|
25
|
+
console.log();
|
|
26
|
+
console.log(chalk.yellow(' 请手动访问: ') + chalk.cyan(url));
|
|
27
|
+
console.log();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 打开NBTCA主页
|
|
33
|
+
*/
|
|
34
|
+
export async function openHomepage(): Promise<void> {
|
|
35
|
+
await openWebsite('https://nbtca.space', 'NBTCA官网');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* 打开GitHub页面
|
|
40
|
+
*/
|
|
41
|
+
export async function openGithub(): Promise<void> {
|
|
42
|
+
await openWebsite('https://github.com/nbtca', 'GitHub组织页');
|
|
43
|
+
}
|
package/src/index.ts
ADDED