我通常将draw.io 绘图导出为SVG,并选择“包含我的图表的副本”选项。这使我能够在支持 SVG 的浏览器中显示它们,然后在 draw.io 中打开并进一步修改它们。
我想对 SVG 文件进行一些脚本化编辑,例如修改我添加到形状的链接的 href,但通常是任何内容。在我有限的测试中,我发现我可以在文本编辑器中打开这些 SVG 文件之一,更改 href,保存,并且仍然在浏览器和 draw.io 中重新打开该文件。
让我担心的是 SVG 文件中的 Base-64 文本块,我认为它是嵌入的“我的图表的副本”。我是否冒着 SVG 与嵌入图表不同步的风险,或者这样做安全吗?
小智 5
您使 SVG 与嵌入的图表不同步。Base64 编码文本只是 XML 数据的 GZIP 压缩表示形式。此示例演示如何解压缩/压缩 XML:https://github.com/jgraph/drawio-tools/blob/master/tools/convert.html(SVG 输出是第一页的输出,即第一个图表标签在 mx 文件中)。您可以在https://jgraph.github.io/drawio-tools/tools/convert.html上看到它的实际效果。 最后,为了将 SVG 输出链接到 XML 数据,有一个插件可以嵌入单元格 ID(和元数据) )在 SVG 输出中(请参阅https://github.com/jgraph/drawio/blob/master/war/plugins/svgdata.js或https://www.draw.io?p=svgdata)。