如何在没有遮罩或覆盖的情况下使用草图插件导出干净的SVG。草图49.3

如何在没有遮罩或覆盖的情况下使用草图插件导出干净的SVG。草图49.3,svg,sketchapp,Svg,Sketchapp,当我将MSSymbolInstances导出为SVG时,我总是在SVG代码中得到这一行 <g id="????/Fill/Gray-3" mask="url(#mask-2)" fill="#6A6A78"> 直到我手动编辑上面的填充并将“#1D1F20”更改为“无”,我才能在程序中使用SVG。是否有任何方法可以在不使用此特定填充或掩码的情况下导出SVG 为此,我尝试了几种方法:- 循环遍历所有图层,如果是mssymbolinstance,则使用新的草图API sketch.e

当我将MSSymbolInstances导出为SVG时,我总是在SVG代码中得到这一行

<g id="????/Fill/Gray-3" mask="url(#mask-2)" fill="#6A6A78">

直到我手动编辑上面的填充并将“#1D1F20”更改为“无”,我才能在程序中使用SVG。是否有任何方法可以在不使用此特定填充或掩码的情况下导出SVG

为此,我尝试了几种方法:-

  • 循环遍历所有图层,如果是mssymbolinstance,则使用新的草图API sketch.export(图层,选项)导出。。这是行不通的

  • 尝试复制图层将其转换为组,然后使用group.export,如下所示:

    var duplicates=layers[j].duplicate(); var group=duplicates.detachByReplacingWithGroup(); 组=新草图。组(组); 集团出口({ “格式”:“svg”, 输出:outputPath, //“将id用于名称”:true, }); 组。删除()

  • 这也不起作用,因为输出SVG都具有带有某些填充颜色替代的遮罩

  • 此方法与2相同。在这里,我只是在将图层转换为一个组并导出之前不复制它,但是这还有其他缺点。 ->首先,它会删除符号实例,从而更改草图文档。 ->其次,我必须多次运行它,并且经常抛出关于 -[NSNull name]:发送到实例0x7fffa6e3ecc0的选择器无法识别

  • 请帮助。

    尝试使用我制作的npm软件包。它删除defs和g(它们倾向于包含掩码)元素,并将path元素浮动到svg的顶层。我有一些使它更有用的计划,但请告诉我是否可以添加一些东西,使它更适合您的用例