gpt4 book ai didi

ruby-on-rails - 如何在以 `<%=` 元素结尾的 Rails 中的 ERB 模板中使用 `pre` 修剪前导空格?

转载 作者:行者123 更新时间:2023-12-03 19:32:23 24 4
gpt4 key购买 nike

(就我在这里的研究而言,这不是一个重复的问题。正在为 <%--%> 讨论修剪空格——通常是尾随换行符——正在讨论中,但不是为 <%= 讨论的。这可能是一个小缺陷在 Erubi 模板引擎中也是如此,Rails 将其用于 ERB 模板。)

我想在 View 中渲染/语法高亮代码,我的 ERB View 模板包含:

<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 View 模板设为:
<p>
<strong>Code:</strong>
<pre class="highlight github">
<%= highlight(@code.code, @code.language) %>
</pre>
</p>

但这在我的模板 View 中看起来很难看(因为缩进已关闭)。

问题:如何制作 <%=还吞前导空格?我知道使用 -%>因为结束标记会删除尾随空格/换行符...但我希望也删除前导空格(不仅仅是换行符)。

最佳答案

尝试使用 concat helper method带有以 <% 开头的 ERB 标签而不是 <%= :

<p>
<strong>Code:</strong>
<pre class="highlight github">
<% concat(highlight(@code.code, @code.language)) %>
</pre>
</p>

关于ruby-on-rails - 如何在以 `<%=` 元素结尾的 Rails 中的 ERB 模板中使用 `pre` 修剪前导空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53167613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com