(Насколько я здесь исследовал, это не повторяющийся вопрос. Обрезание пробелов - часто заканчивающихся символами новой строки - обсуждается для <%-
или -%>
, но не для <%=
. Это может быть незначительный дефект в шаблонном движке Erubi, который используется Rails для шаблонов ERB.)
Я хочу отобразить / выделить синтаксис кода в представлении, и мой шаблон представления ERB содержит:
<code><p>
<strong>Code:</strong>
<pre class="highlight github">
<%= highlight(@code.code, @code.language) %>
Результатом является вывод HTML:
<code><p>
<strong>Code:</strong>
<pre class="highlight github">
<span class="kt">[and here's the code, but indented too much]</span>
Из-за тега pre
пробелы перед первой строкой кода включаются в HTML и, следовательно, отображаются, в результате чего первая строка кода имеет слишком много отступов в четыре пробела.
Очевидно, я также могу сделать шаблон представления ERB как:
<code><p>
<strong>Code:</strong>
<pre class="highlight github">
<%= highlight(@code.code, @code.language) %>
но это выглядит некрасиво (потому что отступы отключены) в моем представлении шаблона.
Вопрос: как я могу заставить <%=
также проглотить ведущие пробелы? Я знаю, что использование -%>
в качестве закрывающего тега удаляет завершающие пробелы / переводы строк ... но я хочу, чтобы также были удалены начальные пробелы (не только переводы строк).