/reem

rambunctious static site generator

Primary LanguageJavaScriptISC LicenseISC

Reem

Reem is a static site generator written in JavaScript. Reem reads a source directory into a tree structure, which is then processed internally and then by customizable plugins and middleware. The final tree is rendered and written to the output directory, and the site is ready to host.

Reem has both a command-line interface and a programming interface suitable for personal and automated production of static sites.

Reem is realistic to people's needs; specializing to no single use case, but advocating specialization as much as possible.

Getting Started

Installation

Reem is available on npm and should be installed globally for the command-line interface.

npm -g install reem

Initialization

In a chosen static site directory run:

reem --init

Which creates the default folder/file structure:

site
|- layout/
|- output/
|- source/
|- reemfile.js

The layout directory contains the templates, includes, and other rendering files. The source directory contain posts, assets, directories, and any other files. The output directory contains, well, the output.

The reemfile.js is where Reem can be configured; changing defaults, overriding the default folder structure, and modifying Reem's behavior can all done within this JavaScript file.

Building

The command for building the source directory and writing to the output directory is plainly:

reem

Adventure Time!

Reem is a complex beast of unimaginable flexibility, performance, and developer joy. Now that you have her by your side and know how to fight with her, please sit down and read.

Reading

The Reem Wiki has official documentation, tutorials, and examples.

Plugins

  • reem-coffee compiles CoffeeScript files to JavaScript and supports source maps.
  • reem-draft hides unfinished posts from production builds.
  • reem-flow provides control structures for adding plugins to Reem.
  • reem-markdown converts Markdown to HTML.

More Reem plugins can be found on npm.

Contributing

Reem is a relatively new static site generator. To ensure the community their plugins will not potential break every day, Reem will strive to keep any and all changes backwards-compatible until the v1.0.0 release. So basically, v0 is being treated like v1.

Contributions are incredibly welcome. If you find an bug, open an issue. Feature requests are also welcome, but considering making a standalone plugin first. Any pull requests must pass the tests found in test/; if the pull does not pass, please explain why.

# running tests
npm run test