Как заставить Nanoc компилировать один и тот же элемент несколькими способами?

Я хочу, чтобы Nanoc скомпилировал один элемент в нескольких форматах, в частности, скомпилировал файл Markdown как в HTML, так и в PDF. Насколько мне известно, один элемент может соответствовать только одному правилу компиляции.

Жесткая ссылка (ln somefile.md newfile.md) позволяет мне скомпилировать один и тот же файл, как если бы это были два разных файла, но это довольно неудобное решение.

Есть лучший способ сделать это?


person Nathan Long    schedule 17.11.2012    source источник


Ответы (1)


Для этого можно использовать представления элементов. Вы можете скомпилировать один элемент в несколько выходных элементов (представлений). Вот пример:

compile '/stuff/' do
  filter :markdown
end

compile '/stuff/', :rep => :pdf do
  filter :markdown
  filter :pdf
end

Единственное, что осталось, — предоставить правила маршрутизации, которые записывают два представления элементов в их правильное место (также с использованием :rep => ...).

person Denis Defreyne    schedule 17.11.2012
comment
Как приятно, что создатель проекта ответил на мой вопрос. :) Спасибо за отличный инструмент, и спасибо за вашу помощь. - person Nathan Long; 19.11.2012