Files
MarkLite/CONTRIBUTING.md
T
thzxx 05e5667e48 release: v0.4.0 — MetonaEditor 集成与架构重构
feat(editor): 将 Milkdown/ProseMirror 替换为 @metona-team/metona-editor v0.1.3
  - 三模式视图 (edit/split/preview) 由编辑器内置工具栏切换
  - searchReplace + imagePaste 预设插件
  - unified/rehype 渲染管线通过 render 钩子集成
  - 主题双向同步 (应用暗色模式 ↔ 编辑器主题)

feat(toast): metona-toast 迁移为 @metona-team/metona-toast v2.0.1

refactor: 删除冗余组件与代码
  - 移除 SourceEditor、Preview、SearchReplace、EditorToolbar、useMilkdown
  - 移除 StatusBar 组件及状态栏扩展架构(编辑器内置底栏替代)
  - 移除 useSettings、useStatusBarItem、useStatusBarItems、statusBarStore
  - 移除 EditMode/PreviewMode/SourceMode 图标

refactor(ui): 简化布局
  - 工具栏移除模式切换按钮,新增自动保存开关
  - useKeyboard 移除 Ctrl+1/2/3/B/I 快捷键
  - Editor 三模式统一由 MetonaEditor 容器渲染

chore: 版本号 v0.3.13 → v0.4.0
docs: 全面更新 README/DESIGN/CONTRIBUTING/DEVSETUP
2026-07-23 22:55:45 +08:00

3.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

分支策略

  • master — 稳定版本
  • 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 组件(Toolbar · TabBar · Editor · Sidebar 等)
│   ├── stores/     # Zustand 状态管理(tabStore · editorStore · sidebarStore · autoSaveStore
│   ├── hooks/      # 自定义 HooksuseTheme · useAutoSave · useKeyboard 等)
│   ├── lib/        # 工具库(markdown · fileUtils · errorHandler · toast
│   ├── db/         # IndexedDB 持久化(schema · repositories
│   ├── types/      # TypeScript 类型定义
│   └── styles/     # 全局样式(variables · global · markdown-body
└── shared/         # 主进程/渲染进程共享(IPC 通道 · 共享类型 · 常量)

编辑器架构

MarkLite 使用 MetonaEditor v0.1.3 作为编辑器核心:

  • 三模式视图(编辑 / 分屏 / 预览),由 MetonaEditor 内置工具栏切换
  • 渲染管线:通过 render 钩子接入 unified/rehype 管线,处理图片路径修复和代码高亮
  • 插件searchReplace(搜索替换)+ imagePaste(粘贴图片)
  • 自动保存:自定义 useAutoSave hook,通过 Electron IPC 保存到文件系统(非 localStorage
  • 主题同步:应用暗色模式与编辑器主题双向同步

许可证

贡献的代码将遵循项目的 MIT 许可证