

DocPad: static website generator in CoffeeScript and Node.js - Raphael
https://github.com/balupton/docpad

======
rjd
I'm really surprised why this approach isn't used more often.

I've built several PHP and .net things like this over the years for clients,
so they can author on there PC (or my console) and push static files to my
hosting as static files, and still have roll back.

Seems like common sense to me, lower risk, lower server over heads, lower user
error problems. Whack together a bespoke CMS/web form in a few a hours and
you're done.

~~~
balupton
Yeah, I use it for prototyping EVERYTHING now. We just used it to prototype
the new <http://99dresses.com/> website - in about 5 hours we had 90% of it
done. I really want to get enough spare time, or get someone to sponsor it so
I can set it up as a SaaS as well as develop a plugin infrastructure for it.
I've got some time this week, we'll have to see how I go - bit busy with other
stuff to.

------
drewschrauf
I tried setting up ruby/octopress on my mac last night and it was a pain in
the ass. Great to see a node.js alternative. With a plugin infrastructure
it'll be a serious contender to Jekyll.

------
jjm
Good stuff dude! I'm going to use this for my app's documentation.

------
chetan51
What makes it different from Jekyll?

~~~
balupton
It's written in coffeescript and node.js instead of ruby. Jekyll is also made
for blogging, for instance you have a _posts directory in Jekyll, in DocPad
you have a src/documents page - this allows you to create urls like
src/documents/about.html -> /about, and src/documents/projects/docpad.md ->
/projects/docpad, and src/documents/posts/life.md -> /posts/life. Another
great thing is that you can access the query engine inside the views, and the
data associated to documents can be filled with whatever key values you want -
so you can do advanced filtering/queries. The benefit is that you can extend
the docpad server to do whatever you want (as it is just a node.js package)
even add redirects and dynamic pages to the mix. Feel free to join me on
#docpad on freenode.

~~~
ojilles
Isn't this how Jekyll works as well? It's just that the _posts directory is
special. But the base entity is a "Page" which exactly functions as you
mention unless I'm mistaken.

Also the YML frontmatter is fully accessible in the template engine (is that
similar to the "data associated to documents" you mention?).

