Plink - Not Just For Bloggers

The little app I’ve been working on is proving to be more interesting than I originally envisioned. I wanted something to help with blogging, but once I built in full support for x-callback-url, I found a few more uses for Plink.


The above video shows how you might use private photo storage and Day One’s new Publish feature to take on a 365 project.1

Launch Center Pro calls Plink and passes an x-success URL that tells Plink to hand the URL of the uploaded image off to Drafts. Drafts calls an action on itself, which generates a Daily Photo journal entry from a template using the URL passed in from Plink. Once the template is assembled, it’s handed off to Day One, and my journal entry is complete.

Plink’s role is to be as close to invisible as possible, and I think it does its job admirably.

I really want to see what other stuff people can do with Plink. The Backer campaign has a little over a week to go, and we’re pretty far short of our goal. If you think Plink looks like a useful app, we’d really appreciate it if you’d consider kicking in a few bucks or helping us spread the word on Twitter or App.net. Thanks. <3


  1. A 365 project, for those who don’t know, involves taking a photo a day and sharing it with people. 

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* |  
[simple_table]

Ew.

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

|Coffee||
|:---|:---|
|Origin/Name|[prompt:Origin/Name]|
|Brew method|[list:Brew Method|AeroPress|Chemex|Drip|Espresso|French Press|Pour Over|Other]|
|Brewer|[prompt:Who brewed it?]|
|Rating|[list:Rating|★☆☆|★★☆|★★★]|
|Notes|[prompt:Notes]|

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.

Re-encoding

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:

%7CBrew%20method%7C%5Blist%3ABrew%20Method%7CAeroPress%7CChemex%7CDrip%7CEspresso%7CFrench%20Press%7CPour%20Over%7COther%5D%7C

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.

I’ve been writing with my iPad for a while. Almost every post on this site was written with Editorial. I even built a custom workflow to post to Tumblr directly from the app. And so far, I’ve been including screenshots using an adapted version of Federico Viticci’s image upload script.

It works well, but this sort of thing isn’t accessible to everyone. It’s too fiddly to set up, it requires looking at and sometimes editing code—it’s difficult. And while blogging from an iOS device is currently a small topic with a limited audience, I think there’s a broader audience who would be interested in it if it weren’t so difficult to do.

The fact that it’s non-trivial irritates me. For a device that Apple touts as being immensely capable, something as simple as blogging should have been solved on day one. When a person is judging whether or not to adopt a platform, the decision can often come down to things that seem trivial.

I really like the iPad. I want to see more people using them. So I’m building Plink to make blogging from an iOS device easier for those people who’ve tried and found it to be too difficult. For me, the biggest annoyance has been dealing with images. Uploading them, getting a link to them, inserting the link in my document, etc. Plink takes care of that.

You could say that Plink is a feature, not a product. You’d be 100% correct. And honestly, if an enterprising app developer wanted to build a wonderful blogging application that fits all of my needs (including the functionality that’s in Plink), more power to ‘em. I’d buy it (or back their Kickstarter or Backer campaign) in an instant.

But until then, Plink could fill a small gap in a small workflow used by a small set of people. And if it eventually convinces a few more people that an iPad can be used as a primary writing/blogging device, I’ll be pretty stoked.

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

Setup

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.

Why

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.