3

我正在使用Middleman构建一个站点,并使用Redcarpet作为我的降价引擎,主要是为了它的GFM支持。

我想利用或在降价渲染过程之前添加对各种语法选项的支持。在一个例子中,我想要这样:

[file:/path/to/file]

呈现为:

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

在每种情况下,我都不会渲染任何会干扰模板中剩余降价的东西,所以我怀疑我可以先于渲染过程。

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

4

1 回答 1

1

首先,您需要在 config.rb 文件中基于 redcarpet 创建一个新的渲染器。就像是:

   set renderer: myRenderer

接下来,您需要将“myRenderer”创建为一个新类(您可以在 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)

于 2017-01-21T21:17:35.920 回答