Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can you get ERB to properly indent when rendered?

I have several partials that I'm including in my Rails application.html.erb file, but the resulting HTML doesn't preserve my indenting (formatting). I've been told that the first line gets rendered with the same indentation-level as the call to _partial.html.erb, but all subsequent lines in the partial just get left-aligned.

This results in code like (see my comments for positioning):

<body>
    <div id="outer">

        <div class="contentwidth main">
            <div class="logo"> <<<<< Shouldn't be this far to the right
    <h1><a href="index.html">minimal.</a></h1>
</div><!-- end logo -->     <<<<<<< Shouldn't be way over to the left

Is there any way to fix this/format my included partials better using ERB? Or do I need to use HAML?

like image 847
Trent Scott Avatar asked Apr 17 '11 05:04

Trent Scott


2 Answers

Not the answer you want - but - no, there's nothing built into Rails to auto-indent ERB.

like image 187
smathy Avatar answered Oct 30 '22 04:10

smathy


The doc on filters contains an example of using an after filter to compress the html before sending it to the browser.

Doing something similar, but using something like Tidy to reformat and replace the html where this example does a compress might do the trick.

like image 34
Don Roby Avatar answered Oct 30 '22 04:10

Don Roby