Nodejitsu

Save time managing and deploying your node.js app

Introducing Blacksmith

About the author

Name
Location
Worldwide
nodejitsu nodejitsu

Other popular posts

- Scaling Isomorphic Javascript Code - Keep a node.js server up with Forever - Package.json dependencies done right
- npm cheat sheet - 6 Must Have Node.js Modules
Sign up to our platform for free - get $20 usage

Github: https://github.com/flatiron/blacksmith
Documentation/Example: http://blacksmith.jit.su

Blacksmith is a static site generator. It uses weld, jsdom and marked to turn json, markdown and 100% genuine HTML and CSS, on the filesystem, into awesome sites like the one you're looking at right now. Moreover, it includes a command line interface for quickly building, editing and testing blacksmith-built websites. Here's a short list of features:

  • Easy to use
  • Can be hosted anywhere, since it generates static HTML/CSS
  • Write and Edit articles on the file system using github-flavored markdown
  • Based on JSDOM and Weld
  • Easily create custom themes using plain HTML and CSS ( no micro-templating ! )
  • Default theme is a port of scribbish by Jeffrey Allan Hardy
  • Ships with a robust node.js static server suitable for production

Blacksmith may remind you a bit of jekyll and octopress, and in fact it is influenced by these projects. However, whereas jekyll is "blog-aware" and uses liquid for templating, blacksmith uses the DOM for its templating needs and can easily generate not just blogs, but documentation sites and more. Plus, you don't need ruby or rake since it's all written in node.

Why Static?

We knew from the start that we wanted our blog platform to generate a static site. Why? Static sites are fast, foolproof, and get the job done. Why dynamically generate a page each time if you only have to do it once?

This might seem counterintuitive, considering all of the real-time, client-side code in Nodejitsu. However, while websockets and hash-based routing fit really well for many problems, others, like our blog, simply don't need it.

Why Weld?

We also knew from the start that we wanted to avoid microtemplates. Hij1nx puts it pretty well, but to reiterate: Templates are 100% HTML and css, and that is awesome.

Given this question, you may ask "why not plates?" Truth be told, we began this project before plates was ready for prime time. There is, however, a good reason not to switch: Having access to a full dom allows for doing such things as using jquery server-side, for the utmost in flexibility.

Try it out!

Just visit blacksmith's github repository, install it and have fun!