1

我正在尝试为我的 Rails 应用程序设置Rouge ,但在传入内联 ERB 字符串或块时遇到问题。但是,当它从文件中读取 ERB 时,它可以正常工作。这是我所拥有的一个例子 -

作品

rouge_helper.rb

def rouge(file, language)
  formatter = Rouge::Formatters::HTML.new(css_class: 'highlight', wrap: true)
  lexer     = Rouge::Lexer.find(language)
  output    = formatter.format(lexer.lex(file))

  output
end

app/views/example/_partial.html.erb

<p>hello <%= p "world" %></p>

app/views/example/index.html.erb

<pre class="highlight">
  <code>
    <%= raw rouge(File.read(Rails.root + "app/views/example/_partial.html.erb"), "erb") %>
  </code>
</pre>

不工作

当我用这个替换index.html.erb文件时 -

<pre class="highlight">
  <code>
    <%= raw rouge("<p>hello <%= p 'world' %></p>", "erb") %>
  </code>
</pre>

我得到这个错误 -

app/views/styleguide/index.html.erb:3: 语法错误,意外的'>' app/views/styleguide/index.html.erb:5: 未知的正则表达式选项 - pr app/views/styleguide/index.html。 erb:6:未终止的字符串遇到文件 app/views/styleguide/index.html.erb:6 的结尾:语法错误,意外的输入结束,期待 ')'

期望的结果

<p>hello <%= p "world" %></p>
4

0 回答 0