(据我在这里进行的研究,这不是一个重复的问题。正在为<%-
或-%>
而不是{{1 }}。这也可能是Erubi模板引擎中的次要缺陷,Rails正在将其用于ERB模板。)
我想在视图中呈现/语法突出显示的代码,而我的ERB视图模板包含:
<%=
结果是HTML输出为:
<p>
<strong>Code:</strong>
<pre class="highlight github">
<%= highlight(@code.code, @code.language) %>
</pre>
</p>
由于带有<p>
<strong>Code:</strong>
<pre class="highlight github">
<span class="kt">[and here's the code, but indented too much]</span>
</pre>
</p>
标签,因此第一行代码前面的空格包含在HTML中并因此呈现出来,导致第一行代码的行缩进了四个空格。
很明显,我也可以将ERB视图模板制作为:
pre
但这在我的模板视图中看起来很丑(因为缩进已关闭)。
问题:如何使<p>
<strong>Code:</strong>
<pre class="highlight github">
<%= highlight(@code.code, @code.language) %>
</pre>
</p>
也吞下前导空格?我知道使用<%=
作为结束标记会删除尾随空格/换行符...但是我也希望也删除前导空格(而不仅仅是换行符)。
答案 0 :(得分:0)
尝试将concat
helper method与以<%
而不是<%=
开头的ERB标签一起使用:
<p>
<strong>Code:</strong>
<pre class="highlight github">
<% concat(highlight(@code.code, @code.language)) %>
</pre>
</p>