diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee5eea7d..be3fedad 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,72 +1,45 @@ -## Cherry Studio目录结构和功能 +# Cherry Studio 贡献者指南 -### 1. `/src`: 主要源代码目录 - - ** `/main`**: Electron主进程相关代码 - - 负责应用的生命周期管理、窗口创建、IPC通信等 - - ** `/renderer`**: Electron渲染进程相关代码 - - 包含用户界面的实现,使用TypeScript和SCSS - - ** `/preload`**: 预加载脚本 - - 用于在渲染进程中安全地暴露主进程功能 - - ** `/components`**: React组件 - - 可复用的UI组件,如对话框、输入框等 - - ** `/pages`**: 应用的主要页面 - - 如聊天界面、设置页面等 - - ** `/store`**: 状态管理 - - 可能使用Redux或MobX来管理应用状态 - - ** `/utils`**: 工具函数 - - 包含各种辅助函数和工具类 - - ** `/styles`**: 全局样式文件 - - 包含SCSS文件,定义全局样式和主题 +欢迎来到 Cherry Studio 的贡献者社区!我们致力于将 Cherry Studio 打造成一个长期提供价值的项目,并希望邀请更多的开发者加入我们的行列。无论您是经验丰富的开发者还是刚刚起步的初学者,您的贡献都将帮助我们更好地服务用户,提升软件质量。 -### 2. `/public`: 静态资源目录 - - 包含图标、字体等静态文件 +## 如何贡献 -### 3. `/electron`: Electron相关配置 - - 包含Electron的构建和打包配置 +以下是您可以参与的几种方式: -### 4. `/scripts`: 构建和开发脚本 - - 包含npm脚本,用于开发、构建和部署 +1. **贡献代码**:帮助我们开发新功能或优化现有代码。请确保您的代码符合我们的编码标准,并通过所有测试。 -### 5. `/types`: TypeScript类型定义 - - 包含自定义的类型定义文件 +2. **修复 BUG**:如果您发现了 BUG,欢迎提交修复方案。请在提交前确认问题已被解决,并附上相关测试。 -### 6. `/tests`: 测试文件目录 - - 包含单元测试和集成测试 +3. **维护 Issue**:协助我们管理 GitHub 上的 issue,帮助标记、分类和解决问题。 -### 7. `/docs`: 文档目录 - - 包含项目文档、API文档等 +4. **产品设计**:参与产品设计讨论,帮助我们改进用户体验和界面设计。 -### 8. `/config`: 配置文件目录 - - 包含各种配置文件,如webpack配置、环境变量等 +5. **编写文档**:帮助我们完善用户手册、API 文档和开发者指南。 -### 9. `/migrations`: 数据库迁移文件 - - 由于使用了Sequelize,这里可能包含数据库结构的变更记录 +6. **社区维护**:参与社区讨论,帮助解答用户问题,促进社区活跃。 -### 10. `/models`: 数据模型 - - 定义Sequelize的数据模型,对应数据库表结构 +7. **推广使用**:通过博客、社交媒体等渠道推广 Cherry Studio,吸引更多用户和开发者。 -## 主要功能实现 +## 开始贡献 -### 1. LLM提供商集成 - - 可能在`/src/utils`或`/src/services`中实现与不同LLM API的集成 +1. **Fork 仓库**:在 GitHub 上 fork 我们的仓库,并将其克隆到本地。 -### 2. 多助手和多主题支持 - - 在`/src/store`中管理助手和主题的状态 - - 在`/src/components`中实现相关的UI组件 +2. **创建分支**:为您要进行的更改创建一个新的分支。 -### 3. 多模型对话 - - 在`/src/pages`的聊天界面中实现 - - 可能使用`/src/store`来管理对话状态 +3. **提交更改**:在本地进行更改并提交。请确保您的提交信息清晰明了。 -### 4. 拖放排序 - - 在`/src/components`中实现相关的可拖拽组件 +4. **发起 Pull Request**:将您的更改推送到 GitHub,并发起 Pull Request。请描述您的更改内容和原因。 -### 5. 代码高亮 - - 可能使用第三方库,如Prism.js,集成在`/src/components`中 +### 其他建议 -### 6. Mermaid图表支持 - - 在`/src/components`中集成Mermaid库 +- **联系开发者**:在提交 PR 之前,您可以先和开发者进行联系,共同探讨或者获取帮助。 +- **成为核心开发者**:如果您能够稳定为项目贡献,恭喜您可以成为项目核心开发者,获取到项目成员身份。 -### 7. 数据持久化 - - 使用Sequelize在`/models`中定义数据模型 - - 在`/migrations`中管理数据库结构变更 +## 联系我们 + +如果您有任何问题或建议,欢迎通过以下方式联系我们: + +- 微信:kangfenmao +- [GitHub Issues](https://github.com/kangfenmao/cherry-studio/issues) + +感谢您的支持和贡献!我们期待与您一起将 Cherry Studio 打造成更好的产品。