2

我编写了一个 Jekyll 生成器,它解析 Markdown 并将生成的 HTML 编码为 JSON。问题是,我的代码块没有被解析。我认为这是因为我使用 Redcarpet 样式编写了降价,但我的生成器不使用 Redcarpet。

在我的生成器中,我有这样的东西:

module Jekyll
  require 'json'

  class JSONGenerator < Generator
    safe true
    priority :low

    def generate(site)
      # Converter for .md > .html
      converter = site.getConverterImpl(Jekyll::Converters::Markdown)

      # Iterate over all posts
      site.posts.each do |post|

        # Encode the HTML to JSON
        hash = { "content" => converter.convert(post.content)}

      end

    end

  end

end

我该如何更改它,以便我使用 Redcarpet 进行解析?_config.ymlRedcarpet 在我的文件中被设置为我的默认降价库。我尝试使用这个:

markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)

...但是抛出了这个异常:

Warning: Command failed: error: uninitialized constant Jekyll::JSONGenerator::Redcarpet.
4

1 回答 1

0

看起来在 Jekyll 中使用 Redcarpet 的方法是实例化该类,然后传入site.config.

converter = Jekyll::Converters::Markdown::RedcarpetParser.new(site.config)
于 2013-09-12T22:23:46.230 回答