如何扩展 Middleman 的 Redcarpet Markdown 渲染器?
Posted
技术标签:
【中文标题】如何扩展 Middleman 的 Redcarpet Markdown 渲染器?【英文标题】:How to extend Middleman's Redcarpet markdown renderer? 【发布时间】:2015-07-11 12:59:41 【问题描述】:我正在使用Middleman 构建一个站点,并使用Redcarpet 作为我的降价引擎,主要是为了它的GFM 支持。
我想利用或先于 Markdown 渲染过程来添加对各种语法选项的支持。在一个例子中,我想要这样:
[file:/path/to/file]
呈现为:
<p class="file">
<code>/path/to/file</code>
</p>
在每种情况下,我都不会渲染任何会影响模板中剩余降价的东西,所以我怀疑我可以先于渲染过程。
此外,如果使用另一个渲染器更简单,我不会以任何方式与 Redcarpet 绑定,除了我更喜欢 GFM 支持。
【问题讨论】:
如果您决定改用 Pandoc,请查看 pandoc scripting,祝您好运! 【参考方案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)
【讨论】:
以上是关于如何扩展 Middleman 的 Redcarpet Markdown 渲染器?的主要内容,如果未能解决你的问题,请参考以下文章
apache_conf 基本的Auth Middleman和Heroku
ruby 如果你想在heroku上为你的中间人应用程序添加基本身份验证,这是一个添加到middleman的config.ru文件的片段