Using TextExpander to Paste Without Style

Craig Hockenberry over at explains how to set Paste and Match Style as the default option for ⌘V by setting a keyboard shortcut, overriding the default behaviour when pasting from the clipboard.

It’s a great solution and keeps the familiar keyboard shortcut, though it does have one caveat:

After you’ve made this change, you might find that the keyboard shortcut sometimes doesn’t work. The one that gets me the most is when I try to ⌘V in the “To:” field while composing a message in Mail. When you try to use the shortcut, you’ll hear a beep because the control doesn’t accept styled text and Paste and Match Style is disabled. When this happens, it’s easy enough to right-click and use the context menu or select Paste from the menu bar.

I’d used this keyboard shortcut for a while but this issue cropped up far too often for it not to be an inconvenience. Instead, I have a TextExpander snippet that just contains %clipboard, with the abbreviation `v.

I’m always using this snippet whenever I’m pasting text but, for anything else, I revert back to ⌘V. It’s not a better solution than setting a keyboard shortcut, but it may be a more useful one if you’re mostly handling text in the clipboard.


Generate iTunes Affiliate Links with Workflow

Shortcuts no longer supports shortcut file imports and links no longer function. Any links to shortcuts in this post have been updated to use iCloud links.

Blink is a new iOS app that provides a great way to generate iTunes affiliate links. The app has a great feature set (such as Markdown formatting and in-app search results), though one feature I particularly like is that you can call Blink from the Action sheet within the iTunes or App Store and create an affiliate link directly.

While reading a review of Blink over at Macdrifter, Gabe Weatherhead had this little piece of advice:

Let me start by saying that even if you don’t have a blog, you should create an affiliate account and generate affiliate links. You’ll make some money back on your purchases you make with it.

This got me thinking about how useful it would be to have a workflow that not only creates an iTunes affiliate link within the iTunes or App Store, but include an option to immediately open that URL as well. With Workflow, I can.

Here’s a workflow I created that can be called from the Action sheet within the iTunes or App Store. An affiliate link is generated which will be copied to the clipboard in your choice of plain text, Markdown or HTML link (along with the app name), or you can simply open the link in the appropriate store.

Whenever I’m about to buy an app, I run the workflow before purchasing it. The Store still displays the item I was looking at, and the page is simply refreshed to use my affiliate code.

Make sure to edit the workflow and update the Text action with your own affiliate tracking code.

If you use iTunes affiliate links on a regular basis, I’d highly recommend checking out Blink – I have and it’s awesome.


Subscribe to a Podcast Using its iTunes Store Link in Any Third-Party App with Workflow

Shortcuts no longer supports shortcut file imports and links no longer function. Any links to shortcuts in this post have been updated to use iCloud links.

I’m an avid listener of podcasts and frequently use the Podcast app on iOS to look through the iTunes podcast directory. I dont, however, use the Podcasts app to listen to podcasts (I use Castro), which makes subscribing to a podcast I’ve found within the directory a bit of a chore.

The iTunes Store doesn’t surface a podcast’s feed, only providing an iTunes link (the same type of link used to link to music, apps or movies) when sharing from within the app. This means that the link will only work within iTunes or the Podcasts app, and it can’t be shared to another podcast app.

Since I can’t use the iTunes link to subscribe to a podcast in any other app, I have to do either of the following:

  1. Open Castro.
  2. Tap the + icon to add a new podcast.
  3. Search for the name of the podcast.
  4. Select the right podcast and subscribe.


  1. Visit the podcast’s website in Safari.
  2. Find the link to its RSS feed.
  3. Tap it, forgetting that Apple’s own Podcasts app handles RSS links.
  4. Switch back to Safari.
  5. Copy the link to the RSS feed.
  6. Open Castro.
  7. Tap the + icon to add a new podcast, at which point the URL in the clipboard is autofilled and I can then subscribe.

Ok, it’s not a long process, but it sure as hell is inconvenient.

Using Workflow for easier podcast subscriptions

A favourite of mine, Workflow is a fantastic automation tool that takes advantage of many features, such as extensions in iOS 8. Workflows can be run directly from the share sheet as an Action, providing a near-limitless number of possibilities.

After using Workflow for a few months, and reading what others have been able to do with it, I was determined to find a way to avoid either of the above processes when subscribing to a podcast, and I began to look for any way to somehow find the direct feed of a podcast from it’s iTunes link.

I stumbled upon this post on Super User, which explains how to decode an iTunes podcast link into a JSON file, surfacing all of its information – and the feed URL.

Using this information, I’ve created a workflow that can be called from the share sheet in iOS that will query the iTunes link, find the feed’s actual URL and pass it along to a third-party app of your choice, or just copy to the clipboard. You’re now able to browse the Podcast directory, or open any iTunes link to a podcast, and subscribe to any podcast using the app of your choice. No more app switching and searching for podcasts.

A quick rundown of what the workflow does to accomplish this:

  1. A regular expression is used to find the podcast’s ID number from the URL, storing it as the variable PodcastID.
  2. Gets the contents of the URL used to find more information about a feed, using PodcastID.
  3. Another regular expression is used to identify the feedUrl value, which gives us the feed’s direct URL and is saved as the variable PodcastURL.
  4. A menu is created with the option to copy PodcastURL to the clipboard, or open it in a number of third-party apps.
  5. An alert is displayed if the URL is copied to the clipboard.
  6. To open the feed in either Castro or Instacast, a regular expression is used to find and replace “http” or “https” with “castro” or “podcast”. For Overcast, Workflow includes a built-in action for Overcast which is used.

Apple Products TextExpander Snippet Collection

About 18 months ago, I created a small set of snippets for TextExpander to autocorrect certain Apple product names, correcting the case, spelling or naming convention. Since then, this collection has grown to include a wide range of commonly misspelt or incorrect use of letter case in Apple product names.

Letter Case Correction

These snippets automatically fix the letter case for most Apple products, wherever possible. For example, if you type any variant of iPhone 5s, such as iphone 5, iPhone 5S or Iphone 5s, TextExpander will correct it Apple’s preferred styling.

Snippets are available for the following product lines:

  • iPod
  • iPad
  • iPhone
  • iPad
  • MacBooks
  • iMac
  • OS X
  • Apple TV

Product Builders

There are some snippets for the following products that you can use to specify exact models:

  • iPhone
  • iPad
  • iMac
  • MacBook
  • OS X

These snippets include the different letter case options, as well as names if required.

(image: apple-snippet-select.png)

OS X snippet includes all previous names and optional “Mac” fill-in for older versions.

(image: apple-snippet-macbook-te.png)

MacBook product builder includes optional fill-in for retina display.


Visit for download and installation information.


I’ve made this collection of snippets available on GitHub for anyone to contribute to, so if you have any additions or modifications you’d like to make, and are proficient with Git, fork the repo and submit a pull request.

If you’re not familiar with how Git works, you can make suggestions or report a problem by creating an issue on GitHub.


Country Names and ISO Code Snippets for TextExpander

I regularly need to include the name of a country in what I’m writing at work, so I find myself having to check the spelling, or a country’s official name, quite a lot. As I use TextExpander at work, I created a couple of snippets to make this process much simpler.

Country Names List

This is a simple popup menu snippet that includes the names and official spelling of all countries, provinces and principalities according to the United Nations Code for Trade and Transport Locations (UN/LOCODE) list.

(image: country-list-te-snippet.png)

Rather than worry about spelling a country’s name incorrectly, or using the wrong naming convention, I can just use a keyword to bring up the snippet and select the appropriate country from the list.

ISO 3166 Country Code Selector

This next snippet is a shell script that you select the name of a country from, just like above, but instead of filling in the country’s name – it populates it with the country’s ISO 3166 code.

(image: country-iso-te-snippet.png)

Why is this useful? As an example, Stripe’s Global page is set up in such a way that, if you include a country’s ISO 3166 code as an anchor link (such as for Jordan), the country field in the “Notify me” signup form is automatically set.

Using a modified version of this snippet, I can automatically create a tailored link to the Global page whenever I’m responding to someone who isn’t able to use Stripe yet. Being able to send them to the Global page and have it filled in with the correct country already is a nice touch.

These snippets are available to download on GitHub. To include them in your own collection, clone or download the repository as a ZIP, and double-click the .textexpander file.