# MarkFlow
**Repository Path**: tomwld/mark-flow
## Basic Information
- **Project Name**: MarkFlow
- **Description**: 一个纯粹、现代、轻量且功能丰富的Markdown 编辑器,基于 Tauri、Vue 3 和 TypeScript 构建, 提供流畅的输入体验。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-01-12
- **Last Updated**: 2026-05-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MarkFlow
一个纯粹、现代、轻量且功能丰富的Markdown 编辑器,基于 Tauri、Vue 3 和 TypeScript 构建, 提供流畅的输入体验。
[English](./README.md) | **简体中文**
## ✨ 特性
- **📝 现代编辑器**: 基于 Vditor 即时渲染(IR)模式构建,提供所见即所得的流畅写作体验。
- **🌗 主题切换**: 原生支持明亮和暗黑模式。
- **📂 文件管理**:
- 集成文件树和大纲视图(可切换侧边栏部分)。
- **右键菜单支持**: 在文件树中右键进行新建文件/文件夹、重命名、删除及在资源管理器中显示等操作。
- 标签页式编辑界面。
- 自动保存和会话持久化(启动时恢复打开的文件)。
- 最近打开的文件历史记录。
- 新文件“智能命名”(基于内容自动生成文件名)。
- **🖥️ 系统集成**:
- **文件关联**: 直接打开 `.md`、`.markdown` 和 `.txt` 文件。
- **上下文菜单**: 资源管理器中支持“使用 MarkFlow 打开”选项。
- **🛠️ 生产力工具**:
- **专注模式**: 无干扰写作体验。
- **扩展语法**: 支持 GFM、上标 (~sub~)、下标 (^sup^) 和 Emoji 代码 (:smile:)。
- **数学公式支持**: 使用 KaTeX 渲染 LaTeX 数学公式。
- **交互式工具栏**: Vditor 内置工具栏,快速插入表格、脚注、任务列表、代码块和数学公式。
- **表情选择器**: 内置 Emoji 选择器,轻松在文档中插入表情符号。
- **查找替换**: Vditor 内置全文档查找和替换功能。
- **状态栏**: 实时显示字数、行数和光标位置。
- **文档恢复**: 自动备份和崩溃恢复,防止数据丢失。
- **文件树键盘导航**: 完整的键盘操作支持(方向键、Enter、Delete)。
- **模板功能**: 从预设模板快速创建新文档。
- **大纲搜索**: 大纲视图中支持快速搜索和跳转。
- **设置面板**: 可配置字体大小、行高、自动保存间隔、Vim 模式等。
- **自定义 CSS**: 支持注入自定义样式。
- **🔒 安全性**: 完善的 CSP 策略、HTML 清理、文件系统权限限制和外部链接验证。
- **🧪 测试**: 100+ 单元测试,覆盖核心 composables 和组件。
- **📝 统一日志**: 模块级日志系统,支持按环境自动过滤日志级别。
- **🌍 国际化**: 完整支持英语和简体中文。
- **📤 导出**: 将文档导出为带样式的 HTML 和 PDF 文件。
## ⌨️ 快捷键
> **提示**: 编辑器内的快捷键(如查找替换 `Ctrl+F`、表情选择器、表格插入等)由 Vditor 内置处理。以下为全局应用级快捷键:
| 快捷键 | 动作 |
|----------|--------|
| `Ctrl/Cmd + N` | 新建文件 |
| `Ctrl/Cmd + O` | 打开文件 |
| `Ctrl/Cmd + Alt + O` | 打开文件夹 |
| `Ctrl/Cmd + S` | 保存文件 |
| `Ctrl/Cmd + Alt + S` | 另存为 |
| `Ctrl/Cmd + P` | 切换预览 |
| `Ctrl/Cmd + Alt + P` | 导出 PDF |
| `Ctrl/Cmd + Alt + H` | 导出 HTML |
| `Ctrl/Cmd + B` | 切换侧边栏 |
| `Ctrl/Cmd + Alt + B` | 切换大纲 |
| `F11` | 切换专注模式 |
## 🛠️ 技术栈
- **核心**: [Tauri v2](https://tauri.app/) (Rust + WebView)
- **前端**: [Vue 3](https://vuejs.org/) + [TypeScript](https://www.typescriptlang.org/)
- **样式**: [UnoCSS](https://unocss.dev/) (Atomic CSS)
- **状态管理**: Vue Composition API + [VueUse](https://vueuse.org/)
- **编辑器引擎**: [Vditor](https://b3log.org/vditor/) (即时渲染模式)
- **Markdown 解析**: 内置于 Vditor
- **图表渲染**: [Mermaid](https://mermaid.js.org/)
- **数学渲染**: [KaTeX](https://katex.org/)
## 🚀 快速开始
### 前置要求
- [Node.js](https://nodejs.org/) (v16+)
- [pnpm](https://pnpm.io/) (包管理器)
- [Rust](https://www.rust-lang.org/) (用于 Tauri 后端)
### 安装
1. 克隆仓库:
```bash
git clone https://gitee.com/tomwld/mark-flow.git
cd mark-flow
```
2. 安装依赖:
```bash
pnpm install
```
### 开发
启动带有热重载的开发服务器:
```bash
pnpm tauri dev
```
### 构建
构建生产环境应用:
```bash
pnpm tauri build
```
可执行文件将位于 `src-tauri/target/release/bundle/` 目录下。
## 📂 项目结构
```
MarkFlow/
├── src/ # 前端源代码
│ ├── components/ # Vue 组件 (编辑器, 预览, 侧边栏等)
│ ├── data/ # 静态数据 (Emojis 等)
│ ├── locales/ # i18n 翻译文件
│ ├── utils/ # 工具函数
│ ├── App.vue # 主应用组件
│ └── main.ts # 应用入口点
├── src-tauri/ # Rust 后端源代码
│ ├── src/ # Rust 源文件
│ ├── tauri.conf.json # Tauri 配置
│ └── Cargo.toml # Rust 依赖
└── uno.config.ts # UnoCSS 配置
```
## 📄 许可证
[MIT](LICENSE)