One Thing Well

is a weblog about simple, useful software (on any platform).
Follow along on Twitter or via the feed. Get in touch.

The Tumblr Gem

Much as I love Tumblr, it’s not perfect. The lack of data export or backup tools makes me nervous, the web interface is good, but requires an awful lot of clicking, and I haven’t been able to find a desktop client that can schedule posts.

Enter The Tumblr Gem. It solves all these problems by letting me store posts as plain text files, using a format that’s simple, human-readable and portable.

You add a post like so:

tumblr --credentials ~/.tumblr-login example-post.txt

Writing posts using YAML front matter is a little bit more complicated, but easy enough once you’ve set up a few snippets1 or template files.

I schedule all my posts, and only use three types; here’s how they look, formatted for The Tumblr Gem:

Regular

---
type: regular
format: markdown
title: Regular
slug: regular-example
tags: foo,bar,baz
state: queue
publish-on: 2010-01-01T00:00:00
---
The body of the post goes here.

Link

---
type: link
format: markdown
name: Example
slug: link-example
tags: foo,bar,baz
description: |
  Markdown formatted text goes here.
state: queue
publish-on: 2010-07-02T13:00:00
---
http://example.com

Photo

The Tumblr Gem can’t (yet) upload images, but it will import them from a URL—I pop them in a public Dropbox folder.

---
type: photo
format: markdown
source: http://dl.dropbox.com/u/84981/otw/example-image.jpg
slug: photo-example
click-through-url: http://example.com
caption: |
  Markdown formatted text goes here.
tags: foo,bar,baz
state: queue
publish-on: 2010-01-01T00:00:00
---

The Tumblr Gem supports posts of all types, and is clever enough to turn

tumblr http://example.com

into a link post, or

tumblr http://www.youtube.com/watch?v=BaiDza-zyCM

into a video post.


  1. I use Textexpander on the Mac, and snipMate for vim