So, I’m currently working on getting my house in order. By ‘my house’ I mean this website. I’ve been looking for a way to get a nice combination blog, project portfolio that a lot of software developers seem to have. I decided early on that I wanted a statically generated site as that would simplify a lot of things from server security, to maintenance. It’d be easier to migrate. Also, and this is important, it would be a lot simpler to use Emacs as my primary editor if I use a static generator rather than a solution like Wordpress or Blogger which generally require editing little boxes on a website which I hate. (I suspect this can be worked around with WP, but I’d rather not try.)
In looking for a static site generator, I’d heard o Jekyll before, and decided to give it a shot. My plan was to use it in combination with something like Org-Jekyll to make drafting and publishing posts simple. I downloaded it, started working through the docs and attempting to get a nice site together, and discovered two things. The first is that Jekyll is very simplistic by design. It is extensible, but it was meant to work in a very particular way that didn’t quite mesh with my ambitions for this site. The other thing I learned was that there are actually quite a lot of static site generators to choose from.
Anyway, after some looking, I decided that nanoc was the closest to my ideal tool I was going to find without trying each and every single one. The primary feature that lead me to choose nanoc over Jekyll was that I can use ERB rather than the Liquid templating system. ERB is much more flexible than Liquid (this is by design as Liquid is meant to be safe; it doesn’t execute any raw code so untrusted users can author it,) and I know Rails somewhat so ERB is already in my skill set.
Nanoc exposes it’s internals more than Jekyll but I feel it’s more flexible and relies less on convention. I should be able to organize the site to my liking more easily. The Rules file lets me not only specify different and multiple filters per page (as well as multiple layouts) but also design my directory structure arbitrarily. Jekyll is relatively inflexible in both cases; it requires a little hacking to deviate significantly from the defaults. This, arbitrary metadata, ‘items’ rather than pages as the primary content metaphor, and of course multiple filters, altogether are the features on which that I settled.
So, this site is clearly a work in progress, but it’s getting closer to being done and I have I’m fairly certain I can make it work the way I want. So here’s to looking forward.