我正在用Middleman建立一个网站,并使用Redcarpet作为我的降价引擎,主要是为了它的GFM支持。
我想进入或在降价呈现过程之前添加对各种语法选项的支持。在一个示例中,我想这样做:
[file:/path/to/file]
将呈现为:
<p class="file">
<code>/path/to/file</code>
</p>
在任何情况下,我都没有呈现任何会影响模板中剩余标记的内容,因此我怀疑我可以在呈现过程之前进行。
同样,如果使用另一个渲染器更简单,我不会以任何方式绑定到Redcarpet,除了我更喜欢GFM支持。
首先,您需要在配置中基于redcarpet创建一个新的渲染器。rb文件。比如:
set renderer: myRenderer
接下来,你需要创建"myRenderer"作为一个新类(你可以在你的配置顶部这样做)。但你也可以把它放在一个外部文件)
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)