public
Description: a web publishing system written in Ruby. (MIRROR of the Mercurial repository)
Homepage: http://nanoc.stoneship.org/
Clone URL: git://github.com/ddfreyne/nanoc.git
Click here to lend your support to: nanoc and make a donation at www.pledgie.com !
ddfreyne (author)
Sat Nov 07 01:19:17 -0800 2009
commit  846350e3657931b155916d34d3c31db0bd93f62e
tree    c10b0ec7cc7992a7fbc6a20fafcb31bb3d52c046
parent  438b9af48b88ed30c5791e4ed858aaa091de12cb
nanoc /
name age message
file ChangeLog Fri Jul 03 06:22:47 -0700 2009 updated nanoc and cri repository URLs (removed ... [ddfreyne]
file LICENSE Tue Feb 03 08:02:24 -0800 2009 fixed copyright year [ddfreyne]
file NEWS.rdoc Loading commit data...
file README.rdoc Sat Aug 15 02:46:20 -0700 2009 fixed name of topmost namespace (Nanoc3, not Na... [ddfreyne]
file Rakefile Mon Jun 01 05:35:47 -0700 2009 added magic utf-8 encoding comment to all sourc... [ddfreyne]
directory bin/ Sat Aug 08 03:41:30 -0700 2009 made CLI::Base contain a singleton base to whic... [ddfreyne]
directory lib/
directory tasks/ Fri Jul 03 06:22:47 -0700 2009 updated nanoc and cri repository URLs (removed ... [ddfreyne]
directory test/
README.rdoc

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.

Documentation

nanoc3’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
      • 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.

Dependencies

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

autocompiler:+mime-types+, rack
documentation generation:rdoc (2.4 or newer), yardoc
packaging:rubygems (1.3 or newer)

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

Contributors

(In alphabetical order)

  • Christian Plessl
  • Colin Barrett
  • Dmitry Bilunov
  • Šime Ramov
  • "Soryu"
  • Dennis Sutch

Special thanks to Ale Muñoz.

Contact

You can reach me at <denis.defreyne@stoneship.org>.