Skip to content

finch-xu/PiDanMD

Repository files navigation

English

PiDanMD 皮蛋记

一个轻量美观的跨平台 Markdown 编辑器桌面应用,支持 macOS / Windows / Linux,提供实时预览、GFM、数学公式与代码高亮,开箱即用,并使用了霞鹜文楷字体美观简洁。

已实现功能

  • 双编辑模式 — 所见即所得 (Tiptap) + 源码编辑 (CodeMirror 6),一键切换
  • 多渲染模式 — 内置标准 Markdown、Skills、Hexo、Jekyll、Hugo 渲染,博客写作开箱即用
  • 多主题系统 — 亮色 / 暗色模式独立选择主题,支持语义化设计令牌
  • GFM + 数学公式 + 代码高亮 — 支持 GitHub Flavored Markdown、KaTeX 公式、代码语法高亮与 Mermaid 图表
  • 原生跨平台 — 基于 Tauri 2,安装包体积小、启动快,覆盖 macOS / Windows / Linux / x86_64 / ARM
  • 多语言支持 — 简体中文、繁體中文、English、日本語、한국어,自动跟随系统语言
  • 精心排版 — 内置霞鹜文楷 + Cascadia Code NF,中英文混排美观舒适
  • 文件树 + 大纲 + 状态栏 — 侧栏文件管理、文档大纲导航、底部状态栏显示字数与光标位置

平台支持

操作系统 架构 最低版本 安装格式
macOS ARM64 (Apple Silicon) macOS 14.6 (Sonoma) .dmg
Windows x64 Windows 10 (1803+) .msi .exe
Windows ARM64 Windows 11 .msi .exe
Linux x64 Ubuntu 22.04 / glibc 2.35+ .deb

技术选型

层级 技术
桌面框架 Tauri 2
前端框架 React 19
编辑器内核 Tiptap 3 (ProseMirror) + CodeMirror 6
UI 组件 shadcn/ui (New York)
状态管理 Zustand
样式 Tailwind CSS 4
图标 Lucide React
构建工具 Vite 7
语言 TypeScript 5 + Rust

环境要求

开发调试

# 1. 安装前端依赖
pnpm install

# 2. 启动开发模式(前端热更新 + Rust 自动重编译)
pnpm tauri dev

开发模式下 Vite 开发服务器运行在 http://localhost:5173,Tauri 窗口会自动加载该地址。前端代码修改后自动热更新,Rust 代码修改后会自动重新编译并重启应用。

如果只需要调试前端(不启动 Tauri 桌面窗口),可以单独启动 Vite:

pnpm dev

然后在浏览器中打开 http://localhost:5173(注意:Tauri API 调用在浏览器中不可用,仅用于调试 UI 布局和样式)。

打包构建

# 构建当前平台的安装包
pnpm tauri build

构建产物位于 src-tauri/target/release/bundle/,根据平台不同会生成:

平台 产物
macOS .dmg, .app
Windows .msi, .exe (NSIS)
Linux .deb, .rpm, .AppImage

如需仅构建前端(不打包桌面应用):

pnpm build

构建产物位于 dist/ 目录。

项目结构

PiDanMD/
├── src/                    # 前端源码 (React + TypeScript)
│   ├── components/ui/      # 通用 UI 组件 (shadcn/ui)
│   ├── features/           # 功能模块
│   │   ├── editor/         # Tiptap 编辑器 + CodeMirror 源码编辑 + 状态栏
│   │   ├── outline/        # 文档大纲面板
│   │   ├── settings/       # 设置弹窗
│   │   ├── sidebar/        # 文件侧栏
│   │   └── titlebar/       # 自定义标题栏
│   ├── stores/             # Zustand 状态管理
│   ├── lib/                # 工具函数 (Tauri 命令、i18n、主题、配置持久化)
│   ├── hooks/              # React Hooks
│   ├── styles/             # 编辑器样式
│   ├── App.tsx             # 根组件
│   └── main.tsx            # 入口
├── src-tauri/              # Rust 后端 (Tauri 2)
│   ├── src/
│   │   ├── commands/       # Tauri 命令 (文件操作、配置、字体)
│   │   ├── error.rs        # 类型化错误处理
│   │   ├── menu.rs         # 应用菜单
│   │   └── state.rs        # 应用状态
│   └── tauri.conf.json     # Tauri 配置
├── public/                 # 静态资源 (logo、字体)
└── package.json

内置字体

本项目内置以下字体,详见 THIRD_PARTY_LICENSES

字体 用途 许可证
LXGW WenKai Screen (霞鹜文楷屏幕阅读版) 正文 / UI SIL OFL 1.1
Cascadia Code NF 代码 SIL OFL 1.1

许可证检查

本项目使用 cargo-deny 检查 Rust 依赖的许可证兼容性。

cargo install cargo-deny        # 首次使用需安装
cd src-tauri && cargo deny check licenses

致谢

本项目的界面设计受到 妙言 MiaoYan 的启发。如果你正在寻找一款原生 macOS Markdown 编辑器,强烈推荐妙言。

License

MIT

About

A lightweight and elegant cross-platform Markdown editor for macOS, Windows, and Linux. Features live preview, GFM, math equations, syntax highlighting, and ships with the beautiful LXGW WenKai font out of the box.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors