Things Parser 3

I’ve just updated my Things Parser to version 3 in the action directory. I’ve decided to move from the old custom syntax to TaskPaper to take advantage of the syntax highlighting in Drafts and to aid compatibility with other apps.

If you’ve never used Things Parser before, it takes tasks written in the TaskPaper format and imports them into the Things app. It supports everything that Things itself does including checklists, headings, natural language dates and more. You can read more about the details in my blog post.

In addition, to this, it also allows the use of template variables using the Mustache Prompt system, which you can read about in this blog post.

1 Like

If it’s Taskpaper is it specifically Things anymore? (I’m not a Things user but have some interest in Taskpaper format.)

My action is for importing TaskPaper into Things, and so it does have some Things specific affordances. For example, you can use @when() as well as the more standard @defer(), or @completed as well as @done.

Broadly speaking, there are two ways you can use TaskPaper. One is to use it as a format to write out project templates and then import into your app of choice, such as OmniFocus or (using my script) Things. The other way to use it is just to do all your task management directly in a plain-text TaskPaper document. The actual TaskPaper app is an interface for doing this on the Mac, and Drafts is a great place to do that on iOS.

1 Like

Right. And, by the way, md2pptx allows you to place tasks in the Markdown stream when making a PowerPoint presentation. (If you do the tasks appear in special Tasks slides at the end, with live links to the slide they were defined on.)

My point, apart from self-publicity :slight_smile: , is to reinforce the view that Taskpaper format, as opposed to the app, is really handy in lots of contexts.

I got into this thread by wondering whether your action has its own “party tricks” when it comes to handling Taskpaper lines.

EDIT: I forgot to mention that maybe Mustache is the “party trick”.

Nice! I will check out your script.

Yes, I agree, what’s great about the TaskPaper format is that it is gradually being adopted by a number of apps, so that it becomes a standard interchange format.

Yes, you are right that the main “party trick” is the Mustache templates, which allows for the creation of flexible and powerful project templates with relative dates, optional sections, and even a sort of for-loop functionality. In addition to that, there are a couple of little touches specifically designed for Things: for example the way that sub-tasks are translated into checklists and sub-projects into headings.


If it’s Mustache that’s central I’d trade on that, as much as Things and Taskpaper.

I was having issues creating projects. My own examples seemed to only convert to tasks on iOS and macOS. When I use the action on your example from the readme I get 3 tasks instead of a project.

They can obviously have tasks:
- like this one
- and this one

You need to use indentation to make sure the tasks “belong” to the project. So make sure the 2nd and 3rd line of your example begin with a tab character or a number of spaces.

As a matter of (more than academic) interest, not indenting still makes it a valid Taskpaper task, right?

(md2pptx supports this so it had better be right. It doesn’t attempt any corralling into projects. It’s why dashes aren’t allowed as bullet markers in md2pptx.)

Good question. My understanding is that there is no “official” spec for the TaskPaper format. My script uses the same parser, Birch Outline, as the Mac App called TaskPaper, which is the origin of the format. It does require indentation to denote hierarchy, so I’ve simply followed that. Perhaps the behaviour of Birch Outline is the closest we have to an official spec?

1 Like

Just re-reading your question, perhaps I misunderstood. An isolated task outside of a project doesn’t need to be indented to be valid, but indentation is required for a task inside a project (or for subtasks).

1 Like

Thanks. Then what md2pptx does is right:

  • Require * as a bullet marker - with indentation honoured.
  • Reserve - as a Taskpaper task marker, with at least one @ required on the same line.

Not quite compliant but it covers almost all the bases.

It’s easy then to winnow out the tasks. Also md2pptx uses these tasks to create Task Slides at the end of the presentation, parsing popular @ values to create tables - with each task row pointing with a live link back to the slide it’s meant for.

The point is this is good for presentation project management.

But I digress. Sorry!

Great work here more simple than before !!
Question? :slight_smile:
Do you know if with the same draft we add an action to create an event in Fantastical?
As I use it as my central schedule point in my workflow?

@Patrick68, you can certainly make Drafts parse lines in a draft multiple times. There are many posts in the forum and actions in the action directory that deal with Fantastical, and in ways to process information in Drafts. You also don’t have to combine everything in one action per se. You can chain actions together through the Include Action action step.

You also seem to have posted the same point/question three times on three different threads today. I would suggest you give folks a little more time to ponder your request for assistance.

While you note in one of those that you are “very poor in scritping”, I would suggest that you at least give things a try. You have lots of starting points available, and increasing your skills in this area will pay dividends and open up numerous opportunities for you. You may even surprise yourself, but you never know until you try.

Also, note that when you have smaller, specific questions, that can also open up the option for many more forum users to help you with the questions that you might have.

Hope that helps.

Hi Sylumer
Sorry if I have broke some forum rules here.
I have tried to post where I think it was the most relevant
now due to quality of this parser to create a todo in Thing I would need to have from the same draft a Fantastical event.
Thanks for your help

When you registered, you should have seen the FAQ. In the Keep it Tidy section, it states:

  • Don’t cross-post the same thing in multiple topics.

… that’s kind of what you were doing, and as the FAQ suggests, that just makes it messy, in that people who might want to reply wouldn’t know which of the three places is the best place to reply to you.

Don’t stress over it, the “Don’t divert a topic by changing it midstream.” entry in that same section is bent/broken a lot of the time in the course of discussions. Really they should branch off an reference back to the original thread, but that rarely happens.

In fact, the case could reasonably made that this discussion of the guidelines in the FAQ is precisely such a divergence … :face_with_hand_over_mouth:

@pdavisonreiber - think you for all of your hard work! I used V2 almost daily for a long, long time and have made the decision to move to V3.

I am seeing an issue where tapping on the action in a draft does not process the text. The behavior is basically I tap on Things Parser and nothing happens. I do have the Birch Outline installed in the Drafts directory as well.

I have searched and it does not seem that anyone else is having this issue, so I guess it might be user error. Anything that I may have missed?

That probably means your taskpaper formatted text is invalid in some way. I need to add better error messaging at some point.

Is there any chance you could share the text you are using the action on?

Thanks for the reply! Ah yes, it was my syntax. I am new to the taskpaper format and did not include the "- " before the task.

1 Like

Glad you found a fix. Thanks for raising this though: it has reminded me I need to add error messages for this kind of thing, rather than silently failing. Watch this space for an update!

1 Like