Js-beautify: Falha ao formatar arquivos SVG corretamente

Criado em 14 set. 2016  ·  3Comentários  ·  Fonte: beautify-web/js-beautify

Descrição

A biblioteca não manipula arquivos SVG adequadamente - ela faz algo, mas não o que deveria.

Entrada

Este código antes do embelezamento (simplifiquei e baguncei o recuo intencionalmente; era o mesmo com a marcação original / completa):

<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>

Saída Esperada

Não tenho certeza de como deveria ser. Talvez assim, se permitirmos / retermos quebras de linha entre os atributos da tag.

<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>

... ou se eles deveriam ser removidos

<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>

Saída real

O código realmente ficou assim após o embelezamento:

<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>

Observe que apenas uma quebra de linha na tag de abertura <svg> (entre os atributos) foi removida (não fez nada sobre quebras de linha em <rect> ). Não alterou recuos em tudo.

Meio Ambiente

SO: Windows 10 Pro 64 bits

Definições

Padrão.

Comentário adicional

Tentei alterar a extensão do arquivo para XML e executar o beautify novamente - essa era minha solução alternativa até recentemente - mas o resultado foi o mesmo mostrado acima (funcionou corretamente no passado). Parece que há algo errado com o embelezamento de XML (estou assumindo que a mesma parte da biblioteca está lidando com SVG e XML).

Relatado anteriormente em https://github.com/brackets-beautify/brackets-beautify/issues/223

fixed? bug

Comentários muito úteis

Algum progresso? Como posso embelezar o SVG embutido?

Todos 3 comentários

Isso não é formatado de forma alguma: <svg><defs><path></path></defs></svg>

Algum progresso? Como posso embelezar o SVG embutido?

Isso parece ter sido resolvido pela v1.8.0-rc14. Estou escrevendo testes para ele e apresentarei um PR no final da hora.

Esta página foi útil?
0 / 5 - 0 avaliações