Files
MarkLite/CONTRIBUTING.md
T
thzxx 43b0778849 release: v0.3.13 — MeToast 集成与全面质量修复
- 集成 MetonaToast v2.0.0 替换自研 Toast 组件(右上角、进度条、自动关闭、主题联动)
- 修复 sidebar resize 未持久化到 IndexedDB
- 修复 Ctrl+Tab MRU 切换逻辑与文档不一致
- 完善 WYSIWYG 模式标签切换选区恢复
- 清理死代码(useActiveHeading observerRef、旧 Toast 样式、重复滚动条样式、SearchReplace 重复检查)
- 同步 DESIGN.md / docs 文档(CodeMirror→Milkdown、stores 计数、editorStore 字段)
- 新增 .npmrc.example 模板
- 更新关于对话框与文档远程地址为 Gitea
- 版本号 0.3.12 → 0.3.13
2026-07-22 15:55:45 +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://git.metona.cn/MetonaTeam/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 许可证