Haml renders HTML with indentation reflecting the nesting level of elements. When it comes to white-space preserving content, this may become a problem: the content will be rendered including the HTML indentation.
Problematic: Preserved Indentation
.nest
  %span Reference
  %pre
    = content
<div class="nest">
    <span>Reference</span>
    <pre>
        Hello
        World
    </pre>
</div>
Better: Without Extra Indentation
Render with tilde ~ instead of equals = to keep Haml from indenting content:
.nest
  %span Reference
  %pre
    ~ content
<div class="nest">
    <span>Reference</span>
    <pre>
Hello
World
    </pre>
</div>
Textareas
In some versions of Haml + Rails, this may also be an issue for textarea elements. Fix it similarly:
# Indented description
= form.text_area :description
# Unindented description
~ form.text_area :description
Posted by Dominik Schöler to makandra dev (2025-03-11 09:21)