A simple static site generator inspired by Jekyll
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Danger! This code isn't even alpha

Nabu {version}

Nabu is an simple, node.js powered, static site generator heavily inspired by Jekyll.

The goals of this tool are:

  • To make the technical distance between your content and templates as small and transparent as possible
  • To be completely modular, with each module doing as small and specific a task as possible
  • To provide a testing ground to explore the ideas and principles of a true next generation of CMSs

Understanding the different pieces of nabu and how it all works together

A website built with nabu is a result of a lot of small pieces working together. If you're new to nabu, it's hard to build a big picture view of all that's going on. Hopefully this will help!

  • The nabu-cli is a simple tool that loads the locally installed (ie: the current folder) version of nabu. Apart from telling nabu what to do, it also gives you tools to easily create a new nabu site
  • nabu is the core library. It's responsible for loading files, reading the config, setting up nabu plugins into the render pipeline and providing methods that most plugins will use
  • Nabu plugins are tiny encapsulated pieces of code that interpret and transform content (think: blog, calendar, pagination, categories, etc). You specify the plugins your site needs in the nabu _config.json file. nabu runs through this list in serial, each plugin building off the work of the previous. Plugins are installed using npm. See the Plugins section for more detail
  • The _config.json ...
  • Files & folderd prefixed with _, like the aforementioned _config.json, are files specifically for nabu to reference or transform during site generation. For example, _posts contain markdown files consumed by the nabu-blog. You may already be familiar with this pattern from Jekyll.

Making your first site with nabu


To use nabu, you first need the nabu-cli module globally installed:

npm install -g nabu-cli

Initializing your site's project folder

After the cli is installed, it's time to create the foundation your site will be built on top of:

mkdir my-blog && cd my-blog
nabu init

The init command will

  1. Ask you a couple questions about how you would like your site setup
  2. Generate your site file structure, including your package.json and _config.json
  3. Install any default packages from npm
  4. Initialize a git repo and make your first commit
  5. Generate the site, start up a local web server and open a browser showing you the default state of affairs

Nabu Plugins