Roll Your Own Automatic Markdown Journal With IFTTT, Drafts, Instagram And Dropbox [How To] | Cult of Mac

Roll Your Own Automatic Markdown Journal With IFTTT, Drafts, Instagram And Dropbox [How To]



There are many, many ways to keep a journal using your various iDevices, or paper, or even — if you’re desperate — your Android phone. (Kidding — a sharpie turns the back of any Android handset into the perfect paper-emulation device.) But they tend to be either high on effort — manually writing up everything yourself — or somewhat proprietary, keeping all your info inside an app or service.

But thanks to the ever-amazing internet automating service IFTTT (If This Then That), and some new channels, it’s now possible to roll your own plain-journal, pulling from various sources automatically. And it even includes pictures, which is quite a trick for plain text.

Here’s what we’re going to do. We’re going to take IFTTT, Drafts, Dropbox and several other services, and have them all add things to a single plain text file. Further, as this file will be written in Markdown format, you will see it as a beautifully-rendered page, complete with pictures and links, when you view it in a Markdown preview. Better still, you can export to any and every format you like, including HTML, PDF and RTF. Hell, you could even make a Word DOC if you really want to.

Other Apps

There are already a bunch of apps which let you write a journal on your iDevice/Mac. Day One is the most prominent, and it really is slick, adding maps, weather ands photos to your entries. However, it lacks auto-importing of things like your Instagram photos or Foursquare check ins.

Momento is another great app which goes in the other direction, pulling in content from all your feeds, including Flickr, Instagram, Twitter and any RSS feed you like. Unfortunately it is iPhone only (still no iPad version, three years after it launched) and receives almost no attention from the developer.


Drafts 001
These settings will append your note to a file named “Journal,” in a Dropbox folder named “Journal.”

We’ll begin with Drafts. Drafts app takes any text you type in and then parcels it up and sends it off to any app you like. One of its many talents is appending text to a plain text file in Dropbox. To set up the Journal file, head over to Drafts app and go to the settings. Tap on “Dropbox Actions” and then hit the + to make a new one.

I have chosen to make one big text file containing everything. You could also opt for separate files for everything, and just keep them all in the same folder.

This is where we tell Drafts to add our note to a file. Following the screenshot, we pick a path for the folder, a name for the file and an extension, and finally the template for the journal entry.

Choose any name you like. I called both the folder and the file Journal to make it easier. And the eagle-eyed may have noticed I picked the file extension TXT instead of a Markdown extension like MD or MDOWN. This is because IFTTT will only work with TXT files. While Drafts can do both, the fact is that any decent Markdown viewer can handle TXT files, so TXT it is.

It’s also worth noting here that I have chosen to make one big text file containing everything. You could also opt for separate files for everything, and just keep them all in the same folder. This tutorial will work either way: you just need to pick “create file” instead of “append to file” whenever you see the option. And in this case, you will want to tell Drafts to dynamically name your files. I’d go with a timestamp to keep everything in order.

So here’s my code:

[[date|%A %B %d %Y %R]]


The date is formatted to look nice to my eye (if you’re using separate files, you’ll probably want to use something that sorts better in the Finder. Here’s a handy list of UNIX date commands)).

The result of this:

Monday March 18 2013 13:08

Test journal entry. Pretty sweet!


That’s it. Now you just tap out a quick note in Drafts and choose your newly-created Journal action to share it. A couple seconds later the new entry is added to the bottom of the file (you could choose to prepend the entry to have new content appear at the top instead). How could anything be easier?


IFTTT is a kind of internet glue that pipes data between web services. Today we’re going to use it to make several actions which append their results to a single Dropbox file. My examples will be Foursquare checkins (to remember where you’ve been), Instagram photos (a picture is worth… etc.), the weather, and Withings fitness app (blood pressure and weight). There are plenty more, but these are the ones I use, and the process is easy enough that you can roll your own.

To begin, you’ll need an IFTTT account, and you’ll need to connect it with the services you use, like Instagram and Foursquare. Then, you’ll want to create a new action. You can start from scratch or just use my actions and tweak them.


Yummy, yummy recipes.

Get my Instagram recipe.

This recipe will show the basics of IFTTT recipes. First you choose to create a new recipe. Hit the giant “This”” on screen and choose Instagram. If you haven’t activated the channel, you’ll be prompted to do so. Now you can see the various Instagram triggers. We’re going to pick “Any new photo by you,” which triggers every time you take a new picture. You could also stalk someone and have all their pictures added to your journal.

Click it, click “Create Trigger” and then click “That.” Pick Dropbox, choose the option to “Append to a text file,” and then get started:

