我正在使用语法荧光笔“albino”我的rails项目,但它没有显示任何东西
我在下面写了代码 辅助模型中的
def highlight(text)
Albino.new(text, :ruby)
end
在视图中
<% @codes.each do |code| %>
<%= highlight(code) %>
<% end %>
所以任何人都可以帮助我在哪里出错 或者为铁轨建议任何好的荧光笔?
答案 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">"Hello World!"</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
这应该有效。