Js-beautify: Не удается правильно отформатировать файлы SVG

Созданный на 14 сент. 2016  ·  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 рейтинги