Your recommended way to format EEx templates?

phoenix
eex

#1

Could you share your way of formatting EEx templates? Say if I want to render a list of lists: list_of_lists = [[1,2],[3,4],[5,6]], I’ve seen several ways:

  1. indent every control statement and markup
<section>
  <%= for list <- @list_of_lists do %>
    <ol>
      <%= for number <- list %> 
        <li><%= number %></li>
      <% end %>
    </ol>
  <% end %>
</section>
  1. indent only the markup, align the control statements with the parent markup:
<section>
<%= for list <- @list_of_lists do %>
  <ol>
  <%= for number <- list %> 
    <li><%= number %></li>
  <% end %>
  </ol>
<% end %>
</section>

I see pros and cons of both. First way seems to be easier to read because it looks like a stack, but the inner most line can get really long due to the indentation, and the for comprehension isn’t really a child of the parent tag…Second way doesn’t generate long lines, also if you ignore the “non-html” code, the markups look like they have the right structure, but it is a little harder to read because my eyes has to go zigzag.

What do you think?


#2

In my opinion, the right way is your way. Whichever way makes you feel more satisfied with what you wrote. My personal preference is the first option. It flows better and easier to read. It used to bother me that it produced extra spaces, but I rarely read the final raw HTML. During debugging the HTML I would review would be through Firefox’s inspector pane.