Skip to content

Commit 7e3cee8

Browse files
committed
chore: homepage change & cursor rule
1 parent 2a8ea55 commit 7e3cee8

File tree

8 files changed

+203
-14
lines changed

8 files changed

+203
-14
lines changed

.cursor/rules/stock-sdk.mdc

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
---
2+
description: Stock SDK 项目开发规范
3+
globs:
4+
alwaysApply: true
5+
---
6+
7+
# Stock SDK 项目规范
8+
9+
## 项目概述
10+
11+
这是一个用于获取股票行情数据的 TypeScript SDK,支持 A 股、港股、美股和公募基金。该 SDK 可在浏览器和 Node.js 环境中运行,零依赖,轻量。
12+
13+
## 技术栈
14+
15+
- **语言**: TypeScript 5.x
16+
- **运行环境**: Node.js 18+ / 浏览器
17+
- **构建工具**: tsup
18+
- **测试框架**: Vitest
19+
- **文档工具**: VitePress
20+
- **包管理器**: Yarn 1.x
21+
22+
## 项目结构
23+
24+
```
25+
src/
26+
├── core/ # 核心功能模块(请求、解析、工具函数)
27+
├── indicators/ # 技术指标计算(MA、MACD、BOLL、KDJ 等)
28+
├── providers/ # 数据提供商
29+
│ ├── eastmoney/ # 东方财富 K 线数据
30+
│ └── tencent/ # 腾讯行情数据
31+
├── sdk.ts # SDK 主类
32+
├── types.ts # 类型定义
33+
└── index.ts # 导出入口
34+
```
35+
36+
## 代码规范
37+
38+
### TypeScript 规范
39+
40+
1. **始终使用严格类型**,避免使用 `any`
41+
2. **所有公共 API 必须有完整的类型定义**
42+
3. **使用 `interface` 定义对象类型**,使用 `type` 定义联合类型或工具类型
43+
4. **导出的函数和类必须有 JSDoc 注释**
44+
45+
```typescript
46+
/**
47+
* 获取 A 股实时行情
48+
* @param codes - 股票代码数组,如 ['sh600519', 'sz000858']
49+
* @returns 行情数据数组
50+
*/
51+
export async function getQuotes(codes: string[]): Promise<Quote[]> {
52+
// ...
53+
}
54+
```
55+
56+
### 命名规范
57+
58+
- **文件名**: 使用 camelCase,如 `aShareKline.ts`
59+
- **类名**: 使用 PascalCase,如 `StockSDK`
60+
- **函数名**: 使用 camelCase,如 `getFullQuotes`
61+
- **常量**: 使用 UPPER_SNAKE_CASE,如 `DEFAULT_TIMEOUT`
62+
- **类型/接口**: 使用 PascalCase,如 `QuoteData`
63+
64+
### 代码风格
65+
66+
1. **使用 ES Module 导入/导出**
67+
2. **异步操作使用 async/await**
68+
3. **避免使用 `export default`**,除非是主入口文件
69+
4. **错误处理要明确**,提供有意义的错误信息
70+
71+
## 新增功能开发流程
72+
73+
### 添加新的数据接口
74+
75+
1. 在 `src/providers/` 下对应的提供商目录中创建新文件
76+
2. 在 `src/types.ts` 中定义相关类型
77+
3. 在 `src/sdk.ts` 中添加公共方法
78+
4. 在 `src/index.ts` 中导出新类型
79+
5. 完成开发后检查清单(见下方)
80+
81+
### 添加新的技术指标
82+
83+
1. 在 `src/indicators/` 目录下创建新的指标文件
84+
2. 在 `src/indicators/types.ts` 中定义配置类型
85+
3. 在 `src/indicators/index.ts` 中导出
86+
4. 在 `src/indicators/addIndicators.ts` 中集成
87+
5. 完成开发后检查清单(见下方)
88+
89+
## ⚠️ 开发完成后必做检查清单
90+
91+
**每次对 `src/` 目录下的代码进行新增或修改功能时(如增加方法、增加指标等),必须完成以下所有步骤:**
92+
93+
### 1. 确保构建成功
94+
95+
```bash
96+
yarn build
97+
```
98+
99+
- 构建必须无错误通过
100+
- 检查 `dist/` 目录下的输出文件是否正确生成
101+
102+
### 2. 补充测试用例并确保单测通过
103+
104+
```bash
105+
yarn test
106+
```
107+
108+
- 为新增/修改的功能编写对应的测试用例
109+
- 测试文件位于 `src/index.test.ts`
110+
- 确保所有测试通过,无失败用例
111+
112+
### 3. 更新 README 文档
113+
114+
- **中文文档**: 更新 `README.md`
115+
- **英文文档**: 同步更新 `README_EN.md`
116+
- 如果新增了公共 API,需要在 API 列表中添加说明
117+
118+
### 4. 更新 website 文档
119+
120+
- **中文文档**: 更新 `website/` 目录下对应的 `.md` 文件
121+
- API 文档在 `website/api/` 目录
122+
- 使用指南在 `website/guide/` 目录
123+
- **英文文档**: 同步更新 `website/en/` 目录下对应的 `.md` 文件
124+
- API 文档在 `website/en/api/` 目录
125+
- 使用指南在 `website/en/guide/` 目录
126+
- 确保中英文文档内容一致
127+
128+
### 5. 更新 Playground(如需要)
129+
130+
- 如果新增的功能适合在 Playground 中演示,需要更新:
131+
- `website/playground/index.md`
132+
- `website/en/playground/index.md`
133+
- 确保 Playground 示例可以正常运行
134+
135+
### 检查清单总结
136+
137+
```
138+
□ yarn build 成功
139+
□ yarn test 通过
140+
□ README.md 已更新
141+
□ README_EN.md 已更新
142+
□ website/ 中文文档已更新
143+
□ website/en/ 英文文档已更新
144+
□ Playground 已更新(如需要)
145+
```
146+
147+
## 构建与发布
148+
149+
```bash
150+
# 构建
151+
yarn build
152+
153+
# 本地开发
154+
yarn dev
155+
156+
# 文档开发
157+
yarn dev:docs
158+
159+
# 文档构建
160+
yarn build:docs
161+
```
162+
163+
## 文档规范
164+
165+
- 文档位于 `website/` 目录
166+
- 支持中英文双语(英文在 `website/en/`)
167+
- API 文档在 `website/api/` 目录
168+
- 使用 VitePress 构建
169+
170+
## Git 提交规范
171+
172+
使用语义化提交信息:
173+
174+
- `feat`: 新功能
175+
- `fix`: 修复 bug
176+
- `docs`: 文档更新
177+
- `refactor`: 代码重构
178+
- `test`: 测试相关
179+
- `chore`: 构建/工具相关
180+
181+
示例: `feat: 添加创业板指数支持`
182+
183+
## 注意事项
184+
185+
1. **保持零依赖**:不引入任何运行时依赖
186+
2. **双端兼容**:代码需要同时在浏览器和 Node.js 中运行
187+
3. **向后兼容**:公共 API 的变更需要考虑向后兼容性
188+
4. **中文支持**:处理 GBK 编码时使用 `decodeGBK` 工具函数

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ dist/
77
# IDE
88
.idea/
99
.vscode/
10-
.cursor/
10+
.cursor/*
11+
!.cursor/rules/
1112
*.swp
1213
*.swo
1314

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515

1616
## Documentation
1717

18-
👉🏻 [官方文档](https://chengzuopeng.github.io/stock-sdk/)
18+
👉🏻 [官方文档](https://stock-sdk.linkdiary.cn/)
1919

20-
📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线演示](https://chengzuopeng.github.io/stock-sdk/playground/)
20+
📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线演示](https://stock-sdk.linkdiary.cn/playground/)
2121

2222
## Why stock-sdk?
2323

@@ -102,7 +102,7 @@ console.log(`共获取 ${allQuotes.length} 只股票`);
102102

103103
## API 列表
104104

105-
💡 API 详细文档请查阅 [https://chengzuopeng.github.io/stock-sdk/](https://chengzuopeng.github.io/stock-sdk/)
105+
💡 API 详细文档请查阅 [https://stock-sdk.linkdiary.cn/](https://stock-sdk.linkdiary.cn/)
106106

107107
### 实时行情
108108

@@ -166,7 +166,7 @@ console.log(`共获取 ${allQuotes.length} 只股票`);
166166

167167
---
168168

169-
🌐 [官网](https://chengzuopeng.github.io/stock-sdk) | 📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线演示](https://chengzuopeng.github.io/stock-sdk/playground) | 🐛 [Issues](https://github.com/chengzuopeng/stock-sdk/issues)
169+
🌐 [官网](https://stock-sdk.linkdiary.cn) | 📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线演示](https://stock-sdk.linkdiary.cn/playground) | 🐛 [Issues](https://github.com/chengzuopeng/stock-sdk/issues)
170170

171171
---
172172

README_EN.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ No Python. No backend service. Fetch real-time quotes and K-line data for **A-sh
1515

1616
## Documentation
1717

18-
👉🏻 [Documentation](https://chengzuopeng.github.io/stock-sdk/)
18+
👉🏻 [Documentation](https://stock-sdk.linkdiary.cn/)
1919

20-
📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [Live Demo](https://chengzuopeng.github.io/stock-sdk/playground/)
20+
📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [Live Demo](https://stock-sdk.linkdiary.cn/playground/)
2121

2222
## Why stock-sdk?
2323

@@ -102,7 +102,7 @@ console.log(`Fetched ${allQuotes.length} stocks`);
102102

103103
## API List
104104

105-
💡 For detailed API documentation, please visit [https://chengzuopeng.github.io/stock-sdk/](https://chengzuopeng.github.io/stock-sdk/)
105+
💡 For detailed API documentation, please visit [https://stock-sdk.linkdiary.cn/](https://stock-sdk.linkdiary.cn/)
106106

107107
### Real-time Quotes
108108

@@ -166,7 +166,7 @@ console.log(`Fetched ${allQuotes.length} stocks`);
166166

167167
---
168168

169-
🌐 [Website](https://chengzuopeng.github.io/stock-sdk) | 📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [Live Demo](https://chengzuopeng.github.io/stock-sdk/playground) | 🐛 [Issues](https://github.com/chengzuopeng/stock-sdk/issues)
169+
🌐 [Website](https://stock-sdk.linkdiary.cn) | 📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [Live Demo](https://stock-sdk.linkdiary.cn/playground) | 🐛 [Issues](https://github.com/chengzuopeng/stock-sdk/issues)
170170

171171
---
172172

docs/README_OLD.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
**✨ 零依赖 | 🌐 Browser + Node.js | 📦 <10KB | 🧠 完整 TypeScript 类型**
1515

16-
📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线演示](https://chengzuopeng.github.io/stock-sdk/)
16+
📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线演示](https://stock-sdk.linkdiary.cn/)
1717

1818
## Why stock-sdk?
1919

@@ -1024,7 +1024,7 @@ yarn dev
10241024

10251025
---
10261026

1027-
📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线演示](https://chengzuopeng.github.io/stock-sdk/) | 🐛 [Issues](https://github.com/chengzuopeng/stock-sdk/issues)
1027+
📦 [NPM](https://www.npmjs.com/package/stock-sdk) | 📖 [GitHub](https://github.com/chengzuopeng/stock-sdk) | 🎮 [在线演示](https://stock-sdk.linkdiary.cn/) | 🐛 [Issues](https://github.com/chengzuopeng/stock-sdk/issues)
10281028

10291029
---
10301030

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"author": "chengzuopeng",
4545
"license": "ISC",
4646
"description": "Tencent qt.gtimg.cn stock quote SDK - supports both browser and Node.js",
47-
"homepage": "https://github.com/chengzuopeng/stock-sdk#readme",
47+
"homepage": "https://stock-sdk.linkdiary.cn",
4848
"repository": {
4949
"type": "git",
5050
"url": "git+https://github.com/chengzuopeng/stock-sdk.git"

website/changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
### 优化
88

99
**文档优化**
10-
- 官方网站上线,[https://chengzuopeng.github.io/stock-sdk/](https://chengzuopeng.github.io/stock-sdk/)
10+
- 官方网站上线,[https://stock-sdk.linkdiary.cn/](https://stock-sdk.linkdiary.cn/)
1111
- 优化 API 文档介绍
1212
- 一个 bigfix
1313

website/en/changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This page records the version update history of Stock SDK.
77
### Improvements
88

99
**Documentation Improvements**
10-
- Official website launched: [https://chengzuopeng.github.io/stock-sdk/](https://chengzuopeng.github.io/stock-sdk/)
10+
- Official website launched: [https://stock-sdk.linkdiary.cn/](https://stock-sdk.linkdiary.cn/)
1111
- Improved API documentation introduction
1212
- One bigfix
1313

0 commit comments

Comments
 (0)