Wagner Andrade

Simplificando a WEB

Wagner Andrade header image 2

Line break no HTML gerado pelo Rails

julho 17th, 2008 · 5 Comments · Ruby on Rails

Existem várias formas de aplicar boas práticas de programação, são muitas recomendações que devemos seguir para obtermos códigos e aplicações com qualidade. Uma boa prática que cuido muito é o HTML resultante da aplicação, o que vai ser gerado ao usuário.

Em um HTML confuso e mal feito fica difícil dar manutenção. Já me disseram que esse tipo de detalhe é puro preciosismo, que não muda em nada o resultado final. Muda! A Apple é a prova que detalhes de acabamento mudam a cara de um produto, inclusive acabamentos internos. Muitas marcas conceituadas de automóveis também se encaixam nesse exemplo. “Mas Wagner, a maioria dos usuários nem sabe o que é HTML“, mas alguns sabem, e são esses que formam sua reputação no meio profissional.

As vezes olhando o fonte de alguns sites fico imaginando como seria a mesa da criatura que escreveu aquilo.

Bom, já fugi do assunto. Na verdade só quero mostrar uma funcionalidade do Rails – mais precisamente do ERB – que as vezes é esquecida.

Já perceberam que as linhas de código script no template erb (rhtml) geram linhas em branco adicionais? Por exemplo:

>> <% um 'if' qualquer aqui %>
>>   <p>Alguma coisa escrita aqui.</p>
>> <% end %>
>> <p>Outro elemento aqui.</p>

=>
=>   <p>Alguma coisa escrita aqui.</p>
=>
=> <p>Outro elemento aqui.</p>

Para eliminar as linhas em branco geradas pelo código, utilize -%> ao fechar a tag, desta forma:

>> <% um 'if' qualquer aqui -%>
>>   <p>Alguma coisa escrita aqui.</p>
>> <% end -%>
>> <p>Outro elemento aqui.</p>

=>   <p>Alguma coisa escrita aqui.</p>
=> <p>Outro elemento aqui.</p>

Nesse pequeno trecho quase não há diferença, mas em iterações maiores – linhas de uma table, por exemplo – faria uma diferença bem grande. Isso já ajuda a organizar um pouquinho mais seu HTML.

Como dizia minha avó, Seja Caprichoso! E eu já vi pessoas perderem empregos e namoradas por falta disso.

Tags: ·

5 Comments so far ↓

Leave a Comment