Search code examples
javascripthtmltemplate-enginehandlebars.js

How do you prevent newline added to Handlebars partial?


Scenario: one-line Handlebars partial used in an inline element:

Handlebars template:

<a href="#section">{{> partial}}Label</a>

Partial:

<svg class="icon" viewBox="0 0 65 65"><use xlink:href="#icon"></use></svg>

Compilation result:

<a href="#section"><svg class="icon" viewBox="0 0 65 65"><use xlink:href="#icon"></use></svg>
Label</a>

As you see, partial comes across with the newline. There's no newline in the file.


Solution

  • The issue was caused by the Vim's EOL management.

    To prevent newline appearing after the Handlebars compilation, change Vim configuration (.vimrc) to include:

    au BufWritePre * :set binary | set noeol
    au BufWritePost * :set nobinary | set eol