一个基于 Tauri 和 SvelteKit 开发的 PlantUML 图形编辑器,提供类似 Markdown 编辑器的实时预览体验。
- 🖼️ 实时预览: 左侧编辑 PlantUML 代码,右侧实时显示生成的图像
- ⚡ 快速渲染: 基于本地 PlantUML JAR 包,无需网络连接
- 🎨 友好界面: 类似 Markdown 编辑器的直观用户界面
- 💾 文件管理: 支持打开、保存和管理 PlantUML 文件
- 🔧 跨平台: 基于 Tauri 构建,支持 Windows、macOS 和 Linux
- 前端框架: SvelteKit
- 桌面应用: Tauri
- PlantUML 引擎: libplantuml-fat.jar (本地)
- 样式: CSS/SCSS
- 开发语言: TypeScript, Rust
plantuml-edit/
├── src-tauri/ # Tauri 后端代码 (Rust)
├── src/ # SvelteKit 前端代码
├── lib/ # 依赖库
│ └── libplantuml-fat.jar # PlantUML JAR 包
├── static/ # 静态资源
└── README.md
- Bun (latest)
- Rust (latest stable)
- Java Runtime Environment (JRE 8+)
git clone <repository-url>
cd plantuml-edit# 安装前端依赖
bun install
# 安装 Tauri CLI (如果尚未安装)
bun add -g @tauri-apps/clibun run tauri devbun run tauri build- 启动应用: 运行应用后会看到分屏界面
- 编写代码: 在左侧面板输入 PlantUML 代码
- 实时预览: 右侧面板会实时显示生成的图像
- 文件操作: 使用菜单栏进行文件的打开、保存等操作
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: Another authentication Response
@enduml项目内置的 libplantuml-fat.jar 通过以下方式调用:
java -Djava.awt.headless=true -jar lib/libplantuml-fat.jar <Base64EncodedString>- 输入: Base64 编码的 PlantUML 字符串
- 输出: Base64 编码的图像数据
前端基于 SvelteKit,主要文件:
src/routes/+layout.svelte: 主布局src/routes/+page.svelte: 主页面src/lib/: 组件和工具函数
Tauri 后端处理:
- PlantUML 转换逻辑
- 文件系统操作
- Java 进程调用
invoke('convert_plantuml', { source }): 转换 PlantUML 代码为图像invoke('open_file'): 打开 PlantUML 文件invoke('save_file', { content, path }): 保存文件
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
- 基础编辑器功能
- 实时预览
- 文件管理
- 基本的用户界面
如有问题或建议,请提交 Issue 或 Pull Request。