Update: I've since improved the blogging engine — see the New Domain for Tav article.
I became a blogger in 2002 with Radio Userland. As the trial expired, I decided to wait till better tools were available. 6 years and an active blogosphere later, I presumed things had improved.
So I tried out Wordpress and Blogger. What did I find? Crap. Now don't get me wrong. They are decent publishing tools. I've set up various Wordpress blogs and even convinced my mother to start a blog on Blogger due its funky transliteration tools.
But if all I'm getting is a publishing tool, then I at least expect ease of customisation and ability to add my own HTML when needed. After all, this was a basic feature of the original web browser! But no.
Instead you can spend hours trying to customise the overly complex CSS. You will have your line breaks broken up in weird and arbitary ways. And unless you are a masochist, don't even try mixing WYSIWYG and raw HTML editing!
So, after spending an entire night trying to bend Blogger to my will, I decided enough was enough. And in less time than it took to figure out Blogger's CSS class names, I was able to hack together this minimal blogging engine.
It's just a simple Makefile, 2 little python scripts and a template file with bits of HTML and Javascript. To write a new blog entry: create a new restructured text file and then run make && svn commit. Tada!
If you are interested, here is the text file from which this article was generated:
- a-minimal-blogging-engine.jen — it's plain text despite the .jen ending
Now this particular solution is definitely not for most people. But I was pleasantly surprised at just how much functionality I could put together in a few hours — and still maintain full control over the content and style!
This has only been made possible thanks to the following tools which have come along in the last few years:
- Disqus — for distributed comments
- Docutils — for converting restructuredtext to html
- Google Analytics — for visitor statistics
- Google Code — for hosting the subversion repository
- Feedburner — for handling the RSS feeds
- FriendFeed — for aggregating my web activities
- jQuery — for manipulating the Disqus API
- Subversion — for version control of the articles
I am particularly excited by that last feature. As I get full versioning support for free. Looking at it another way, I get a personal wiki without any additional work on my part!
Of course, this setup is not geared for multiple authors and doesn't have fancy web interfaces. But it is definitely a better publishing tool for me than the other options that I can see out there.
Please let me know if there are decent alternatives that I should be using instead. And if you care to use this setup, then checkout the subversion repository. All my code is placed in the public domain.
And now that I've done what several thousands of others have done before me, I can hopefully focus on creating tools that are actually geared towards enabling dialogue and active collaboration.