Create complex projects easily using shared templates
TLDR: Choose from a folder of Taskpaper formatted templates to instantiate a project with all «variables» replaced.
First, A Story
If you've spent any time looking into using OmniFocus project templates, I'm sure you've come across Curt Clifton's applescript Populate Template Placeholders. It is the de facto "standard" for creating template projects on the Mac.
I used Curt's script for years, but it always bugged me that I had to be at my laptop to make a project. Then, a few months ago I found Rosemary Orchard's workflow Omnifocus Project Templates which recreates the same functionality on iOS.
It was all good until the day when I needed to create a template that was shared with a coworker. After several rounds of emailing back and forth every time one of us made a change to the template, I decided there had to be a better way to do shared templates. Thus the idea for this workflow was born.
Now all of our shared templates (currently only 1, but we could just as easily have 500) live in a shared Dropbox folder, and if one of us makes a change, everyone sees it instantly.
How It Works
Similar to Curt's script, this shortcut allows you to select a template you have previously created and instantiate a project from it. If your template contains any «variables», the script will ask you what you would like to replace them with.
NOTE: Variables can only contain letters and numbers, no white space or punctuation.
What you will need:
A Dropbox or iCloud folder containing Taskpaper formatted template files. (Shortcuts requires a .txt extension)
If you are not familiar with Taskpaper format, there are a few options to make the process of creating the templates easier.
- OmniFocus offers the option to copy any project to the clipboard in Taskpaper format. You can then paste it into a text editor and make the necessary tweaks to generalize it.
- For those of you that use Drafts 5 on iOS, Rosemary Orchard has created a Taskpaper Action Group that makes working with these files much easier.
Because I usually want my templates to put the resulting project into a certain folder, I have added an option to support targeting where to create the project.
If you would like to target a specific folder, put it in the first line of your template in this format:
>>> Folder Name
If the first line does not start with >>>, or the specified folder cannot be found, the project will be created top-level instead.
How do I type the « » ?
MacOS: [ option + \ ] and [ option + shift + \ ]
iOS: long press [ " ]
When instantiating the project below, you would be prompted for vales for «Topic» and «PubDate». The project would then be created with provided values, and placed under the "My Blog" folder.
>>> My Blog Blog post on «Topic» @parallel(false) @autodone(true) - Research «Topic» @tags(online) - Draft «Topic» post @tags(writing, focused) - Proof «Topic» post @parallel(false) @autodone(true) - Send post to editor for proofing @tags(communicate, people : editor) @due(«PubDate» -3d) - Waiting on: response from editor WRT «Topic» post @tags(waiting on, people : editor) - Finalize any edits on «Topic» post @tags(focused) @due(«PubDate» -2d) - Publish «Topic» post @parallel(true) @autodone(true) @due(«PubDate» -1d) - Schedule «Topic» post to go live on «PubDate» - Schedule Facebook post for «Topic» on «PubDate»
Here is a screenshot of the resulting project, given that «Topic» = Siri Shortcuts, and «PubDate» = Jan 4
Link to image
Disclaimer: I don't actually have a blog, so I have no idea if this is actually a valid process for a post. It is, however a valid Taskpaper template, so it serves our purposes for this example.
- The Omni Group's Taskpaper Reference
- Lists all of the possible @ metadata tags you can use in your template to control any aspect of the resulting project/task in OmniFocus.
- Automators - Episode 5
- This podcast episode is a great introduction to project templates in OmniFocus.
- Rosemary Orchard has created a Taskpaper Action Group for those of you that use Drafts 5 on iOS.
This shortcut supports Check For Updates
Run Check For Updates at any time to check for updates to this and other shortcuts.
Latest Release Notes
1.2 - July 11, 2019, 12:49 p.m.
Updated 'Check For Updates' code to v2
· 2 weeks, 5 days ago
· 2 weeks, 5 days ago
· 2 weeks ago