2015-07-11 42 views
2

我正在用Middleman构建一个网站,并使用Redcarpet作为我的降价引擎,主要用于支持GFM如何扩展Middleman的Redcarpet降价渲染器?

我想进入或先于markdown渲染过程来添加对各种语法选项的支持。举一个例子,我想这样的:

[file:/path/to/file] 

被渲染为:

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

在任何情况下,我不会呈现任何会干扰影响其余降价模板,所以我会怀疑我可以先于渲染过程。另外,如果使用其他渲染器可以更简单,那么除了我更愿意拥有GFM支持之外,我并不以任何方式与Redcarpet绑定。

+0

如果你决定pandoc去代替,看看[pandoc脚本](HTTP:/ /pandoc.org/scripting.html),祝你好运! – mb21

回答

0

首先,您需要根据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 

如果你想这样做的最后一件事,用后处理(文件),而不是预处理(文件)