在Pygments.rb上设置默认语言红地毯

时间:2014-05-29 16:36:23

标签: ruby-on-rails ruby-on-rails-4 syntax-highlighting pygments redcarpet

我试图为Pygments.rb,Javascript设置修复语言。我使用Redcarpet作为Markdown。 到目前为止我在这里:

#Model.rb     before_save:render_source

def render_source
  require 'redcarpet'
  renderer = PygmentizeHTMLSOURCE
  extensions = {fenced_code_blocks: true}
  redcarpet = Redcarpet::Markdown.new(renderer, extensions)
  self.rendered_source = redcarpet.render self.source
end

class PygmentizeHTMLSOURCE < Redcarpet::Render::HTML
  def block_code(code, language)
    Pygments.highlight(code, :lexer => 'javascript', options: {linenos: 'table'})
  end
end

现在我正在通过:lexer => 'javascript',但无法摆脱该块的语言选项。如果我删除了语言&#39;我得到wrong number of arguments (2 for 1)

这与Redcarpet有关吗?如何将词法分析器设置为默认为javascript?

我的主要问题是我希望初始:text是用户的CLEAR输入。我不想存储

```javascript

```

1 个答案:

答案 0 :(得分:0)

发现它!!

我正在使用从Redcarpet预定义的块级调用。该块包含(代码,语言)。

我必须使用的是整个文档的前/后流程回调

  class PygmentizeHTMLSOURCE < Redcarpet::Render::HTML
    def preprocess(full_document)
      Pygments.highlight(full_document, :lexer => 'javascript', options: {linenos: 'table'})
    end
  end

对于进一步的自定义,我会列出Pygment Formatters

的列表
相关问题