(据我在这里研究,这不是一个重复的问题。修剪空格——通常是尾随换行符——正在讨论<%-
or -%>
,但不适合<%=
。这也可能是 Erubi 模板引擎的一个小缺陷,Rails 将其用于 ERB 模板。)
我想在视图中渲染/语法突出显示代码,我的 ERB 视图模板包含:
<p>
<strong>Code:</strong>
<pre class="highlight github">
<%= highlight(@code.code, @code.language) %>
</pre>
</p>
结果是 HTML 输出为:
<p>
<strong>Code:</strong>
<pre class="highlight github">
<span class="kt">[and here's the code, but indented too much]</span>
</pre>
</p>
因为pre
标签,第一行代码前面的空格被包含在 HTML 中并因此被渲染,导致第一行代码缩进了四个空格过多。
显然,我还可以将 ERB 视图模板制作为:
<p>
<strong>Code:</strong>
<pre class="highlight github">
<%= highlight(@code.code, @code.language) %>
</pre>
</p>
但这在我的模板视图中看起来很难看(因为缩进已关闭)。
问题:我怎样才能使<%=
还吞掉前导空格?我知道使用-%>
因为结束标记会删除尾随空格/换行符...但我希望也删除前导空格(不仅仅是换行符)。
尝试使用concat辅助方法 https://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-concat带有以以下开头的 ERB 标签<%
代替<%=
:
<p>
<strong>Code:</strong>
<pre class="highlight github">
<% concat(highlight(@code.code, @code.language)) %>
</pre>
</p>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)