Rails语法highlighter albino无效

时间:2011-05-10 05:22:56

标签: ruby-on-rails ruby-on-rails-3 syntax-highlighting

我正在使用语法荧光笔“albino”我的rails项目,但它没有显示任何东西

我在下面写了代码

辅助模型中的

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

在视图中

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

所以任何人都可以帮助我在哪里出错  或者为铁轨建议任何好的荧光笔?

4 个答案:

答案 0 :(得分:0)

你得到了哪些错误?

在@codes之后你错过了.

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

答案 1 :(得分:0)

在我看来,你的助手正在创建一个新的Albino实例,但实际上没有使用它来进行语法高亮。

按如下方式更改您的助手:

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

答案 2 :(得分:0)

您是否考虑过使用Google Code Prettify?它是用于Google Code和Stack Overflow的语法高亮显示器,这可能意味着它相当强大。

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

答案 3 :(得分:0)

这是一个老问题,但我自己也遇到过它。

问题是Albino在解析时直接输出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

这应该有效。