Files
MarkLite/DESIGN.md
T

6.2 KiB
Raw Blame History

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