TL;DR
In summary I left my Octopress blog behind quite a while ago, and this site has been statically generated with a custom tooling build up around gulpjs and node.
Some of the details...
After I migrated from Blogspot to Octopress I started running into workflow issues and other issues that turned me off from Octopress/Jekyll (at least for my own site).
It was also right around the time that GulpJS came out and I needed a project to play around with...
So I did what every developer does. I wrote my own.
Using Approvals.NodeJS to capture previous renderings of the Octopress generated version of staxmanade.com, I was surprised at how quickly I ported my Octopress generated site to a new custom static site generator.
I'm not writing this to convince you to leave Octopress for anything (especially my home-grown tool), but felt compelled to get a blog post out describing some of the cool little features I've implemented.
Personal struggles with Octopress:
- Octopress site generation was too SLOW for me. There's even a helper rake task that moves your posts to a temporary folder to exclude from generation when you want to quickly see the post you're working on generate fast, but this just bothered me from a fundamental level.
- I'm not a Ruby developer and don't have the ability or desire to fork/maintain Jekyll or Octopress. I wanted to have something that I pretty much owned. (yea - that comes with a larger maintenance burden, but meh - I'm a developer and its part of the process)
- Disliked that every time I
rake gen_deploy
I didn't know the exact code-diff that was changed since the previous version. I'd like to know exactly what files have changed and how they have changed before they get deployed. (again, there's probably a solution here, but didn't really care to dig deeper) - There's an issue on Windows where you end up mucking around with the codepage, which made working on things a bit of a headache.
So what did I end up with?
I now have a statically generated site all powered by gulp
and a small library/command line tool I've thrown up here: Togglejs.
How is this better ~err~ different?
- Regenerating my site only takes about 6 seconds (as opposed to the Octopress 30+)
- I learned gulp, and node.js streams along the way.
- Built by myself — which was a good for the learning experience.
- Don't have to set the codepage to
65001
for Windows machines. - Series support.
- I've implemented two different features for supporting a series. One allows me to control through YAML front matter posts and how they tie into a series topic. Another feature allows me to write out a series in a single markdown file, where I can specify a delimiter to split the articles up by. I may blog more about these in the future as they're a feature I've quite liked and was relatively easy to implement using my custom site generator.
- Easy post tagging for a custom feed that gets cross-posted to elegantcode.com
- The tog is easy to extend with custom commands and has a number of pre-built commands already ready to go.
Since I've not put a huge amount of time into it - and I haven't exactly developed it to be a competitor to Octopress or other static site generators, it pretty much has just what I need it to have at the moment and not really anything more.
How is this worse?
- I have to maintain it (this is both a blessing and a curse) - don't get the benefits of bug fixes by hundreds of contributors to Octopress.
- I haven't yet ditched the Octopress theme, so that change will be coming at some point.
- I don't have any automated process to deploying changes. So I can't just create a post on my phone, save to my repo and expect it to automatically show up online - but have ideas on how to do that.
- My
gulp watch
is not working correctly and it's not yet wired up tolivereload
which would be a nice next step...
BUT...
This is my site so it's all up to me to make it right...
It's been a pleasure to build this up and just a fun little project to hack on (as if all the other OSS projects I hack on aren't enough).