如何扩展Middleman的Redcarpet降价渲染器?

时间:2015-07-11 12:59:41

标签: markdown middleman github-flavored-markdown redcarpet

我正在使用Middleman构建网站,并使用Redcarpet作为我的降价引擎,主要用于GFM支持。

我想点击或降低降价渲染过程,以添加对各种语法选项的支持。在一个例子中,我喜欢这样:

[file:/path/to/file]

呈现为:

<p class="file">
  <code>/path/to/file</code>
</p>

在每种情况下,我都不会渲染任何会影响模板中剩余markdown的内容,所以我怀疑我可以在渲染过程之前。

此外,如果使用其他渲染器更简单,除了我更喜欢支持GFM之外,我不会以任何方式与Redcarpet绑定。

1 个答案:

答案 0 :(得分:1)

首先,您需要在config.rb文件中基于redcarpet创建一个新的渲染器。类似的东西:

   set renderer: myRenderer

接下来,您需要创建&#34; myRenderer&#34;作为一个新类(您可以在config.rb的顶部执行此操作,但您也可以将其放在外部文件中)

require "middleman-core/renderers/redcarpet"
class myRenderer < Middleman::Renderers::MiddlemanRedcarpetHTML

def preprocess(document)
  # insert ruby code to use a regex to find your tag in the document
  # insert ruby code to generate your HTML and replace your tag with
  #    HTML that you want
  return (document)
end

如果您希望这是最后一件事,请使用postprocess(document)而不是preprocess(document)