the switch to middleman
So after a really long night, the switch from Jekyll to Middleman is complete.
So many things went wrong that really I can't even remember all of them (in a nutshell, I had made the mistake of customizing jekyll a little too much, which made the conversion completely non trivial).
But I'm content now. The storm is over, and I can now take advantage of all of the middleman functionality that I love.
So to those curious, why did I want to make the switch? Here you go...
I hate HTML
No really. HTML is terrible. So much freaking noise. I've played with both Haml and Slim in the past, and though they're both an improvement over the terribly inefficient mess that is HTML, Haml won out. Why? Because I was getting bitten by whitespace issues all the freaking time with Slim, whereas it comes up very seldom with Haml.
I hate Liquid templates
Even ERB is an improvement over Liquid. See, at one point, I really needed to have some url safe image links. Simple. I'll just use the stringex gem and its .to_url
method. I'm talking about being able to do stuff like this:
"Five Nights at Freddy's".to_url
=> "five-nights-at-freddys"
Well, not so fast. You'll have to figure out how to get liquid to use it. And I never could figure it out.
You know what it takes with middleman? Add gem 'stringex'
to your Gemfile
, run bundle
, and then simply just use .to_url
whenever you want.
Jekyll would force an entire site reload on every build
I'm not talking about the fact that jekyll has to rebuild the site locally. I'm talking about the fact that, for some effing reason, it was somehow changing the files such that my aws
utility would think that every single file was fresh and needed to be re-uploaded.
So, make a tiny typo? Poor you. Oops, you're going to have to re-upload the entire freaking site. Absolutely ridiculous.
With middleman, only the files that actually changed end up needed to be re-uploaded. So much more sane.
Opal support
I loves me some Opal. I'll do CoffeeScript if I have to. And I'll murder someone if I have to touch raw Javascript. But really. Opal or GTFO.
And given that I couldn't even figure out how to get stringex to work with Jekyll, I figured it was going to be impossible to ever get Opal working with it. And why do I care? I want to build a custom countdown clock.
See, the countdown clock I was using before... well, anytime I needed to change the title or the start time, I had to go to their site and create an entirely new countdown clock, and then upload brand new embed code. What a mess.
When I build my own thing, I'm gonna make it super easy to update. Because, ultimately, I am a lazy lazy person.
I was exceeding what Jekyll was capable of
It was fine when the site was blog oriented. In fact, for just a blog, I prefer Jekyll because I've never quite liked how Middleman's blogging engine worked (perhaps it's the fact that it's too customizable and therefore confusing, I dunno). But the more ideas I got for things I wanted on this site, the more I realized that a tool that at its core was just a blog tool (though jekyll has come quite a ways in the past few years), was really ill suited to what I wanted to do.
So now that I've said all that, watch me never add a single new feature to the site after tonight.
Jul 28, 2015: audio sync issues will be the death of me