Files
MarkLite/DESIGN.md
T

158 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MarkLite - 设计文档
## 1. 项目概述
MarkLite 是一款轻量级的 Windows 本地 Markdown 阅读器桌面应用程序。基于 Electron 框架构建,提供简洁现代的用户界面,支持 Markdown 文件的打开、编辑和实时预览。
## 2. 技术架构
### 2.1 技术栈
| 组件 | 技术选型 | 说明 |
|------|----------|------|
| 桌面框架 | Electron | 跨平台桌面应用框架 |
| 前端 | HTML + CSS + JavaScript | 原生前端技术,无框架依赖 |
| Markdown解析 | marked.js v12.0.2 | 高性能 Markdown 解析库 |
| 代码高亮 | highlight.js v11.9.0 | 代码块语法高亮 |
| 打包 | electron-builder | 生成 Windows exe 安装包 |
### 2.2 进程架构
```
┌─────────────────────────────────────────┐
│ Main Process (main.js) │
│ - 窗口管理 │
│ - 文件系统操作 (fs) │
│ - 原生菜单 │
│ - IPC 通信主端 │
└──────────────┬──────────────────────────┘
│ IPC (contextBridge)
┌──────────────▼──────────────────────────┐
│ Preload Script (preload.js) │
│ - 安全的 API 桥接 │
│ - exposeInMainWorld │
└──────────────┬──────────────────────────┘
┌──────────────▼──────────────────────────┐
│ Renderer Process (renderer/) │
│ - UI 渲染 │
│ - Markdown 编辑与预览 │
│ - 拖拽文件处理 │
│ - 快捷键处理 │
└─────────────────────────────────────────┘
```
## 3. 功能设计
### 3.1 核心功能
1. **文件打开**
- 菜单栏 → 文件 → 打开(支持 .md / .txt / .markdown
- 拖拽文件到窗口打开
- 支持 Windows 文件关联(双击 .md 文件打开)
2. **文件保存**
- Ctrl+S 快捷键保存
- 菜单栏 → 文件 → 保存
- 另存为功能
3. **实时预览**
- 左侧编辑器 + 右侧预览(默认模式)
- 纯预览模式(隐藏编辑器)
- 编辑时实时更新预览
4. **视图模式**
- 编辑+预览(Split View
- 纯编辑模式
- 纯预览模式
### 3.2 UI 设计
#### 色彩方案
- **主色调**: #1a73e8(蓝色)
- **背景色**: #ffffff(白色)
- **侧边栏**: #f8f9fa(浅灰)
- **文字色**: #333333(深灰)
- **代码块背景**: #f6f8fa
- **边框色**: #e1e4e8
#### 字体
- **UI字体**: system-ui, -apple-system, "Segoe UI", sans-serif
- **编辑器字体**: "Cascadia Code", "Fira Code", "Consolas", monospace
- **预览字体**: system-ui, -apple-system, "Segoe UI", sans-serif
#### 布局
```
┌──────────────────────────────────────────────┐
│ 📄 MarkLite - filename.md ─ □ ✕ │
├──────────────────────────────────────────────┤
│ 📁 打开 │ 💾 保存 │ 📝 编辑 │ 👁 预览 │ 分屏 │
├─────────────────┬────────────────────────────┤
│ │ │
│ Editor Area │ Preview Area │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
├─────────────────┴────────────────────────────┤
│ 就绪 │ UTF-8 │ Markdown │ 行: 1, 列: 1 │
└──────────────────────────────────────────────┘
```
## 4. 文件结构
```
MarkLite/
├── package.json # 项目配置与依赖
├── main.js # Electron 主进程
├── preload.js # 预加载脚本(IPC 桥接)
├── renderer/
│ ├── index.html # 主页面
│ ├── style.css # 样式表
│ └── renderer.js # 渲染进程逻辑
├── lib/
│ ├── marked.min.js # Markdown 解析库
│ ├── highlight.min.js # 代码高亮库
│ └── highlight-github.css # 代码高亮主题
├── assets/
│ └── icon.ico # 应用图标
├── DESIGN.md # 设计文档(本文件)
├── README.md # 项目说明
└── .gitignore # Git 忽略文件
```
## 5. IPC 通信设计
| 通道 | 方向 | 说明 |
|------|------|------|
| `dialog:openFile` | Renderer → Main | 打开文件对话框 |
| `file:read` | Renderer → Main | 读取文件内容 |
| `file:save` | Renderer → Main | 保存文件内容 |
| `file:saveAs` | Renderer → Main | 另存为 |
| `menu:action` | Main → Renderer | 菜单操作通知 |
| `window:setTitle` | Renderer → Main | 设置窗口标题 |
## 6. Markdown 渲染支持
支持标准 Markdown 和 GFMGitHub Flavored Markdown):
- 标题(h1-h6
- 段落、换行
- **粗体**、*斜体*、~~删除线~~
- 有序/无序列表
- 任务列表(- [x]
- 代码块(围栏式 + 缩进式)
- 行内代码
- 链接、图片
- 表格
- 引用块
- 水平线
- HTML 内联
## 7. 构建与发布
使用 `electron-builder` 打包:
- 输出格式:NSIS 安装包(.exe)
- 目标平台:Windows x64
- 应用图标:assets/icon.ico