Using Markdown Tables with Day One and Launch Center Pro

Markdown Tables

Update: After writing this post, I built a tool to help encode these templates. See the bottom of this post for more info.

After posting my Beer Log action for Launch Center Pro yesterday, I got a couple of questions about how to generate those pretty tables in Day One.

Day One has extensive support for rendering Markdown. In fact, it supports MultiMarkdown, which is a superset of Markdown that includes some additional goodies like footnotes and–most importantly–tables.

Even though you can create tables with Markdown, most people don’t. The syntax is really quite ugly. Here’s an example:

| First Header | Second Header |         Third Header |  
| :----------- | :-----------: | -------------------: |  
| First row    |      Data     | Very long data entry |  
| Second row   |    **Cell**   |               *Cell* |  


The inimitable Dr. Drang wrote a detailed explanation of Markdown tables, so I’ll link to that here rather than try to write my own explanation. His is quite good.

Deconstructing the coffee log

The raw Launch Center Pro (LCP) action that Ben Tsai released is URL-encoded. It has to be in order for LCP to understand it. For us to customize it, it would help to decode it. You can do this in one of several ways. TextTool for iOS has encode and decode functions. For creating the Beer Log, I used this web-based tool by Eric Meyer.

Here’s the original Coffee Log after decoding:

dayone://post?entry=#coffee #log

|Brew method|[list:Brew Method|AeroPress|Chemex|Drip|Espresso|French Press|Pour Over|Other]|
|Brewer|[prompt:Who brewed it?]|

Now that we can read the Markdown table syntax, customizing the table is pretty straight-forward. Note the fields inside square brackets. Those are specific to LCP.

Before installing it in LCP, you’ll need to re-encode your action again once you’re done tweaking it. This is where it gets tricky.


You can’t just re-encode the entire string. Looking back at Ben’s action, parts of the URL are encoded, and other parts aren’t.

%7CBrew%20method%7C[list:Brew Method|AeroPress|Chemex|Drip|Espresso|French Press|Pour Over|Other]%7C%

If it were completely encoded, it would look like this:


See the difference? It’s the square brackets (and everything inside them).

If the square brackets end up encoded along with the rest of the string, LCP won’t understand it. You won’t get any prompts or lists, and your action will silently fail, or the app will throw an error.

Instead, you’ll have to encode your string piece by piece. Encode everything that isn’t inside square brackets, and piece your URL together.

Yes, it’s a pain, but I haven’t found an easier way to go about it. You’ll probably have to debug syntax errors along the way, but if you’re careful, it shouldn’t take long to get the hang of it.

Update: This app can handle the encoding for you. You can build your entire table in the editor, then click the Encode Template button. Code for the app is available on GitHub.

Experiment 002: Plink

Quick Capture with Launch Center Pro

I’ve got a new favorite Launch Center Pro action. It’s called Capture. When invoked, it displays a text entry box. Enter some text, tap Next, and select which text editor you want to send your text to.

Capture Workflow


For it to work, you must have Drafts, Simplenote, Byword, and Day One installed. You’ll need to install this Drafts action, too.

I use a variant of Capture on the iPad that also includes Editorial. You’ll need this Drafts action to send text to Editorial.

I also use a variant to send my clipboard contents directly to a specific editor.

Byword, Day One, and Simplenote actions come with Drafts, so you don’t need to install any specific actions to work with them.


Using Day One alongside any one of these other editors makes sense. But why use all of these editors at the same time? It’s about creating content silos.

  • Stuff related to the work I do for my company goes into Simplenote where I can share it with my wife/partner.
  • Beginnings of blog posts and articles go to either Editorial or Byword depending on which device I’m using.
  • Occasionally, things need to be sent to Drafts for further processing.
  • And journal entries go into Day One.

Both Byword and Editorial are pointed at a Writing folder in Dropbox that contains separate folders for blog posts, work-related articles, and notes (which are just lists of things—places I want to go, books I want to read, etc.).

That’s complicated and kind of a messy way to organize bits of text. As a result, jotting down ideas and notes on iOS was a bit of a pain in the ass. I didn’t want to have to decide which app to open before I started writing.

Note taking is all about speed. I can decide where it should go after I’m done jotting; deciding as a first step caused a (small but annoying) pause while I figured out what app I needed to launch.

My capture routine used to start with Drafts, but this Launch Center Pro setup requires fewer taps and is a bit easier on the eyes. Also, finding the right action to use in Drafts once you’re ready to hand off the text was a bit more tedious than simply picking from a short list of options.

For quick note taking, this workflow is the closest I’ve found to mimicking the speed and ubiquity of pen and paper with my iPhone.