Matching URLs In Editorial with John Gruber’s Regex Pattern

Editorial for iPad

When I’m writing in Editorial, I often need to make sure I’m dealing with a valid URL in the system clipboard, the document editor, or in a variable. To do so, I’ve long employed John Gruber’s liberal, accurate regex pattern for matching URLs, which has reliably allowed me to confirm that a workflow is about to handle a proper URL rather than a string of text that contains something else. Gruber recently improved the regex pattern again, and that seemed like a good opportunity to briefly detail how I’ve integrated his pattern in my workflows.

The key to match URLs and provide error-handling features in Editorial is to use a conditional block based on a regular expression pattern. Editorial comes with this functionality built-in: given a regex pattern, a block of actions can be run only if a value (plain text or variable) matches the pattern. In this way, you can run a set of actions if you have a URL, and another set if you don’t have a valid URL.

I’ve created a simple workflow that can be installed and reused as a preset in other workflows. The workflow, called Match and Open URL, consists of a single If block that checks for a URL contained in the clipboard. If you have a URL that matches Gruber’s pattern, the URL will be extracted from the clipboard and launched in the browser; if you don’t have a URL…it’s up to you to provide an alternative.

Editorial makes it extremely easy to build this kind of advanced workflow with just a few built-in actions. Gruber’s single-line version of the regex pattern can be pasted in Editorial’s If action with no modifications; inside the If block, the text in the clipboard is passed to a Find action that extracts a URL using the same, untouched single-line regex pattern. The extracted URL is opened in the browser and a HUD alert is displayed.

Combining Gruber’s regex pattern and Editorial’s workflow system can yield interesting results. You could use a variable instead of the system clipboard to match URLs; you could implement the pattern in a Repeat block that performs a set of actions for every matched URL found in the target text; instead of having my workflow inside an If block, you could match a URL among other bits of text, extract it, and do something with it. Editorial is a text automation playground and your imagination’s the limit.

You can download the workflow on Editorial Workflows’ website, and check out John Gruber’s regex pattern here.

Note: The screenshot above shows a beta version of Editorial, currently in testing.