【问题标题】:How do I pass an extension to the Redcarpet Nanoc filter如何将扩展传递给 Redcarpet Nanoc 过滤器
【发布时间】: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 魔法。任何帮助表示赞赏。

【问题讨论】:

    标签: ruby nanoc redcarpet


    【解决方案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 出现段错误...

      丹尼斯

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-14
        • 2012-08-25
        • 2012-04-16
        • 1970-01-01
        • 2016-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多