Markdown nostalgia

Before I leave the subject of the current episode of The Talk Show, I want to mention one other topic John Gruber and Jason Snell talked about: Markdown.

John was apparently in a nostalgic mood when the episode was recorded—a common state among the middle-aged—and he shifted from the early days of Daring Fireball to the invention and initial development of Markdown. The latter didn’t directly follow from the former, but nearly so. And John indulged in a little “they all thought I was crazy” triumphalism, which I can’t blame him for. When I started using Markdown thirteen years ago, it was just one of many plain-text markup formats, and it was far down on the list when it came to popularity and recommendations. Now it’s everywhere and is the only plain-text format most people have heard of.

And if you’ll permit me my own bit of triumphalism, one of the last features to make it into the official, Gruber-certified version of Markdown, was due to my complaint near the end of 2004.

Markdown version

The release notes for Markdown 1.01 include the following:

Changed the syntax rules for code blocks and spans. Previously, backslash escapes for special Markdown characters were processed everywhere other than within inline HTML tags. Now, the contents of code blocks and spans are no longer processed for backslash escapes. This means that code blocks and spans are now treated literally, with no special rules to worry about regarding backslashes.

NOTE: This changes the syntax from all previous versions of Markdown. Code blocks and spans involving backslash characters will now generate different output than before.

Those are John’s words, of course, but it was my bitching that made him write them.

Then as now, I included a lot of source code in my Markdown, and certain backslashed character sequences had to be double backslashed in code blocks to get the resulting HTML to display correctly. For example, if you had a regex in your code that looked like this,

/\* [A-Z]/

you couldn’t simply paste it into Markdown and indent it. You had to go in after pasting and escape that backslash,

/\\* [A-Z]/

which was a pain in the ass and far too easy to overlook. Worse, it was unMarkdown-like, which is why John made the effort to rewrite the code block section of Markdown.pl.

So if you put a lot of source code in your Markdown documents and you never think twice about having to edit the code after pasting, you have me to thank. And John, I suppose.