“Lazy” Markdown reference links


Inspired by a workflow used at TidBits, here’s a script that allows you to use [*] reference links as lazy markers. The first [*]: http://... definition found after a [link][*] will be used as the definition for it. It’s easier to show:

This is my text and [this is my link][*]. I'll define
the url for that link under the paragraph.

[*]: http://brettterpstra.com

I can use [multiple][*] lazy links in [a paragraph][*],
and then just define them in order below it.

[*]: https://gist.github.com/ttscoff/7059952
[*]: http://blog.bignerdranch.com/4044-rock-heads/

This allows you to not bother naming or numbering links while writing, and easily move links along with their paragraphs without breaking numbering sequences or naming conventions.

It requires a little scripting to work, though, as you have to process the lazy links before running it through your normal processor. This script works as a Custom Preprocessor in Marked 2, as well as a standalone script as part of a chained workflow:

If this fits with the way you typically write, it’s a neat trick. Credit goes to Glenn Fleishman at TidBits for the idea and original implementation.