- 💯 免费 + 开源
- ⚒️ 思维导图、流程图
- 🖌 画笔
- 😀 插入图片
- 🚀 基于插件机制
- 🖼️ 📃 导出为 PNG, JSON(
.drawnix) - 💾 自动保存(浏览器缓存)
- ⚡ 编辑特性:撤销、重做、复制、粘贴等
- 🌌 无限画布:缩放、滚动
- 🎨 主题模式
- 📱 移动设备适配
- 📈 支持 mermaid 语法转流程图
- ✨ 支持 markdown 文本转思维导图
- 🔐 用户认证系统:支持游客模式和注册登录
- 📚 多画板管理:创建、重命名、删除多个画板
- ☁️ 云端同步:注册用户数据自动同步到服务器
- 💾 数据持久化:基于SQLite的可靠数据存储
- 🎨 现代化UI:精心设计的登录界面,流畅的动画效果
- 🚀 PM2部署:生产环境级别的进程管理
Drawnix ,源于绘画( Draw )与凤凰( Phoenix )的灵感交织。
凤凰象征着生生不息的创造力,而 Draw 代表着人类最原始的表达方式。在这里,每一次创作都是一次艺术的涅槃,每一笔绘画都是灵感的重生。
创意如同凤凰,浴火方能重生,而 Drawnix 要做技术与创意之火的守护者。
Draw Beyond, Rise Above.
Drawnix 的定位是一个开箱即用、开源、免费的工具产品,它的底层是 Plait 框架,Plait 是我司开源的一款画图框架,代表着公司在知识库产品(PingCode Wiki)上的重要技术沉淀。
Drawnix 是插件架构,与前面说到开源工具比技术架构更复杂一些,但是插件架构也有优势,比如能够支持多种 UI 框架(Angular、React),能够集成不同富文本框架(当前仅支持 Slate 框架),在开发上可以很好的实现业务的分层,开发各种细粒度的可复用插件,可以扩展更多的画板的应用场景。
drawnix/
├── apps/
│ ├── web # drawnix.com
│ │ └── index.html # HTML
├── dist/ # 构建产物
├── packages/
│ └── drawnix/ # 白板应用
│ └── react-board/ # 白板 React 视图层
│ └── react-text/ # 文本渲染模块
├── examples/
│ └── server-with-boards.js # 服务端(包含用户认证和多画板管理)
├── scripts/ # 部署脚本
│ ├── start.sh # 启动脚本
│ ├── stop.sh # 停止脚本
│ └── restart.sh # 重启脚本
├── ecosystem.config.js # PM2 配置
├── package.json
├── ...
└── README.md
└── README_en.md
https://mind.yangsir.net 是 drawnix 的最小化应用。
近期会高频迭代 drawnix.com,直到发布 Dawn(破晓) 版本。
# 安装依赖
npm install
# 启动开发服务器
npm run start# 安装依赖
npm install
# 构建前端
npm run build:web
# 启动服务(自动使用PM2)
bash scripts/start.sh# 安装PM2
npm install -g pm2
# 构建前端
npm run build:web
# 启动服务
pm2 start ecosystem.config.js
# 查看状态
pm2 list
# 查看日志
pm2 logs drawnix-server# 构建前端
npm run build:web
# 启动服务器
node examples/server-with-boards.js服务器启动后访问:
- 🔐 登录页: http://localhost:4123/login
- 📱 主页: http://localhost:4123
服务端版本提供以下功能:
- 游客模式:无需注册即可使用,数据保存在本地
- 用户注册/登录:注册账号后数据同步到服务器
- 多画板管理:创建、重命名、删除多个画板
- 数据持久化:使用SQLite数据库存储数据
docker pull pubuzhixing/drawnix:latest- plait - 开源画图框架
- slate - 富文本编辑器框架
- floating-ui - 一个超级好用的创建弹出层基础库
欢迎任何形式的贡献:
-
提 Bug
-
贡献代码
特别感谢公司对开源项目的大力支持,也感谢为本项目贡献代码、提供建议的朋友。
