Communication is really hard. I am amazed over how other people do it. They write so fast, they seem to be so quick from thought to speech. I'm usually quick to make up my mind, but formulating why can take several days. Especially when there is uncertainty. One good way of knowing what you really think and whether it's good or bad, is to formulate it in written words. Since I'm the only voice behind Aggressive now, I needed an easy and nice way to write down my thoughts and read them later. Simply put, it was time for me to write my own static blog engine!
It seems like this is something that most developers do from time to time. All you want is to get some words into an HTML-file and upload it to your server, how hard can it be? Especially since all other blog tools have too many trade-offs you don't like. I first used the jekyll blog engine, and was basically happy with it. Costume layouts are a hassle, and there are a lot of missing features. If you want to add those, you need to adopt a mixture of ruby, html, and questionable template languages (liquid). After a few wasted weekends I realized that, even though I got it to work, it was a time-sink not worth it.
Instead I took my javascript snippets from our other projects and turned them into a simple library for doing layouts. With it I can build single-page webb applications extremely fast, and do all types of layout that HTML, CSS and javascript allows (more on that project in another post). I can write posts in markdown, put them into the index.html file and upload it. The posts are a JSON dictionary that get sorted by publish date. The javascript handles all the navigation, and the parsing of markdown into html. It is really simple but still powerful enough to let me build whatever I want with it.
It has a few drawbacks: It does not have a concept of tags or categories, and it does not handle images very well. Also, it probably don't play well with search engines. Working with it is also a bit cumbersome, I much rather have separate text-files that could generate the html (and also create the RSS). Building an automated process for this is the next step, and feels easy enough to be done in a few hours. Adding tags or categories are also simple, just another field in the JSON dictionary. I'm not sure if I need those, I mean, will there ever be more than one category: "annoying ramblings"?.
It is however a start, and it does pretty much what jekyll did (Jekyll without any plugins). Jekyll is very capable, I don't want to sound like I'm downplaying it. By the time you read this I hope the blog should be enough nice looking to not be horrible to read, and the engine gotten a few more perks.
It's more fun to write when you know it will lead to some lovely coding!