Files
MarkLite/CONTRIBUTING.md
T
thzxx 7a4e2b0a67 v0.2.0: 全面代码质量优化
- ESLint flat config + Prettier + EditorConfig
- Markdown处理器LRU缓存
- Zustand选择器优化减少重渲染
- CodeMirror Compartment主题热切换
- Preview防抖(150ms) + IndexedDB去抖(500ms)
- 组件拆分: App.tsx 310→104行, Sidebar.tsx 244→90行
- 统一错误处理 errorHandler.ts
- ConfirmDialog替代原生confirm
- LoadingSpinner加载状态
- Toast多条堆叠+类型区分
- 可访问性增强(ARIA属性、键盘导航)
- Vitest测试框架(78个测试用例)
- Git hooks(husky + lint-staged)
- 项目文档(README.md, CONTRIBUTING.md)
2026-06-03 22:13:32 +08:00

2.4 KiB
Raw Blame History

贡献指南

感谢你对 MarkLite 项目的关注!以下是参与贡献的指南。

开发环境

  1. 前置要求

    • Node.js >= 18.x
    • npm >= 9.x
    • Windows 10/11 x64
  2. 克隆并安装

    git clone https://gitee.com/thzxx/MarkLite.git
    cd MarkLite
    npm install
    
  3. 启动开发

    npm run dev
    

代码规范

  • TypeScript: 严格模式,所有函数参数需显式类型标注
  • ESLint: 提交前确保 npm run lint 通过
  • Prettier: 提交前确保 npm run format:check 通过
  • Git Hooks: pre-commit 自动执行 ESLint + typecheck

分支策略

  • main — 稳定版本
  • dev — 开发分支
  • feature/* — 功能分支
  • fix/* — 修复分支

提交规范

使用语义化提交信息:

<type>(<scope>): <description>

[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. 确保所有检查通过:
    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 目录下的核心模块
# 运行测试
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 许可证