rathlinus/gravit-designer

GitHub: rathlinus/gravit-designer

Gravit Designer 的本地托管版本,实现完全离线运行、解锁 Pro 功能,并提供逆向工程分析工具链。

Stars: 20 | Forks: 10

# Gravit Designer — 自托管版

Gravit Designer Logo

Gravit Designer (Corel Vector) 的本地托管版本,包含逆向工程模块系统、离线功能和完整的 Pro 功能 — 无需云端账户。

## 截图
Welcome Screen New Document
Welcome Screen New Document
## 功能特性 - **完全离线** — 在 `localhost` 上运行,运行时零外部依赖 - **解锁 Pro 授权** — 开箱即用,所有高级功能可用 - **Express 服务器** — 支持静态文件服务、WebSocket 和 API 桩 - **多语言支持** — 包含 EN、DE、FR、ES、JA、ZH 等在内的 15 种语言 - **内置文档** — 完整的 HTML 用户指南,服务地址为 `/docs` - **逆向工程工具包** — 用于提取、分析和重构混淆源码的工具 ## 快速开始 ### 环境要求 - **Node.js** ≥ 18.0.0 - **npm** ### 安装 ``` git clone gravit-designer cd gravit-designer npm install ``` ### 运行 ``` # Production npm start # Development (auto-restart on changes) npm run dev ``` 在浏览器中打开 **http://localhost:3100**。 ## 项目结构 ``` gravit-designer/ ├── server.js # Express + WebSocket server ├── package.json ├── manifest.json # PWA manifest │ ├── public/ # Client-side application │ ├── index.html # Entry point │ ├── designer.browser.js # Main app bundle (~6.7 MB) │ ├── designer.browser.dev.js # Dev build (generated) │ ├── chunk.vendor.js # Core engine (~11.7 MB) │ ├── assets/ │ │ ├── font/ # Bundled fonts │ │ ├── icon/ # UI icons │ │ ├── img/ # Images & branding │ │ └── prerendered/ # App icons (16–512 px) │ └── *.worker.js # Web Workers (PDF, PS, autosave) │ ├── routes/ │ ├── user.js # User profile & settings API │ └── ws.js # WebSocket (license heartbeat) │ ├── docs/ # Full HTML user guide (~90 pages) │ └── images/ # Guide screenshots & illustrations │ ├── scripts/ │ └── generate-icons.cjs # SVG icon generator │ └── reverse-engineering/ # Source analysis toolkit ├── build-bundle.cjs # Rebuilds dev bundle ├── extract-all-modules.cjs ├── analyze-refs.cjs ├── rename-variables.cjs ├── extracted-modules/ # Webpack module maps ├── reconstructed/ # Reconstructed source files ├── analysis/ # Class & reference reports └── README.md # Toolkit documentation ``` ## NPM 脚本 | 脚本 | 描述 | | --------------- | ---------------------------------- | | `npm start` | 在端口 3100 启动服务器 | | `npm run dev` | 使用 `--watch` 启动以实现自动重载 | | `npm run build` | 从逆向工程模块重新构建开发包 | | `npm run icons` | 生成 SVG 图标集 | | `npm run serve` | 构建 + 启动,一条命令完成 | | `npm run clean` | 删除生成的开发包 | ## 服务器 API Express 服务器暴露轻量级桩,以便客户端完全离线运行: | 端点 | 方法 | 用途 | | ------------------------------------- | ------ | ------------------------------ | | `/connection/test` | GET | 连接检查 → `"OK"` | | `/maintenance/status` | GET | 维护标志 → `{ maintenance: false }` | | `/license` | GET | 许可信息 → Pro 计划,无过期时间 | | `/subscription/test` | GET | 订阅状态 → 活跃 Pro | | `/user/profile` | GET | 本地用户配置 | | `/file` | GET | 文件列表 (空) | | `/i18n-url/:locale/designer` | GET | i18n 资源 URL | | `ws://localhost:3100/license/license` | WS | 许可证心跳 | ## 文档 捆绑的用户指南服务地址为 **http://localhost:3100/docs**,涵盖内容:
- 入门指南与快速开始 - 绘图与形状工具 - 矢量结构与路径 - 颜色、渐变与纹理 - 填充、边框与效果 - 文本属性与路径文本 - 图层、编组与符号 - 对齐、分布与网格 - 导入、导出与文件格式 - 混合模式与剪贴蒙版 - 键盘快捷键 - 触摸界面指南

Interface Overview

## 逆向工程 `reverse-engineering/` 目录包含用于分析和修改 Gravit Designer 源代码的完整工具包。关键发现: - **保留所有类名** — `GObject`、`GScene`、`GEditor`、`GPaintCanvas` 等。 - **保留所有方法名** — `getBBox`、`transform`、`paint`、`hitTest` 等。 - **继承树完整** — 通过 `GObject.inherit()` 模式实现 ``` cd reverse-engineering npm install node build-bundle.cjs # Rebuild the dev bundle node extract-all-modules.cjs # Extract webpack module map node analyze-refs.cjs # Cross-reference analysis node rename-variables.cjs # Improve minified variable names ``` 请参阅 [reverse-engineering/README.md](reverse-engineering/README.md) 获取完整的工具包文档。 ## 技术栈 | 组件 | 技术 | | -------- | --------------------------------- | | Server | Node.js + Express 5 | | WebSocket| ws 8.x | | Client | Gravit Designer (Webpack bundle) | | Workers | PDF 导出、PostScript、自动保存 | | Styles | Light & Dark 主题 (CSS) | | PWA | Web App Manifest + Service Worker | ## 主题 Gravit Designer 开箱即附带两种主题: | 主题 | 样式表 | | ---- | ---------------------------- | | Light | `designer.browser.light.css` | | Dark | `designer.browser.dark.css` |
Light Theme Dark Theme
Light Theme Dark Theme
## 配置 | 变量 | 默认值 | 描述 | | -------- | ------- | -------------------------------- | | `PORT` | `3100` | 服务器端口 (通过环境变量设置) | ``` # Run on a custom port PORT=8080 npm start ``` ## 许可证 本项目仅供**教育和个人使用**。Gravit Designer / Corel Vector 是 Alludo(前身为 Corel Corporation)拥有的专有软件。原始应用程序的所有权利归其各自所有者所有。
标签:Corel Vector, DNS 反向解析, Express, GNU通用公共许可证, Gravit Designer, IPv6支持, MITM代理, Node.js, PWA, SVG编辑器, UI设计, WebSocket, 云资产清单, 依赖分析, 免费Pro功能, 响应拦截, 开源设计工具, 提示词注入, 数据可视化, 本地离线, 矢量图形设计, 矢量绘图, 破解版, 自定义脚本, 自托管, 跨平台设计, 逆向工程