Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

nanoc is a web publishing system written in Ruby.

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 lib
Octocat-spinner-32 tasks
Octocat-spinner-32 test
Octocat-spinner-32 .hgignore
Octocat-spinner-32 .hgtags
Octocat-spinner-32 ChangeLog
Octocat-spinner-32 LICENSE
Octocat-spinner-32 NEWS.rdoc
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile

nanoc 3

nanoc is a simple but very flexible static site generator written in Ruby. It operates on local files, and therefore does not run on the server. nanoc “compiles” the local source files into HTML (usually), by evaluating eRuby, Markdown, etc.


nanoc3's web site, which can be found at, contains a few useful resources to help you get started with nanoc:

It is probably also worth checking out and perhaps subscribing to the discussion groups:

Source Code Documentation

The source code is structured in a few directories:

  • bin contains the commandline tool aptly named nanoc

  • lib

    • nanoc

      • base contains the bare essentials necessary for nanoc to function

      • cli contains the commandline interface

      • data_sources contains the standard data sources (Nanoc3::DataSource subclasses), such as the filesystem data source

      • helpers contains helpers, which provide functionality some sites may find useful, such as the blogging and tagging helpers

      • extra contains stuff that is not needed by nanoc itself, but which may be used by helpers, data sources, filters or VCSes.

      • filters contains the standard filters (Nanoc3::Filter subclasses) such as ERB, Markdown, Haml, …

  • test contains testing code, structured in the same way as lib/nanoc

The namespaces (modules) are organised like this:

  • Nanoc3 is the namespace for everything nanoc-related (obviously). The classes in 'lib/nanoc3/base' are part of this module (not Nanoc3::Base which does not exist)

    • CLI containing everything related to the commandline tool.

    • DataSources contains the data sources

    • Helpers contains the helpers

    • Extra contains useful stuff not needed by nanoc itself

    • Filters contains the (textual) filters

The central class in nanoc is Nanoc3::Site, so you should start there if you want to explore nanoc from a technical perspective.


nanoc itself can be used without installing any dependencies. Some components, however, do have dependencies:


mime-types, rack

documentation generation

rdoc (2.4 or newer), yardoc


rubygems (1.3 or newer)

You may need to manually install the rdoc gem and update the rubygems installation.


(In alphabetical order)

  • Colin Barrett

  • Dmitry Bilunov

  • Christian Plessl

  • Šime Ramov

  • “Soryu”

  • Dennis Sutch

Special thanks to Ale Muñoz.


You can reach me at <>.

Something went wrong with that request. Please try again.