Skip to content

Linter Rule: Disallow extra newlines ​

Rule: erb-no-extra-newline

Description ​

Disallow more than two consecutive blank lines in ERB templates. This rule enforces a maximum of two blank lines between content to maintain consistent vertical spacing throughout your templates.

Rationale ​

Excessive blank lines can make templates harder to read and maintain. While some vertical spacing improves readability by visually separating logical sections, too many blank lines create unnecessary whitespace that:

  • Makes it harder to see related code on the same screen
  • Creates inconsistent visual rhythm in the codebase
  • Can accidentally accumulate through merge conflicts or refactoring
  • Provides no additional clarity beyond what 1-2 blank lines already achieve

Limiting to two consecutive blank lines strikes a balance between allowing clear section separation while maintaining code density and readability.

Examples ​

✅ Good ​

html
line 1

line 3

<div>
  <h1>Title</h1>
</div>

<div>
  <h1>Section 1</h1>

  <p>Content here</p>
</div>

<div>
  <h1>Section 1</h1>


  <h1>Section 2</h1>
</div>

🚫 Bad ​

erb
line 1


Extra blank line detected. Remove 1 blank line to maintain consistent spacing (max 2 allowed). (erb-no-extra-newline)
line 3 <div> <h1>Title</h1>
Extra blank line detected. Remove 1 blank line to maintain consistent spacing (max 2 allowed). (erb-no-extra-newline)
<p>Content</p> </div> <%= user.name %>
Extra blank line detected. Remove 2 blank lines to maintain consistent spacing (max 2 allowed). (erb-no-extra-newline)
<%= user.email %>

References ​

Released under the MIT License.