Migrating to Jekyll
Subscribers to my blog are now seeing some of my most recent posts for the third time in less than three weeks. I write this post to apologize for that and to explain what’s happened. From this post on things should be back to normal in the RSS feed. If you care to know more, here goes.
The reason for the disruption is that I’ve moved to the [Jekyll] blogging engine. I started with [Blogger] six years ago this month. I switched to [WordPress] in 2006 and have developed at least six other sites with WordPress since. I’ve also used [Tumblr] and [Chyrp]. Each of those platforms work but none of them were what I’ve grown to want for working well.
[Jekyll] is “a blog-aware, static site generator.” I’d read about it a couple times and I thought it could be a great solution, but I also knew that I didn’t own the right tires to navigate the [terminal] and [Ruby] learning curve. Of all the changes to the Void, this is by far the most drastic, the most challenging, and the most nerdy. I also believe it is, or will be, the best change.
[terminal]: http://macapper.com/2007/03/08/the-terminal-an-introduction/ [ruby]: http://ruby-lang.org/
Jekyll Is Good
These are some of the reasons I’m excited about Jekyll.
Everything (I interact with) is a text file. I write posts and pages in [Markdown] using [TextMate]. I code the layout in HTML and CSS (and some [Liquid]), but no [php]. Every file is saved on my local drive under a “mother” folder and I keep that folder in my [Dropbox]. That means I only edit in one place, that means I have an always current “backup” of my site on my computer, and that means Dropbox keeps all my machines in sync.
[Markdown]: http://daringfireball.net/projects/markdown/ [TextMate]: http://macromates.com/ [Liquid]: http://www.liquidmarkup.org/ [php]: http://en.wikipedia.org/wiki/PHP [Dropbox]: https://www.dropbox.com/
The local [file directory] becomes the site directory. For example, when I save (a properly formatted) file to
/folder/_posts/articles, Jekyll turns that file into a post in the [articles] category. The same is true for [scraps] and [series]. I was dissatisfied with the simple timeline approach to navigation that, almost by default, weighted relevance by newness. Specific dates are helpful, even necessary, to make sense of more time-aware posts, but [series] articles are better organized in other ways. The directory structure shines even more brightly for pages. See the [sitemap] for examples of pages in the works.
[file directory]: http://drp.ly/Pca5o [articles]: /articles/archive [scraps]: /scraps/archives [series]: /series [sitemap]: /sitemap
My previous workflow annoyed me. I used to write the post in TextMate, select all, copy, open a browser tab, navigate to my blog’s web backend, create a new post, paste the content, add meta information, then hit publish. If I saw that an edit was needed, I had to repeat the process or risk not having the corrected version on my computer. The process for updating a page was even more tedious, especially if the page was buried in a sub or sub/sub/subdirectory. MarsEdit is a great program but recommends only keeping a copy of the 30 most recent posts due to server load. It doesn’t support pages at all.
Jekyll also includes a built-in [server] for local development and testing. That means I can add or edit and see the changes in my browser before updating the online site. Jekyll also makes deployment (possibilities) simple. After I learned enough, now I can push the changes in under 10 keystrokes (with the help of [TextExpander]).
The site is a simple directory of html files hosted by an online server, in my case [Media Temple]. Because the site is static, not dynamic, there are no worries about cache or [security]. That also means comments are not possible. Many Jekyll [sites] solve the “problem” with a third party service such as [Disqus]. I don’t want comments anyway. Maybe someday I’ll want to bring comments back; I doubt it. In the meantime, after each post I’ve extended an invitation to respond by tweeting [@tohuvabohu]. Plus, most people who read my blog (or who understand how to find information [about] a web site’s [author]) know my email address.
[Media Temple]: http://www.mediatemple.net/go/order/?refdom=tohuvabohu.org [security]: http://scobleizer.com/2009/09/05/i-dont-feel-safe-with-wordpress-hackers-broke-in-and-took-things/ [sites]: http://wiki.github.com/mojombo/jekyll/sites [Disqus]: http://disqus.com/ [@tohuvabohu]: http://twitter.com/tohuvabohu [about]: /about [author]: /author
There are no plugins to manage or WordPress security updates which may or may not break said plugins. Also, now I’m not forced to view a thousand things I don’t need from ever swelling software bloat.
I’ve also decided to combine [Scraps] (from Tumblr) into the Void, while still identifying them in their own [category]. As I mentioned above, the [sitemap] page shows the site’s direction even though I’m far from the getting her to the destination. Lots of links are not yet resurrected, and transferring the older [Scraps] and [Void on WordPress] will take some time. I’ll see how easy it is to keep a [recent updates] page recent for a while.
In Hyde Sight
I have only two concerns with the new system at this point.
There isn’t yet a way, or at least one that I know about, to add or edit things from my iPhone, iPad, or even from any public computer. Both WordPress and Tumblr have apps and web apps. That said, in almost three years of iPhone use, maybe I blogged from it twice. More important to me, if my iPad hopes to succeed my laptop with joy, I’ll need to figure out a solution.
The other negative is that, during this remodeling process, those who are subscribed to the site received some old posts in their Readers up to three times. Like I said at the beginning of this post, I’m sorry about that. Please hit “Mark all as read” and forgive me. I’ve now made my final decision about the permalink structure and back-added enough posts that I think all additional back-adding will fly under the RSS feed.
I’ve enjoyed the process, learned some new things, and been the right amount of distracted by the project. Now it’s time to move beyond the meta.