# OpenMD
**Repository Path**: muliuawa/OpenMD
## Basic Information
- **Project Name**: OpenMD
- **Description**: OpenMD-简洁 美观 高效的MarkDown查看器
- **Primary Language**: Rust
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2026-10-03
- **Last Updated**: 2026-10-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
为阅读而生的 Markdown 阅读器 — 快速、干净、无干扰。
## 特性
- **沉浸阅读**:无边框窗口、黑白灰主题、亮暗色一键切换(View Transitions 平滑过渡)
- 即时编辑:可视化编辑MarkDown,快捷菜单。
- **双视图**:渲染预览 / 源码高亮(highlight.js),均支持左侧目录导航与滚动同步
- **舒适排版**:字号调节(滑动动画)、铺满模式、悬浮滚动条
- **多标签页**:鼠标中键关闭标签,与浏览器操作习惯一致
- **最近打开**:首页最近文档列表,支持单条删除与一键清空
- **文件关联**:双击 `.md` / `.markdown` / `.mdown` / `.mkd` 直接打开(单实例转发)
- **自动更新**:从 GitCode Release 检查新版本,应用内下载并重启安装
- **自定义安装器**:独立安装/卸载向导,安装时可选关联 .md 文件,卸载时自动清理
## 界面预览
主页 — 最近文档
渲染预览 — 目录导航与滚动同步
源码视图
亮暗色主题一键切换
即时编辑

## 技术栈
| 层级 | 技术 |
| --- | --- |
| 前端 | React 19 · TypeScript · Chakra UI v3 · Vite |
| 后端 | Rust · Tauri 2 |
| 渲染 | markdown-it · highlight.js · DOMPurify |
## 开发
环境要求:Node.js 18+、Rust、WebView2(Windows 10/11 一般预装)。
```bash
pnpm install
pnpm tauri dev
```
## 构建
### 主程序
```bash
pnpm tauri build
# 产物:src-tauri/target/release/openmd.exe
```
### Linux
主程序基于 Tauri,本体跨平台。Linux 上通过系统的 WebKitGTK 渲染,需先安装 WebKitGTK 开发库(Debian/Ubuntu/Mint):
```bash
sudo apt install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
pnpm install
pnpm tauri build
# 产物:
# src-tauri/target/release/openmd 可执行文件
# src-tauri/target/release/bundle/deb/*.deb Debian/Ubuntu/Mint 安装包
# src-tauri/target/release/bundle/rpm/*.rpm Fedora/openSUSE/RHEL 安装包
# src-tauri/target/release/bundle/appimage/*.AppImage 免安装单文件(chmod +x 后直接运行)
```
Fedora/Arch 等其他发行版请参考 Tauri 官方文档安装对应的 `webkit2gtk-4.1` 开发包。
安装包的运行依赖在 `src-tauri/tauri.conf.json` 中声明;用户安装时由发行版的包管理器解析,不能用开发机上的 `-dev` 包代替验证。当前 64 位构建声明 glibc 2.39 为最低运行要求;支持更旧系统需要在更旧的兼容环境重新构建并调整依赖。
### macOS
主程序基于 Tauri,本体跨平台,Mac 上可直接构建原生 `.app`:
```bash
# 前置:xcode-select --install;Rust(rustup);Node ≥20 + pnpm
source "$HOME/.cargo/env"
pnpm install
pnpm tauri build
# 产物:src-tauri/target/release/bundle/macos/OpenMD.app
```
详见 [docs/BUILD-macOS.md](docs/BUILD-macOS.md)(含依赖、安装、DMG 打包与
macOS 适配改动说明)。
### 安装包(安装器 + 卸载器,Windows)
发布走自定义安装向导,需依次构建三个工程:
```powershell
# 1. 构建卸载器
cd uninstaller
npm install --legacy-peer-deps
npm run tauri:build
cd ..
# 2. 打包 payload 并构建安装器
cd installer
npm install --legacy-peer-deps
.\pack-payload.ps1 # 将 openmd.exe + md-file.ico + uninstOpenMD.exe 打进 payload.zip
.\build-installer.ps1 # 产出 OpenMD_{version}_Windows_x86_64.exe
```
### 微软商店(MSIX,Windows)
上架微软商店走 MSIX 打包,商店版会按微软政策隐藏商店外入口(平台标签、QQ 群、
赞助、应用内更新等):
```powershell
pnpm tauri:build:store # 商店版构建
pnpm msix # 打出 msix/out/OpenMD_{version}_x64.msix
pnpm msix:install # 本地侧载测试
```
详见 [docs/BUILD-MSIX.md](docs/BUILD-MSIX.md)(含 Partner Center 包身份配置、
提交流程与常见问题)。
## 项目结构
```
├── src/ # 前端源码(React)
├── src-tauri/ # 主应用 Rust 后端
├── installer/ # 安装向导(独立 Tauri 工程)
│ ├── pack-payload.ps1
│ └── build-installer.ps1
├── uninstaller/ # 卸载程序(独立 Tauri 工程)
├── docs/ # 界面截图(README 预览图)
└── public/ # 静态资源(Logo、字体、收款码等)
```
## 许可证
本项目基于 [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.html) 协议开源。
## 作者
**木流(MuLiu)**
- 官网:[https://openmd.nexbox.cn](https://openmd.nexbox.cn)
- GitCode:[https://gitcode.com/MuLiuSaMa/OpenMD](https://gitcode.com/MuLiuSaMa/OpenMD)
- GitHub:[https://github.com/MuLiuSaMa/OpenMD](https://github.com/MuLiuSaMa/OpenMD)
- Gitee:[https://gitee.com/muliuawa/OpenMD](https://gitee.com/muliuawa/OpenMD)