It's all spinning wheels and self-doubt until the first pot of coffee.

Moved to Jekyll and Disqus

TL;DR: My blog is now produced by Jekyll, with comments hosted by Disqus.

This blog has transitioned between a handful of publishing platforms - including Movable Type, blosxom, and Wordpress. Well, apparently, it's that time again. I've been toying with making a change again for a few years, and finally just got all the pieces together over the past week. This blog is now just a pile of static files produced by Jekyll, and the comments are now hosted by Disqus.

This has a lot of interesting implications:

  • I can neglect my server for long periods of time without worrying that my long-outdated copy of Wordpress has been exploited. Really, there's no reason for me to have a full-featured CMS running here.

  • I could host my entire blog on Amazon S3 or something similar, and be more neglectful by reducing active code even further. The only crappy thing is that I don't think I can send decafbad.com directly to S3, and would need to redirect to a CNAME on a subdomain on blog.decafbad.com.

  • I can edit my blog directly on GitHub and, assuming I get the webhooks set up, have my server rebuild the HTML automatically on a git push. I could probably use GitHub Pages and the Jekyll support there, but I suspect I'll be doing some Weird Things that they won't handle. (And probably for good reason.)

  • Since Disqus has all my comments now, I can stop worrying about running that code on my server too. I'm a little antsy about putting that in the cloud, but the escape routes are well lit and I should be able to replace it easily if I need to. Self-hosted, JS-include-based comments is a project in my TODO list.

  • My writing here is now all stored in individual text files, formatted with Markdown, annotated with YAML metadata, and subject to revision control under git. This combination feels like it has a lot of longevity and potential for survival even beyond this current experiment with Jekyll

  • Writing, editing, and publishing entries here can now more closely match my daily reality of living in MacVim and git. It sounds lame, but the notion of swapping over to a Wordpress admin page and working in a browser textarea has often kept me from even starting a post.

But, some things are broken, now:

  • Fixed No more tag pages. I don't think very many humans visit these pages, but a lot of search engines do.

  • Fixed No more tag feeds. I expect to hear about this soon, since this blog gets syndicated to Planet Mozilla via my "mozilla" tag feed.

  • No more year / month archive pages or sidebar widget. Not sure how many people actually stroll down memory lane here on my blog, but I do have a gigantor huge list of all my posts evar, now.

  • A general lack of contextual links to related posts and such. Turns out that running the LSI option on Jekyll is completely horrible.

  • Regeneration seems less-than-happy in general, and I wish it did conditional regneration. That is, only produce the HTML for things that need it because dependencies have changed. No need to rebake the whole world just because I changed one file.

The bright side is that there are solutions to all the broken things, and now I have something to tinker with again on my blog. So, let me know if anything else looks broken, and hopefully this will get me spewing some more words out onto this thing soon.

Archived Comments

  • Testing a comment here on my new post.
  • Hi, did you happen to look at blogofile for similar functionality? I'm still trying to decide which way to  go. I prefer ReST markup..
    • I've had my eye on Jekyll for awhile now and have a few friends also using it, so I haven't really checked out any other packages. Might be nice to poke around at something based in Python since my Ruby-fu is not strong, but then getting stronger in Ruby is not a bad thing for me. And, for myself, I'm pretty stubbornly rooted in Markdown for all my writing online
  • What kind of metadata are you storing in YAML?
    • Pretty simple stuff: Title, tags, etc. You can see the source for this post here on github, for example: https://raw.github.com/lmorchard/blog.decafbad.com/master/_posts/2011-06-08-moved-to-jekyll.markdown I had once-upon-a-time thought about storing posts as RFC 822 messages, with the metadata in headers like email messages. But, this "YAML front matter" approach of Jekyll is a bit more flexible
  • Les, Check out what I did - I actually host my site on github thanks to TofuMatt's suggestion.  It works well and I have archives and whatnot.  In fact, most of my links didn't break.  This also means that I don't have to regenerate and sync, since github knows jekyll: https://github.com/davedash/davedash.github.com
    • Hmm... I might have to try that, but on a subdomain like blog.decafbad.com. I have some non-blog stuff here on decafbad.com and don't want to turn the whole thing over to github
      • It caused a few things to happen - speed up my deploy time and force me to check things into git.  Also my codez build tags and stuff...
  • So, how did you move directly from Wordpress to Jekyll?  was it simple enough to migrate, or is it a pain?
    • There is a migration script for posts. I may have had to adjust some minor things. Risqué has a migration for comments. it wasn't too bad.
      • Already using Disqus for comments on my wordpress install... It's the blog data itself that's the problem... Will have a look and play with the migrators...
        • FWIW, the script I tweaked and used for exporting from my Wordpress database is here in github: https://github.com/lmorchard/blog.decafbad.com/blob/master/_import/wordpress-decafbad.rb The only real pain was getting the SQL query to pick up tags the way I wanted. Otherwise, it's just getting things into text files.
  • Google Reader keeps getting tricked into thinking several of your posts are new, might be some kind of issue with your pubDate field in RSS, not sure.
  • Whups.
  • Have you had much success in customizing the features and display of the injected DISQUS UI?   Thile there are several knobs in their UI, but the only form of customization that's worked for me is fiddling with external javscript and CSS...  Specifically things like disabling media upload and changing default sort, and threading seem to be no-ops.
    • Hmm... I haven't even bothered to try customizing yet. I just dropped it in and it vaguely matched the rest of my page style, so I left it alone so far
  • Oh c'mon, there's nothing in the world more fun than updating Wordpress blog every time someone manages to sneeze wrong and cause an exploit. Sheesh, where's your sense of discipline.
  • Love to use disqus, and would like to integrate it onto my Wordpress blog for comments, as it is so user friendly, but I am not to hot though on all the HTML stuff, any advice would be greatly appreciated, cheers from across the pond.
  • Your sidebar archive widget was rather cool, layout wise; I bookmarked it as design inspiration, back when it existed.
  • how do you feel about using Disqus for your comments? Any problems or the urge to write your own JS based commenting system? I just feel a bit uncomfortable with a 3rd party provider for something important like comments...
    • Personally speaking, i have been using Disqus comments on my WordPress blogs for a while now (couple of years) and its working grand! don't have to worry too much about Spam, they manage backups, etc. you can even reply to, or delete comments (if spam does get though) by email, so you can manage them on your phone.