Overview

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.

Documentation

nanoc’s web site, which can be found at nanoc.stoneship.org, 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

      • binary_filters contains the standard binary filters (Nanoc2::BinaryFilter subclasses) such as the thumbnail filter

      • cli contains the commandline interface

      • data_sources contains the standard data sources (Nanoc2::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 routers.

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

      • routers contains the standard routers (Nanoc2::Router subclasses)

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

The namespaces (modules) are organised like this:

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

    • BinaryFilters contains the binary filters

    • 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

    • Routers contains the routers

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

Contributors

(In alphabetical order)

  • Colin Barrett

  • Dmitry Bilunov

  • Šime Ramov

  • “Soryu”

  • Dennis Sutch

Special thanks to Ale Muñoz.

Contact

You can reach me at <[email protected]>.