119 lines
3.2 KiB
Markdown
119 lines
3.2 KiB
Markdown
# MD Editor
|
||
|
||
一款基于 **Tauri v2 + React + TypeScript** 构建的轻量级 Markdown 桌面编辑器,支持 GitHub 风格实时预览、明暗主题切换、文件关联与外部修改监听。
|
||
|
||
> 喵~ 这是一个仍在持续打磨中的小工具,欢迎 Star 和 Issue ✨
|
||
|
||
---
|
||
|
||
## 功能特性
|
||
|
||
- 📝 **双栏实时预览** — 左侧编辑,右侧同步渲染 GitHub 风格 Markdown
|
||
- 🌗 **明暗主题切换** — 编辑器与预览区均支持深色 / 浅色模式
|
||
- ⌨️ **常用快捷键** — 新建、打开、保存、切换视图一键直达
|
||
- 💾 **文件操作** — 新建、打开、保存、另存为,支持 `.md` / `.markdown` / `.txt`
|
||
- 🔗 **文件关联** — Windows 下可注册右键菜单“使用 MD 编辑器打开”
|
||
- 👀 **外部修改监听** — 文件被其他程序修改时自动提示重载
|
||
- 🚪 **退出保护** — 未保存时拦截关闭,防止误操作丢失内容
|
||
- 📱 **移动端构建** — 已配置 Android 构建脚本
|
||
|
||
---
|
||
|
||
## 技术栈
|
||
|
||
| 层级 | 技术 |
|
||
|------|------|
|
||
| 桌面框架 | [Tauri v2](https://v2.tauri.app/) |
|
||
| 前端框架 | React 19 + TypeScript 5 |
|
||
| 构建工具 | Vite 6 |
|
||
| 编辑器 | CodeMirror 6(`@codemirror/lang-markdown`) |
|
||
| Markdown 渲染 | Marked + Highlight.js |
|
||
| 样式 | 原生 CSS + github-markdown-css |
|
||
| 后端命令 | Rust(`std::fs` + Tauri 插件) |
|
||
|
||
---
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- [Node.js](https://nodejs.org/) ≥ 18
|
||
- [Rust](https://www.rust-lang.org/tools/install) 工具链
|
||
-(Windows)如需构建 `.msi` / `.exe` 安装包,建议安装 [Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/)
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
### 开发运行
|
||
|
||
```bash
|
||
npm run tauri dev
|
||
```
|
||
|
||
### 构建桌面应用
|
||
|
||
```bash
|
||
npm run tauri build
|
||
```
|
||
|
||
构建产物位于 `src-tauri/target/release/bundle/`。
|
||
|
||
### 构建 Android APK
|
||
|
||
```bash
|
||
npm run android
|
||
```
|
||
|
||
---
|
||
|
||
## 快捷键
|
||
|
||
| 操作 | 快捷键 |
|
||
|------|--------|
|
||
| 新建文件 | `Ctrl + N` |
|
||
| 打开文件 | `Ctrl + O` |
|
||
| 保存 | `Ctrl + S` |
|
||
| 另存为 | `Ctrl + Shift + S` |
|
||
| 切换编辑/预览/分屏 | `Ctrl + P` |
|
||
|
||
---
|
||
|
||
## 项目结构
|
||
|
||
```text
|
||
MDEditer/
|
||
├── public/ # 静态资源(图标、字体)
|
||
├── scripts/ # 字体子集化相关脚本
|
||
├── src/
|
||
│ ├── components/ # React 组件(Editor / Preview / Toolbar / StatusBar)
|
||
│ ├── context/ # 主题上下文
|
||
│ ├── hooks/ # 文件状态 Hook
|
||
│ ├── lib/ # Markdown 渲染
|
||
│ ├── styles/ # 全局与字体样式
|
||
│ ├── App.tsx # 主应用
|
||
│ └── main.tsx # 入口
|
||
├── src-tauri/
|
||
│ ├── src/ # Rust 源码
|
||
│ ├── icons/ # 应用图标
|
||
│ ├── Cargo.toml # Rust 依赖
|
||
│ └── tauri.conf.json # Tauri 配置
|
||
├── package.json
|
||
├── vite.config.ts
|
||
└── README.md
|
||
```
|
||
|
||
---
|
||
|
||
## 贡献
|
||
|
||
欢迎提交 Issue 或 Pull Request!如果你发现 bug 或有新功能建议,请随时交流。
|
||
|
||
---
|
||
|
||
## 许可证
|
||
|
||
本项目基于 [MIT License](./LICENSE) 开源。
|