# 贡献指南 感谢你对 MarkLite 项目的关注!以下是参与贡献的指南。 ## 开发环境 1. **前置要求** - Node.js >= 18.x - npm >= 9.x - Windows 10/11 x64 2. **克隆并安装** ```bash git clone https://gitee.com/thzxx/MarkLite.git cd MarkLite npm install ``` 3. **启动开发** ```bash npm run dev ``` ## 代码规范 - **TypeScript**: 严格模式,所有函数参数需显式类型标注 - **ESLint**: 提交前确保 `npm run lint` 通过 - **Prettier**: 提交前确保 `npm run format:check` 通过 - **Git Hooks**: pre-commit 自动执行 ESLint + typecheck ## 分支策略 - `main` — 稳定版本 - `dev` — 开发分支 - `feature/*` — 功能分支 - `fix/*` — 修复分支 ## 提交规范 使用语义化提交信息: ``` (): [optional body] ``` 类型(type): - `feat`: 新功能 - `fix`: 修复 Bug - `docs`: 文档变更 - `style`: 代码格式(不影响逻辑) - `refactor`: 重构 - `perf`: 性能优化 - `test`: 测试相关 - `chore`: 构建/工具链变更 示例: ``` feat(editor): 添加代码折叠功能 fix(tab): 修复关闭标签后焦点丢失问题 perf(markdown): 引入 processor LRU 缓存 ``` ## Pull Request 流程 1. Fork 仓库并创建功能分支 2. 确保所有检查通过: ```bash npm run lint # ESLint npm run typecheck # TypeScript 类型检查 npm run test # 单元测试 ``` 3. 编写清晰的 PR 描述,说明变更内容和原因 4. 等待代码审查 ## 添加测试 - 测试文件放在 `__tests__/` 目录下,命名为 `*.test.ts` 或 `*.test.tsx` - 使用 Vitest + React Testing Library - 至少覆盖 stores、hooks、lib 目录下的核心模块 ```bash # 运行测试 npm run test # 监听模式 npm run test:watch # 覆盖率报告 npm run test:coverage ``` ## 项目结构 ``` src/ ├── main/ # 主进程 (Node.js) ├── preload/ # 预加载脚本 ├── renderer/ # 渲染进程 (React) │ ├── components/ # UI 组件 │ ├── stores/ # Zustand 状态管理 │ ├── hooks/ # 自定义 Hooks │ ├── lib/ # 工具库 │ ├── db/ # IndexedDB 持久化 │ ├── types/ # TypeScript 类型 │ └── styles/ # 全局样式 └── shared/ # 主进程/渲染进程共享 ``` ## 许可证 贡献的代码将遵循项目的 [MIT 许可证](LICENSE)。