Customize as much as you want. I used Markdown to make things look nice when I preview the file on my Mac or iPad.

That’s the default recipe. For our uses, we’re going to change the folder path to “Journal” (or whatever you specified when you set up the Drafts action above), and set the file name to “Journal”, too. Now you can choose the content, which is the text that’ll be sent to your Journal file. The Ingredients are all available in a dropdown to the right. Here’s mine:

- - - - -<br>
Instagram Content
The blue blobs are variables that IFTTT will fill out for you.

The {{Caption}} entries and so on are filled out by IFTTT at runtime. The rest is up to you. I opted to put the image URL in a Markdown image link, which has the dual advantages of making the text itself look cleaner, and also embedding the image when previewed. This means that your Journal will dynamically display your Instagrams inline with your text.

Here’s the result of the action in plain text form:


The Trifle Tower
March 17, 2013 at 09:34PM 

- - - - -

And here’s how it looks in preview:

What’s made of sponge-cake, custard and jello and sits next to the river Seine?

Pretty neat, huh? To reiterate: this IFTTT action generates a Markdown image link for every photo you take on Instagram, and adds it to your static Journal file, a plain text file. It also adds the caption as both caption and image title, and drops the date in there too.


Get my Foursquare recipe.

Foursquare is just as easy. The available options are different, and include the name of the venue, a map image URL, a venue URL (linking to the venue’s Foursquare page), plus checkin date and “Shout.” This last is the comment you add when you check in. Here’s my recipe. Note — the dashes and the br tags help with formatting and readability.:

I went to {{VenueName}}. {{Shout}}<br><br>
- - - - -<br>
Everything you see here is generated from a plain text file on my Mac. All pictures are loaded dynamically when you view.

Now, at last, you have a good reason to use Foursquare check ins. I only check in when I go to a new place, or when I’m on vacation so I can remember everywhere I went. And now I have the results nicely rendered in a portable text file. Previewing an entry fives ups this:

The Weather

Get my weather recipe.

IFTTT doesn’t have a way to give you a weather summary of the current day. Its triggers are meant to be used to send you warnings and forecasts (I have a great one that pings me via Boxcar when it’s about to rain). But you can finagle a report out of it using my recipe:

{{TodaysCondition}} today! With a high of {{HighTempCelsius}} C and a low of {{LowTempCelsius}}C.
Current wind speeds: {{WindSpeedMph}} from the {{WindDirection}}<br><br>
UV index: {{UvIndex}}<br><br>
Humidity: {{Humidity}}%<br><br>
- - - - -<br>

Set the time to whenever you like. I picked 4PM as it seems to be the time of day when the weather is at its most intense here in Barcelona.

What’s next?

IFTTT provides a ton of neat services (you could use a Boxoh recipe to record when a shipped package arrives at your door, for example), but you can also investigate other services. Mr. Reader on the iPad is an RSS reader which lets you roll your own custom actions. letting you save your favorite Google Reader articles to your Journal (until GR shuts down in a couple months at least).

And if you decide to do so, you could even have IFTTT save all your Instagrams to a folder in your Dropbox and reference those links in your Journal (I’ll leave that project up to you).

The beauty of this method is that you own it. You never need to worry about exporting your Journal from an app because you have it right there in your Dropbox, in the most universal format ever — plain text.

Can’t find the service you like? Then head over to the RSS section of IFTTT and use that. It’ll suck in pretty much anything from the internet, including your Twitter feed (Twitter makes your Tweets available as an RSS feed, even as it locks out access from services like IFTTT).

The beauty of this method is that you own it. You never need to worry about exporting your Journal from an app because you have it right there in your Dropbox, in the most universal format ever — plain text. You can include rich content in the form of links, which will keep the size of your text file small (IFTTT will create a new file for you once the existing one reaches 2MB. But a 2MB plain text file is huge. You won’t be reaching that limit very soon).

Plus, you can view it anywhere: as plain text in eye-friendly Markdown, or rendered in the format of your choice. And what I like the most is that it does all the work for you. I can just jot down some thoughts about the day (or not) and the rest id taken care of. My Tweets; my Instagrams (which are pretty much records of the day anyway) plus some handy metadata about the weather, or where I was.

Got any other ideas about other services, or clever ways to put journal-like info through IFTTT? Mail me, or leave a comment. Better still, post the links to your own shared recipes.


Daily round-ups or a weekly refresher, straight from Cult of Mac to your inbox.

  • The Weekender

    The week's best Apple news, reviews and how-tos from Cult of Mac, every Saturday morning. Our readers say: "Thank you guys for always posting cool stuff" -- Vaughn Nevins. "Very informative" -- Kenly Xavier.