2.3.1 Release Notes (Parsing Changes)

Launch Center Pro 2.3.1 Release Notes

Overview

Launch Center Pro 2.3 introduced the support of nested input tags and nested encoding helpers. The release was well received, but the concept of encoding is still a mystery to most people. Version 2.3.1 brings some major changes to the way URLs are parsed. (Ideally this would have introduced in 2.3, but we’re not perfect.)

In the vast majority of cases, your existing URLs should continue to work. We are always happy to help rewrite and/or fix your actions if not. Get in touch on Twitter or our help site. Thanks for your patience in this process. No pain, no gain.

[prompt] and [[prompt]] are now evaluated exactly the same. We recommend using single brackets for clarity.

The first design goal is that you just write the URL logically and insert input tags wherever you want the text to go. You shouldn’t need to think about encoding at all. That’s a big statement, but give it a try and see what you think.

While most actions are simple, our amazing users like to push the limits of what’s possible with callback chains, crazy nested tags, etc. Advanced actions call for an advanced set of tools…

Special Operators

Operators affect the behavior of input tags. To add operators, you simply insert them right after the opening bracket of any tag. Order does not matter and multiple may be combined. (In most cases you should not need these at all – try without first!)

Valid Operators:
+ - ^ ! ~

Encoding Adjustment Operators

As mentioned before, input tags automatically set their encoding based on context. These operators allow you to adjust the encoding level. By encoding level, we mean:

[+input]

The auto-calculated encoding level is increased for each “+” in a tag’s operators. This is useful if an input tag’s output isn’t being encoded, or you want it to be encoded an additional time.

[-input]

The auto-calculated encoding level is decreased for each “-” in a tag’s operators. This is useful if an input tag’s output is being encoded more than you’d like.

[~input]

This causes us to ignore context-aware encoding entirely. Encoding is reset to 0. You can add one or more “+” with this to set an explicit encoding level:

# This will always be double encoded, no matter where it is in the URL
[~++clipboard]

While there are obscure examples where this is needed, we don’t recommend explicitly setting encoding levels. Instead, adjust encoding relative to the auto-calculated level with + and -.

Execution Timing Operators

In most cases, prompts will expand when you’d expect. For those other times, we now provide fine-grained control over when prompts expand.

[^input]

This prevents expansion on the first execution of the URL. One ^ will be removed for each execution. (You can have multiple if needed.)

Let’s assume you wanted to pass a literal “[clipboard]” into another app. By default, this tag would expand with the clipboard value. By adding a ^, you are telling Launch Center Pro to ignore this tag for one execution.

# this will create a new draft with "[clipboard]" as the content
drafts://x-callback-url/create?text=[^clipboard]

[!input]

By default, tags in known callback parameters (x-success, lc-callback, callback_url, etc) will be delayed in execution until the callback is executed. This operator forces tag expansion on the first pass. Example:

Without the “!” operators, only the first [clipboard] would expand within Launch Center Pro. With “!” on the next two, all of them are expanded when app1 is called.

Legacy URL Deprecations

All good things come at a price. That said, we’re lucky in that this new parsing engine maintains backwards compatibility with the overwhelming majority of existing actions out there. If you have any legacy actions that don’t work, please don’t hesitate to find us on Twitter or the help site.

Encoding helpers inside tags

If you have encoding helpers inside a tag in 2.3.1 and later, it’s likely that the value will be double-encoded when run. (This is most common inside an old “un-encoded” list.)

After 2.3.1, you should rarely need to manually encode (or use encoding helpers) inside a list or other tag. The encoding behavior will be handled by the tag itself. In most cases, simply removing the encoding (or {{}}) will fix the problem.

Others

While we are aware of a couple additional unique cases that may break old actions, none are notable enough to mention at this point. If any common ones surface, we’ll update this list accordingly. Operators make solving strange problems much easier.

GIF Bookmarks

You can now bookmark your favorite GIFs for quick access. Add a bookmark from the detail page, and view your bookmarks by tapping the bookmark icon in the search bar. (Bookmarks will also be backed up if you use the Dropbox backup feature.)