1

我正在尝试为Pygments.rb Javascript 设置修复语言。我正在使用Redcarpet进行降价。到目前为止,我在这里:

# 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'但无法摆脱该块的语言选项。如果我删除“语言”,我会得到wrong number of arguments (2 for 1)

这和红地毯有关系吗?如何将词法分析器设置为默认为 javascript?

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

```javascript

```

在那里面。

4

1 回答 1

0

找到了 !!

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

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

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

如需进一步定制,请查看 Pygment Formatters列表。

于 2014-05-29T17:12:07.903 回答