Rails 语法荧光笔白化病不起作用



我在我的rails项目中使用语法高亮笔"白化",但它没有显示任何东西

下面我写了代码

在帮助程序模型中

def highlight(text)
  Albino.new(text, :ruby)
end 

在视图中

<% @codes.each do |code| %>
  <%= highlight(code) %>
<% end %>

所以任何人都可以帮助我哪里出错 或者建议任何好的荧光笔宝石用于导轨?

你得到哪些错误?

@codes后,您缺少.

<% @codes.each do |code| %>
  <%= highlight(code) %>
<% end %>
在我看来

,您的助手正在创建一个新的白化病实例,但没有实际要求它突出显示语法。

按如下方式更改助手:

def highlight(text)
  Albino.colorize(text, :ruby)
end

您是否考虑过使用Google Code Prettify?这是Google Code和Stack Overflow上使用的语法突出显示器,这可能意味着它相当健壮。

我通常不喜欢在 JavaScript 中放置太多功能,但在我看来,语法突出显示是以这种方式添加的合理功能 - 毕竟代码在没有突出显示的情况下仍然可以阅读。

这是一个有点老的问题,但我自己也遇到了。

问题是Albino在解析HTML时直接输出HTML(我认为这是正确的词,我对此很陌生)。

例如:

highlight(text)

文本是:

def hello_world
  puts "Hello World!".to_s
end

将导致:

<div class="highlight"><pre><span class="k">def</span> <span class="nf">hello_world</span> <span class="nb">puts</span> <span class="s2">&quot;Hello World!&quot;</span><span class="o">.</span><span class="n">to_s</span> <span class="k">end</span> </pre> </div>

需要做的是将 .html_safe 添加到您的突出显示方法中。

Albino.colorize(text).html_safe

这应该行得通。

相关内容

  • 没有找到相关文章

最新更新