I'm writing an authoring tool and love the idea behind Markdown where content creators can write in a semi-normal fashion and have their content be formatted nicely. I don't want to give authors too much freedom where they can have significant impact on the whole outer webpage or create ugly formatting. And I want any JavaScript to be controlled very tightly. So Markdown seems ideal.
However, the Markdown syntax and tool seems to be last updated in 2004! Since I'm running Ruby on Rails to parse Markdown I've looked at kramdown and redcarpet (using this right now). So those libraries are maintained, but the syntax is still lacking even with updates from PHP-Markdown.
For example, I want authors to easily add a Youtube (or other source) video. For that I've added Ruby code to return back a Youtube embed if the http protocol of an image is youtube://
: ![alt text](youtube://9shZslfbaS0)
. I figure a video is kind of like an image and is inline. But this feels ugly. Similar issues arise with audio, animations and diagrams.
Of course, I can make my own new syntax based on Markdown and write my own parser. Not too easy extending redcarpet this way, maybe kramdown is easier. But I don't want to do this. I want the content created to last and be standards based.
So my question is if Markdown is the best standard for a simple modern web text authoring tool? Is there anything else on the horizon?
I would even love HTML without any CSS or JavaScript. Maybe that's the best approach? Strip out all CSS and JavaScript and let HTML do its job of describing the content. It's a bit more verbose than something like Markdown, but certainly is modern and supports everything I want.
As I have commented and John Gruber as well
Markdown is not a replacement for HTML, or even close to it. Its syntax is very small, corresponding only to a very small subset of HTML tags. The idea is not to create a syntax that makes it easier to insert HTML tags. In my opinion, HTML tags are already easy to insert. The idea for Markdown is to make it easy to read, write, and edit prose.