关于
drawio-desktop 是一个基于 Electron 的图表绘制和白板桌面应用程序,它封装了 draw.io 核心编辑器。
可以从 releases 部分 下载编译好的二进制文件。
我可以免费使用这个应用程序吗? 是的,根据 Apache 2.0 许可证。如果你不更改代码并接受其"按原样"提供的条件,你可以将其用于任何目的。
安全性
draw.io Desktop 被设计为完全与互联网隔离,除了更新过程。它在启动时检查 github.com 是否有新版本,并从 Github 拥有的 AWS S3 存储桶下载。所有 JavaScript 文件都是自包含的,内容安全策略禁止运行远程加载的 JavaScript。
图表数据永远不会被发送到外部,我们也不会向外部发送任何关于应用程序使用情况的分析数据。这意味着某些我们没有 JavaScript 实现的功能在桌面版中不起作用,即 .vsd 和 Gliffy 导入。
安全性和应用程序隔离是 draw.io desktop 的主要目标。如果你要求任何涉及默认启用外部连接的功能,答案将是否定的。
支持
我们在合理的业务限制基础上提供支持,但没有任何合同约束。所有支持都通过这个仓库提供。没有私人票务支持。
购买 Confluence 或 Jira 版的 draw.io 并不意味着你有权获得 draw.io desktop 的商业支持。Atlassian 的 draw.io 集成由 Seibert Media 销售,他们与这个项目没有任何关系。
开发
draw.io 是 drawio-desktop 的 git 子模块。要同时获取两者,你需要递归克隆:
git clone --recursive https://github.com/jgraph/drawio-desktop.git
运行步骤:
npm install
(在此仓库的根目录中)- 如果你想在开发模式下开发/调试,请导出 DRAWIO_ENV=dev。
- 在此仓库的根目录中运行
npm start
来启动应用程序。要进行调试,请使用npm start --enable-logging
。
注意:如果使用符号链接来引用 drawio 仓库(而不是子模块),那么也要为 drawio/src/main/webapp
中的 node_modules
目录创建符号链接。
发布步骤:
- 更新 draw.io 子模块并推送更改。在推送到 origin 之前添加版本标签。
- 等待构建完成(https://travis-ci.org/jgraph/drawio-desktop 和 https://ci.appveyor.com/project/davidjgraph/drawio-desktop)
- 转到 https://github.com/jgraph/drawio-desktop/releases,编辑预览版本。
- 下载 Windows exe 和 Windows 便携版,使用
signtool sign /a /tr http://rfc3161timestamp.globalsign.com/advanced /td SHA256 c:/path/to/your/file.exe
对它们进行签名。 - 将签名后的文件重新上传为
draw.io-windows-installer-x.y.z.exe
和draw.io-windows-no-installer-x.y.z.exe
。 - 添加发布说明。
- 发布版本。
注意:在 Windows 版本中,当同时使用 x64 和 is32 作为架构时,结果是一个包含两种架构的大文件。这就是为什么我们将它们分开的原因。
本地存储和会话存储保存在 AppData 文件夹中:
- macOS:
~/Library/Application Support/draw.io
- Windows:
C:\Users\<用户名>\AppData\Roaming\draw.io\
不接受外部贡献
draw.io 不接受外部贡献。
这个项目的复杂程度意味着即使是简单的更改也可能破坏许多其他相关部分。所需的测试量远远超出最初的预期。如果我们收到一个 PR,我们基本上必须放弃它,然后按照我们希望的方式重新实现。
我们感谢社区的参与、错误报告和功能请求。我们不希望给人任何不欢迎的印象,但是,为了项目的长期可行性,我们已经决定不接受外部贡献。