4 ms·
Markdown is merely the lowest common denominator of what is essentially a jungle of weird and wonderful wiki languages. The reason it is so under-specified is t
by jillesvangurp 5y ago
Markdown is merely the lowest common denominator of what is essentially a jungle of weird and wonderful wiki languages. The reason it is so under-specified is that it emerged out of the Ruby community in a time where the whole point of Ruby was that it was a scripting language without a lot of appreciation for things like types or specifications. The first serious attempts to unit test and specify ruby itself actually came out of the JRuby community. Which had an obvious need to cover all the complicated stuff that Ruby did so they could handle all the edge cases in the same way. You see the same with other scripting languages where the obsession with specifying what things like Javascript or Python actually do came later in the life of the languages.
I think the main reason for the popularity of Markdown is that is minimal, forgiving, and uses things that are kind of intuitive for basic formatting. * for bold, - for bullets, etc. Similar compatibility issues between various implementations exist for things like Json, Yaml, HTML, etc. Some of these things even have IETF or W3C specifications nowadays. The specifications usually come after things get popular; rarely before.
Whatever the ruby markdown library did was the specified behavior of Markdown for some time. And then of course it caught on and several alternate implementations emerged for different languages; each with their own features added or interpretations of features. Then Github adopted it, added a few features they needed and then it went mainstream in a big way by virtue of world+dog using Github.
At this point Markdown is collection of features that may or may not work depending on which library and language you use; or even where you use it. The simple stuff works everywhere. But your mileage may vary with some of the more advanced stuff like tables for example. Mostly, the Github dialect seems dominant for the simple reason that that is a popular place to find a lot of markdown content.
The problem with alternatives is that they are comparatively less widely used and therefore a bit more obscure. You need good library support across multiple language ecosystems and a lot of the alternatives simply don't have that or enough of a community of users that care enough to fix that. People have their favorites but they can't seem to agree on a single one. So, Markdown it is for most of us. I'm not even sure that is a bad thing.
I kind of like it, actually. It's good enough for my needs. I use pandoc to convert markdown files to html for my website. It supports enough of the Github dialect that I don't have to obsess over what it supports or doesn't support too much. I'm unlikely to convert my content to another format at this point. I use it without thinking in Github issues, in readme's, etc.
- fanf2 5y agoJohn Gruber’s original markdown processor was written in Perl, not Ruby.
- gerikson 5y agoI still use it on my blog (as a filter).
- jillesvangurp 5y agoI never knew :-). Perl was already a bit obscure by the time I got active in the late nineties. But it makes sense as the first wikis would probably have been implemented in that rather than in Ruby. Likewise, php would have happened later.
- kall 5y agoA good thing about it is that when a tool doesn‘t support a certain feature, it‘s usually graceful, because most syntax is designed to be usable as plain text, so just fall back too that.
- tannhaeuser 5y ago> Whatever the ruby markdown library did ... FYI John Gruber's original Markdown.PL is written in Perl [1] not Ruby. > ... things like [...] HTML [...] even have IETF or W3C specifications nowadays. HTML was originally designed as an SGML vocabulary [2], and had SGML DTDs by IETF and W3C for the longest time [3] (albeit somewhat defective from the beginning, and grew a number of warts over time). The beauty of Markdown IMO is that it's specified as a short syntax for HTML, with the option to include inline HTML where the fragment covered by Markdown is insufficient. That's exactly the model supported by SGML's SHORTREF feature which lets you define context-dependent tokens SGML will replace into canonical angle-bracket markup. So if you're looking for a document preparation system that lets you write casual text a la Markdown (or your own customized or novel syntax), then can translate that syntax into predictable markup and goes all the way to support complex document integrations with established XML tool chains, etc. etc. and can also import/produce HTML, then there's always SGML, based on an ISO standard even. [1]: https://daringfireball.net/projects/markdown/ https://daringfireball.net/projects/markdown/ [2]: http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html [3]: https://datatracker.ietf.org/doc/html/rfc1866 https://datatracker.ietf.org/doc/html/rfc1866