# markdown-reader
**Repository Path**: null_056_1691/markdown-reader
## Basic Information
- **Project Name**: markdown-reader
- **Description**: 一款windows桌面markdown阅读和编辑工具,全面覆盖日常使用所需功能,并且完全免费
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-30
- **Last Updated**: 2026-06-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Markdown Reader
[](https://gitee.com/null_056_1691/markdown-reader/stargazers)
[](https://gitee.com/null_056_1691/markdown-reader/members)
[](LICENSE)
Windows 平台 Markdown 阅读器,基于 Electron + React + TypeScript 开发,支持完整 Markdown 语法、实时预览、主题切换等功能。
## 目录
- [功能特性](#功能特性)
- [截图](#截图)
- [安装](#安装)
- [使用方式](#使用方式)
- [菜单功能](#菜单功能)
- [支持的 Markdown 语法](#支持的-markdown-语法)
- [技术栈](#技术栈)
- [开发指南](#开发指南)
- [贡献](#贡献)
- [许可证](#许可证)
## 功能特性
### 编辑器
- ✅ Markdown 编辑器,支持语法高亮
- ✅ 实时预览,支持完整 Markdown 样式
- ✅ 编辑/分屏/预览三种视图模式
- ✅ 分屏模式支持拖动调整比例
- ✅ 编辑器与预览同步滚动
- ✅ 查找和替换
- ✅ 插入图片(支持本地图片)
### 界面
- ✅ 浅色/深色主题切换
- ✅ 大纲视图侧边栏
- ✅ 窗口标题显示当前文件名
- ✅ 文件修改状态指示(红点:未保存,绿点:已保存)
### 文件管理
- ✅ 文件打开/保存/另存为
- ✅ 自动保存功能
- ✅ 双击 Markdown 文件直接打开
- ✅ 关闭时自动提示保存未保存的更改
- ✅ 文件关联(.md, .markdown, .mdown, .mkd)
### 其他
- ✅ 打印支持
- ✅ 数学公式渲染(KaTeX)
- ✅ 流程图渲染(Mermaid)
## 截图


## 安装
### 下载预编译版本
1. 前往 [Releases](https://gitee.com/null_056_1691/markdown-reader/releases) 页面
2. 下载最新版本的 `Markdown-Reader-vX.X.X-win-x64.zip`
3. 解压后运行 `Markdown Reader.exe`
### 从源码构建
```bash
# 克隆仓库
git clone https://gitee.com/null_056_1691/markdown-reader.git
cd markdown-reader
# 安装依赖
npm install
# 构建
npm run build:all
# 打包便携版
node scripts/pack.js
# 打包安装包(需要管理员权限)
npm run pack:win
```
## 使用方式
### 直接运行
1. 解压 `Markdown-Reader-vX.X.X-win-x64.zip`
2. 运行 `Markdown Reader.exe`
### 开发模式
```bash
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 另一个终端启动 Electron
npx electron .
```
### 命令行打开文件
```powershell
.\Markdown Reader.exe "C:\path\to\file.md"
```
## 菜单功能
### 文件菜单
| 功能 | 快捷键 | 说明 |
|------|--------|------|
| 新建 | Ctrl+N | 创建新文件 |
| 打开... | Ctrl+O | 打开 Markdown 文件 |
| 保存 | Ctrl+S | 保存当前文件 |
| 另存为... | Ctrl+Shift+S | 保存为新文件 |
| 打印... | Ctrl+P | 打印预览内容 |
| 退出 | Alt+F4 | 退出应用 |
### 编辑菜单
| 功能 | 快捷键 | 说明 |
|------|--------|------|
| 撤销 | Ctrl+Z | 撤销操作 |
| 恢复 | Ctrl+Y | 恢复操作 |
| 剪切 | Ctrl+X | 剪切选中内容 |
| 复制 | Ctrl+C | 复制选中内容 |
| 粘贴 | Ctrl+V | 粘贴内容 |
| 全选 | Ctrl+A | 全选内容 |
| 查找... | Ctrl+F | 查找文本 |
| 替换... | Ctrl+H | 替换文本 |
| 插入图片... | Ctrl+Shift+I | 插入本地图片 |
### 视图菜单
| 功能 | 快捷键 | 说明 |
|------|--------|------|
| 编辑模式 | Ctrl+1 | 仅显示编辑器 |
| 分屏模式 | Ctrl+2 | 左右分屏显示 |
| 预览模式 | Ctrl+3 | 仅显示预览 |
| 显示/隐藏侧边栏 | Ctrl+B | 切换大纲侧边栏 |
| 浅色主题 | - | 切换到浅色主题 |
| 深色主题 | - | 切换到深色主题 |
| 切换主题 | Ctrl+Shift+T | 在浅色/深色间切换 |
| 开发者工具 | F12 | 打开调试工具 |
| 重置缩放 | Ctrl+0 | 恢复默认缩放 |
| 放大 | Ctrl+= | 放大显示 |
| 缩小 | Ctrl+- | 缩小显示 |
| 全屏 | F11 | 进入/退出全屏 |
### 帮助菜单
| 功能 | 说明 |
|------|------|
| Markdown 语法帮助 | 打开 Markdown 语法指南 |
| GitHub Flavored Markdown | 打开 GFM 文档 |
| 关于 | 显示版本信息和作者信息 |
## 支持的 Markdown 语法
### 基础语法
- 标题(h1-h6)
- 段落与换行
- **粗体**、*斜体*、***粗斜体***
- 无序列表、有序列表
- 链接(行内式、参考式、自动链接)
- 图片(支持本地图片和网络图片)
- 引用块
- 行内代码、代码块(围栏式)
- 分隔线
- 转义字符
- 内嵌 HTML
### 扩展语法(GFM 等)
- ~~删除线~~
- 表格(支持对齐)
- 任务列表
- 脚注
- 数学公式(KaTeX):`$E = mc^2$`
- 流程图(Mermaid)
- 表情符号 :smile:
- ==高亮==
- 下划线
- 上标 H~2~O、下标 X^2^
- 缩写
- 定义列表
- 键盘按键 Ctrl+C
## 技术栈
| 类别 | 技术 |
|------|------|
| 框架 | Electron 28 |
| UI | React 18 + TypeScript |
| 编辑器 | CodeMirror 6 |
| Markdown | markdown-it + 插件系统 |
| 样式 | Tailwind CSS |
| 数学公式 | KaTeX |
| 流程图 | Mermaid |
| 构建 | Vite |
## 开发指南
### 项目结构
```
markdown-reader/
├── src/
│ ├── main/ # Electron 主进程
│ │ ├── index.ts # 主入口
│ │ ├── ipc.ts # IPC 通信
│ │ ├── menu.ts # 菜单配置
│ │ ├── file.ts # 文件操作
│ │ └── preload.ts # 预加载脚本
│ ├── renderer/ # React 渲染进程
│ │ ├── components/ # React 组件
│ │ ├── hooks/ # 自定义 Hooks
│ │ ├── utils/ # 工具函数
│ │ └── App.tsx # 应用入口
│ └── shared/ # 共享类型
├── public/ # 静态资源
├── build/ # 构建资源(图标、安装脚本)
├── scripts/ # 构建脚本
├── docs/ # 文档
├── dist/ # 构建输出(git 忽略)
└── release/ # 打包输出(git 忽略)
```
### 常用命令
```bash
# 开发
npm run dev # 启动 Vite 开发服务器
npx electron . # 启动 Electron(另一个终端)
# 构建
npm run build # 构建渲染进程
npm run build:main # 编译主进程
npm run build:all # 完整构建(测试 + 渲染进程 + 主进程)
# 测试
npm test # 运行 Jest 测试
# 打包
node scripts/pack.js # 打包便携版
npm run pack:win # 打包 NSIS 安装包
```
### IPC 通信通道
| 通道 | 说明 |
|------|------|
| `file:open` | 打开文件对话框 |
| `file:save` | 保存文件 |
| `file:save-as` | 另存为 |
| `file:new` | 新建文件 |
| `get:config` | 获取配置 |
| `open:file-path` | 打开指定路径文件 |
| `select:image` | 选择图片文件 |
| `update:title` | 更新窗口标题 |
| `save:and:close` | 保存并关闭 |
| `menu:action` | 菜单操作 |
## 贡献
欢迎贡献!请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 了解如何参与项目。
## 许可证
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
## 据说惯例都要阿宝和小微
阿宝

小微
