The Eternal Truth of Markdown

2 months ago 33

Markdown became a halfway portion of however I wrote. The simplicity and flexibility meant I would unrecorded the imagination of constitute once, tally anywhere. It did pb to immoderate ambiguity, though. Gruber would astir apt accidental this is by design. His accent passim the Markdown documentation is connected the syntax of Markdown, not—say—the resulting HTML. His Perl publication does not enactment HTML people names oregon IDs, for example, truthful you can’t adhd those to the generated HTML. By the logic of the archetypal Markdown script, if you privation implicit power implicit the HTML output, past you’d request to constitute successful HTML.

This concern is large for Markdown users: that is, writers. It’s little large for programmers. In fact, it drives them crazy. Programmers bash not similar ambiguity. It goes against truthful overmuch of what programming is about. As a writer utilizing Markdown, I emotion that I tin prime whichever peculiar mentation is champion suited to my needs. As a programmer, I hatred that erstwhile I physique thing I person to marque this aforesaid decision, which past affects each the radical who usage my finished product. Maybe I didn’t enactment immoderate circumstantial hold they were expecting due to the fact that they’ve ever utilized the aforesaid Markdown parser and presume that diagnostic is available.

If this weren’t atrocious enough, determination are besides immoderate ambiguities successful the syntax. For example, asterisks are utilized for italics erstwhile singular (*like this*) and bold erstwhile doubled (**like this**). So acold truthful good. But what should hap if you constitute **like* this**? Should that beryllium rendered like* this? Or possibly like this*? There’s nary mode to know; whoever is penning the parser has to marque that decision.

What’s more, dissimilar astir highly palmy pieces of code, Markdown is not publically hosted connected the code-sharing tract du jour. It doesn’t person hundreds of radical contributing to it, and the past clip the archetypal Perl publication was updated was 2004. This excessively rubs programmers the incorrect way. We’re a cliquish bunch; things extracurricular the clique are viewed with suspicion.

About a decade ago, determination was an effort to destruct the ambiguities successful Markdown and bring it into enactment with coding dogma. Some programmers got unneurotic and created CommonMark, which makes the choices the archetypal Markdown publication doesn’t and came up with what its creators deliberation is the One Right Way to Do It.

CommonMark offered comfort. It’s connected Github. It has a treatment forum. It seems to beryllium an progressive project. I person ne'er personally incorporated CommonMark into a project, but its parsers are what person your Markdown to HTML connected specified fashionable sites arsenic Stack Overflow, Github, and Reddit. (To destruct the asterisk ambiguity, for example, it projected underscore for italics, asterisk for bold.) Presumably the developers down CommonMark see it a success.

But it’s not Markdown. Not successful name, and I would reason not successful spirit.

Around the clip the CommonMark effort was happening, the bundle developer Dave Winer told maine thing I inactive deliberation about: Markdown belongs to everyone who uses it. This is virtually existent due to the fact that of the license. But it besides reminded maine of the existent constituent of escaped software. We each person a accidental successful it: by utilizing it, by adapting it, adjacent by forking it.

Whether Gruber intended it this mode oregon not, Markdown does beryllium to everyone, and determination is nary standard. I usage a precise aged mentation of Markdown for Python. Gruber presumably inactive uses his Perl script. Other radical usage different versions. It’s messy. It’s ambiguous. It’s human.

And this, successful the end, is the Way.

Read Entire Article