# Nanoc 3.0

**URL:** <https://www.ruby-forum.com/t/nanoc-3-0/173790>\
**Category:** Ruby\
**Created:** [August 14, 2009, 8:33pm UTC](https://www.ruby-forum.com/t/nanoc-3-0/173790 "2009-08-14T20:33:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dddennisdennis734](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a88e57/32.png) [@dddennisdennis734](https://www.ruby-forum.com/u/dddennisdennis734)\
**Post date:** [August 14, 2009, 8:33pm UTC](https://www.ruby-forum.com/t/nanoc-3-0/173790/1 "2009-08-14T20:33:48Z")

</div>

Hi.

I’m happy to announce the final release of nanoc 3.0, the latest  
version of nanoc, a web publishing tool aimed at small to medium-sized  
static or semi-static web sites.

You can install it using Rubygems:

sudo gem install nanoc3

If you are new to nanoc, I recommend checking out the tutorial[tut](http://nanoc.stoneship.org/tutorial/)  
and, if you need more, the manual[man](http://nanoc.stoneship.org/manual/).

If you have used nanoc 2.x before, the tutorial[tut](http://nanoc.stoneship.org/tutorial/) is still a very  
good resource. You’ll definitely want to check out the migration  
guide[mig](http://nanoc.stoneship.org/migrating/), and perhaps the manual[man](http://nanoc.stoneship.org/manual/) as well.

## Compatibility with nanoc 2.x

nanoc 3.0 is not backward compatible with previous nanoc versions.  
This is deliberate: focus on the future, leave the past behind. A  
nanoc 2.x site cannot be compiled with nanoc 3.0.

Fortunately, nanoc 2.x and 3.0 can be installed side by side. The  
nanoc 2.x commandline tool is called `nanoc` while the nanoc 3.0 one  
is called `nanoc3`; similarly, the nanoc 2.x namespace is `Nanoc` and  
the nanoc 3.0 one is `Nanoc3`. In other words, you can easily use both  
nanoc 2.x and 3.0 simultaneously.

## New Features

Here’s a short list with the biggest additions to nanoc 3.0:

- Multiple data sources so you can load data from multiple locations–  
for example, Twitter, Delicious and Last.fm.

- Filter arguments so you can pass extra arguments when executing a  
filter. For example, you can now pass Haml options when executing  
filters, like this: filter :haml, :format =\> :html5.

- A more compact filesystem-based data source called  
filesystem\_combined that doesn’t require tons of directories in the  
content and layout directories. Cleaner and less verbose.

- An all-new dependency tracking system that ensures that all modified  
items and their dependent items are recompiled when the site is  
compiled. This speeds up site compilation by preventing non-modified  
pages from being recompiled.

- A rules file which allows processing instructions (filtering pages,  
laying out pages) to be specified in a much more DRY way. In addition,  
the rules file is much more powerful than specifying processing  
instructions using item/layout attributes.

If you have questions, feel to drop by on the mailinglist[list](http://groups.google.com/group/nanoc/) or the  
IRC channelirc. On IRC, I’m not always around, but when I am, I’ll  
be happy to answer any questions you have.

Regards,

Denis
