Js-beautify: 无法正确格式化 SVG 文件

创建于 2016-09-14  ·  3评论  ·  资料来源: beautify-web/js-beautify

描述

该库不能正确处理 SVG 文件——它做了一些事情,但不是它应该做的。

输入

美化前的这段代码(我已经简化了它并故意弄乱了缩进;它与原始/完整标记相同):

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     viewBox="0 0 36 36" style="enable-background:new 0 0 36 36;" xml:space="preserve">
                    <rect id="XMLID_20_" x="-7" 
                          class="st0" 
                          width="49" height="36"/>
</svg>

预期产出

我不确定它应该是什么样子。 如果我们允许/保留标签属性之间的换行符,也许就是这样。

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     viewBox="0 0 36 36" style="enable-background:new 0 0 36 36;" xml:space="preserve">
     <rect id="XMLID_20_" x="-7" 
           class="st0"
           width="49" height="36"/>
</svg>

...或者是否应该删除它们

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 36 36" style="enable-background:new 0 0 36 36;" xml:space="preserve">
     <rect id="XMLID_20_" x="-7" class="st0" width="49" height="36"/>
</svg>

实际产量

美化后的代码实际上是这样的:

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 36 36" style="enable-background:new 0 0 36 36;" xml:space="preserve">
                    <rect id="XMLID_20_" x="-7" 
                          class="st0" 
                          width="49" height="36"/>
</svg>

请注意,仅删除了<svg>开头标记(属性之间)中的一个换行符(对<rect>换行符没有做任何处理)。 根本没有改变缩进。

环境

操作系统:Windows 10 Pro 64 位

设置

默认。

补充说明

我尝试将文件扩展名更改为 XML 并再次运行 beautify - 这是我最近的解决方法 - 但结果与上面显示的相同(过去它工作正常)。 XML 美化似乎有问题(我假设库的同一部分正在处理 SVG 和 XML)。

先前在https://github.com/brackets-beautify/brackets-beautify/issues/223 中报道

fixed? bug

最有用的评论

任何进展? 我如何美化内联 svg?

所有3条评论

这根本没有格式化: <svg><defs><path></path></defs></svg>

任何进展? 我如何美化内联 svg?

这似乎已由 v1.8.0-rc14 解决。 我正在为它编写测试,并将在一个小时结束前提交 PR。

此页面是否有帮助?
0 / 5 - 0 等级