如何将扩展传递给 Redcarpet Nanoc 过滤器
Posted
技术标签:
【中文标题】如何将扩展传递给 Redcarpet Nanoc 过滤器【英文标题】:How do I pass an extension to the Redcarpet Nanoc filter 【发布时间】:2011-12-24 16:16:47 【问题描述】:我正在尝试使用他们的 :redcarpet
过滤器过滤 Nanoc 3 中的内容。我的代码如下所示(来自规则文件):
compile '/posts/*/' do
filter :redcarpet
layout 'default'
end
我想将选项 :fenced_code_blocks
传递给 redcarpet 扩展,以便我可以突出显示语法。我找不到如何执行此操作的示例。 https://github.com/tanoku/redcarpet 描述了在使用 redcarpet 时如何做到这一点。 Nanoc 的文档表明我可以传递选项,http://nanoc.stoneship.org/docs/api/3.2/Nanoc3/Filters/Redcarpet.html,但我尝试过的没有任何效果。
以下是一些不起作用的东西:
filter :redcarpet, :fenced_code_blocks => true
filter :redcarpet, :options => [:fenced_code_blocks]
filter :redcarpet, :options => [:fenced_code_blocks]
filter :redcarpet, :options => :fenced_code_blocks => true
filter :redcarpet, :options => [ :fenced_code_blocks => true ]
filter :redcarpet, :fenced_code_blocks => true
其中很多看起来不像真正的红宝石,而且只是在黑暗中刺伤。我实际上不知道规则文件中发生了什么样的 DSL 魔法。任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:Nanoc 3.3 supports Redcarpet 2,设置组合现在为filter :redcarpet, :options => :fenced_code_blocks => true
。
【讨论】:
【参考方案2】:使用 Redcarpet 1.x,您可以使用 :options => [ :foo, :bar, :baz ]
传递选项,但似乎只有 Redcarpet 2.x 支持围栏代码块,并且 nanoc 尚不支持 Redcarpet 2.x。
很遗憾,我无法测试 Redcarpet 2 和 nanoc 集成,因为 Redcarpet 2 导致 Ruby 出现段错误...
丹尼斯
【讨论】:
以上是关于如何将扩展传递给 Redcarpet Nanoc 过滤器的主要内容,如果未能解决你的问题,请参考以下文章
如何扩展 Middleman 的 Redcarpet Markdown 渲染器?
:footnotes 扩展在 Redcarpet Ruby gem 中不起作用
如何使用扩展语法将数组传递给 JavaScript 中的方法
如何在不将道具传递给底层 DOM 元素的情况下扩展样式组件?