Question

I want to have Nanoc compile a single item in multiple formats - specifically, compile a Markdown file to both HTML and PDF. As far as I know, a single item can only match a single compilation rule.

A hard link (ln somefile.md newfile.md) allows me to compile the same file as if it were two different files, but that's kind of an awkward solution.

Is there a better way to do this?

Was it helpful?

Solution

You can use item representations in order to achieve that. You can compile a single item into multiple output items (representations). Here’s an example:

compile '/stuff/' do
  filter :markdown
end

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

The only thing remaining is to provide routing rules that write the two item representations to their right location (also using :rep => ...).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top