如何从Sketch中导出不带"?xml"标签的SVG图标
Sketch导出SVG时移除
<?xml标签的可行方案 目前Sketch原生导出功能没有提供关闭XML声明标签的可视化开关,可以通过以下几种方式实现需求:
- 导出后批量脚本处理(最稳定,零额外成本)
导出完成后,进入SVG文件存放的目录,通过Mac终端执行一行命令即可批量移除所有SVG文件开头的<?xml ...?>声明段,不会改动SVG其余内容:
处理后的文件完全符合现代渲染环境的使用要求,不会出现显示异常。sed -i '' 's/<?xml[^>]*?>//g' *.svg - 借助第三方导出插件自动处理
安装SVGO类的SVG优化导出插件,在插件配置中确认开启removeXMLProcInst(移除XML处理指令)规则(该规则默认处于开启状态),后续通过插件导出SVG时,会自动删除XML声明标签,同时还能自动清理SVG内的冗余代码、减小文件体积。 - 不推荐方案:修改Sketch内部导出模板
部分历史版本的Sketch可以通过修改安装包内的SVG导出模板文件,删除XML声明相关的模板代码实现效果,但Sketch每次版本更新都会覆盖内部资源文件,修改后每次更新都需要重新配置,稳定性极差,不建议使用。
补充说明:
<?xml开头的声明段属于SVG规范中的可选内容,目前所有主流浏览器、设计工具、前端开发框架都完美兼容不带该声明的SVG文件,移除后不会产生任何使用问题。
内容的提问来源于stack exchange,提问作者Michael Rýdl
相关产品推荐
相关产品推荐

