Как передать расширение фильтру Redcarpet Nanoc

Я пытаюсь отфильтровать контент в Nanoc 3, используя их фильтр :redcarpet. Мой код выглядит следующим образом (из файла Rules):

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 происходит в файле Rules. Любая помощь приветствуется.


person Clueless    schedule 24.12.2011    source источник


Ответы (2)


Используя Redcarpet 1.x, вы можете передавать параметры с помощью :options => [ :foo, :bar, :baz ], но кажется, что только Redcarpet 2.x поддерживает изолированные блоки кода, а nanoc еще не поддерживает Redcarpet 2.x.

К сожалению, я не могу протестировать Redcarpet 2 и интеграцию nanoc, потому что Redcarpet 2 вызывает здесь ошибку Ruby...

Денис

person Denis Defreyne    schedule 25.12.2011

Nanoc 3.3 поддерживает Redcarpet 2 и комбинация настроек теперь filter :redcarpet, :options => {:fenced_code_blocks => true}.

person jasonrm    schedule 11.04.2012