October 25, 2012
Markdown is a simple little humane markup language based on time-tested plain text conventions from the last 40 years of computing.
|Meaning, if you enter this…
||…you get this!
Lightweight Markup Languages
According to **Wikipedia**:
> A [lightweight markup language](http://is.gd/gns)
is a markup language with a simple syntax, designed
to be easy for a human to enter with a simple text
editor, and easy to read in its raw form.
Some examples are:
Markup should also extend to _code_:
10 PRINT "I ROCK AT BASIC!"
20 GOTO 10
Lightweight Markup Languages
According to Wikipedia:
A lightweight markup language is a markup language with a simple syntax, designed to be easy for a human to enter with a simple text editor, and easy to read in its raw form.
Some examples are:
Markup should also extend to code:
10 PRINT "I ROCK AT BASIC!"
20 GOTO 10
You can think of Markdown as a radically simplified and far more human readable form of HTML. I have grown to love Markdown over the last few years. If you're a programmer of any shape, size, or color, you can't really avoid using Markdown, as it's central to both GitHub and Stack Overflow. For that matter, my new project uses Markdown, too.
Markdown is a wonderful tool, but it does suffer a bit from lack of project leadership. The so-called "spec" is anything but, and there are dozens of different flavors of Markdown out there, all with differences in the way they behave. While they are broadly compatible, Stack Overflow and GitHub have both tweaked Markdown in ways that can trip you up if you're familiar with one but not the other; compare GitHub Flavor with Stack Overflow Flavor.
That's why I was so excited to get this email from David Greenspan a few days ago:
I'm the creator of EtherPad (a collaborative WYSIWYG editor), now working at Meteor. At Meteor, we're trying to "pave the web" for developers by writing better components. For example, we just released universal login buttons that talk over WebSockets and are wired into the users table of the app's database. Since Markdown is increasingly ubiquitous for writing content, it's going to be part of the Meteor toolchain. I wouldn't be surprised if we end up releasing a component like Stack Overflow's editor, with the full "Meteor" standard of code quality, so that no one has to roll their own again. Today, we use Markdown in our API docs generation, and we're going to be writing more and more content in it -- which is a scary thought.
I think you and I share some concern (horror?) about Markdown's lack of spec and tests. The code is ugly to boot. Extending or customizing Markdown is tricky (we already have some hacks and they are terrible), and I worry about "bit rot" of content if the format doesn't have a spec. I'm evaluating the possibility of starting over with a new implementation coupled with a real spec and test suite, and I've been thinking a lot about how to parse a language like Markdown in a principled way. I'm pretty fearless about parsers, by the way; I wrote a full ECMAScript parser in a week as a side project.
I want this new language – working name "Rockdown" – to be seen as Markdown with a spec, and therefore only deviate from Markdown's behavior in unobtrusive ways. It should basically be a replacement that paves over the problems and ambiguities in Markdown. I'm trying to draw a line between what behavior is important to preserve and what behavior isn't.
I was excited because, like David, I freaking love Markdown. I love it so much that I want to see it succeed and flourish over the next 20 years. I believe the best way to achive that goal is for the most popular sites using Markdown to band together and take ownership of Markdown as a standard. I propose that Stack Exchange, GitHub, Meteor, Reddit, and any other company with lots of traffic and a strategic investment in Markdown, all work together to come up with an official Markdown specification, and standard test suites to validate Markdown implementations. We've all been working at cross purposes for too long, accidentally fragmenting Markdown while popularizing it.
Like any dutiful and well-meaning suitor, we first need to ask permission for this courtship from the parents. So I'm asking you, John Gruber: as the original creator of Markdown, will you bless this endeavor? Also, as a totally unreleated aside, have I mentioned what a huge Yankees fan I am? Derek Jeter is one of the all-time greats.
I realize that the devil is in the details, but for the most part what I want to see in a Markdown Standard is this:
- A standardization of the existing core Markdown conventions, as documented by John Gruber, in a formal language specification.
- Make the three most common real world usage "gotchas" in Markdown choices with saner defaults: intra-word emphasis (off), auto-hyperlinking (on), automatic return-based linebreaks (on).
- A formal set of tests anyone can use to validate a Markdown implementation.
- Some cleanup and tweaks for ambiguous edge cases that exist in Markdown due to the lack of a formal specification.
- A registry of known flavor variants, with some possible future lobbying to potentially add only the most widely and strongly supported variants (I am thinking of the GitHub style code blocks which are quite nice) to future versions of Markdown.
And that's it, really. I don't want to extend Markdown by adding tons of crazy new functionality, or radically change the way it currently works, or anything like that. I'd be opposed to such changes. I just want to solidify and standardize the simple, useful version of Markdown that is working so well for everyone right now. I want there to be an unambiguous, basic standard that everyone using Markdown can expect to work in the same way across all web sites in the world when they begin typing.
I'd really prefer not to fork the language; I'd much rather collectively help carry the banner of Markdown forward into the future, with the blessing of John Gruber and in collaboration with other popular sites that use Markdown.
So … who's with me?
Posted by Jeff Atwood
Sorry if I'm using this blog post for advertising, but this is definitely related: I'm working on a Free (as in Free Speech) WYSIWYG editor for Markdown.
The owners of a spec aren't its creators. It's the users. You don't need Gruber's stamp any more than you need mine. BUY OBD2
I like Markdown as well. During writing some tech docs and release notes, I find that two issues need to be fixed for Markdown.
1. The underline. Now a paired single underline makes the word it wraps up italic, while a paired double underline makes the word it wraps up bold, which behaves the same as aterisks. I really hope that it only supports the asterisk for italic/bold usage. Or if we can get some statistics on the frequency of underline and asterisk, we can choose the less-use one for that markup.
2. The table. Creating table in a Markdown text is really painful(I'm using the html table markups to achieve it). A suitable markup that makes table creation easy will be welcome!
Another candidate you might consider is Rimu http://rimumarkup.org/
a new readable text to HTML markup language.
Disclosure: I am the author Rimu (and AsciiDoc).
It shares the Markdown philosphy and has some common syntax but takes
it quite a bit further. The implementation is clean and lightweight
Jeff, could you please edit the original post with an "Update" that links to the new W3C group (http://www.w3.org/community/markdown/)? I think it's a big development, and very few people who come to this post would notice the link buried, as it is now, in the comments.
You pull out the pliers, but they don’t have those serrated surfaces; it’s flat and smooth. That’s less useful, but it still turns bolts well enough, so whatever. Páginas Amarillas
I've read most of the comments, it's funny how everyone promote their own favorite markup. Don't worry, I'll do the same, soon.
I'd like to share your enthusiasm for Markdown. Hey, Markdown is almost everywhere: on tumblr, on stackoverflow, on github... It mostly pleases geeks over normal people, because very few "normal" people enjoy using any specific markup for formatting text, but anyway, Markdown share a big part of the small market of the lightweight markup langages.
I don't really enjoy Markdown. Probably I feel a bit jealous of this success, especially when, like Toby said, there are technically superior alternatives, but they are eclipsed.
Yes, Markdown is fragmented: too many versions and derivatives. Why? Simply because the default Markdown lacks options and possibilities. You can't even strike-through with Markdown, so they proposed to add < del > (which is html) for this purpose. Since I don't enjoy writing HTML, I don't really want to encumber my texts with HTML tags in a lightweight markup, which is supposed to get rid of HTML.
Also, I don't like the regular Markdown markup: single symbol such as * or _ can often mixed up with what you need to type (contrary to double symbols such as //, ** or __).
People of the Creole project spent quite a long time to rationalise the "most logical" Wiki markup (see http://www.wikicreole.org/wiki/Reasoning). It's very good, unfortunately they didn't even mention txt2tags, which 90% of Creole is looking alike.
Besides, Txt2tags is much older than Creole (and than Markdown as well) and Creole doesn't cover all possible user case, so it can't really be a common wiki langage for all the others: you can't underline in Creole, seriously. Some people will probably claim it's not "semantically correct" to use underline, or to talk about italic when it should be called emphasis. The good new with txt2tags is that you can redefine almost everything (input and output) because there are a builtin preprocessor and a postprocessor (using regex).
So you can conceive new markup, or change the default output (for example < strong > instead of < b >), just with a single pre/postprocessor, and it will remain a valid, standard Txt2tags file. No need to create a "git flavored markdown" or a new derivative.
Well, I favor txt2tags, but I think something should be done so choosing reStructuredText, or Txt2tags, or Markdown, or Asciidoc shouldn't be compulsory nor prevented, and everyone should be able to choose one favorite markup and use it everywhere. TextWheel could be an option, but the code hasn't been touched since 2009.
If you think Shawn`s story is surprising..., one week ago my son in law also actually earnt $4641 grafting a fifteen hour week from home and they're buddy's sister`s neighbour done this for 9-months and got paid over $4641 part time on their pc. the information available on this page...Online Income
no more desktops, no more PC's. They want tablets that they can bring with them, that are completely wireless with a touch-screen and a nice bag to carry it in. So yeah, I can see how the PC is disappearing, becoming less and less interesting for the mundanes while the experts still need them. buy facebook fans
That's is true. So, as long as you're not involved in any kind of productivity area that involves PC's (I work on film editing and 3D design) and you only consume content instead of creating in, well, you're nice and tidy on a tablet and a smartphone. buy facebook fans
Just for the record, everybody is absolutely AGAINST your third 'common gotcha', automatic return-based linebreaks.
Markdown is, and should remain, plain text.
If you need a manual br-eak (not a new paragraph), you should end the line with two [del]spaces[/del] [ins]backslashes[/ins]!
Also, why not invite Google into it? They work well. :-)
Thanks for all your share that you post here.I'm so happy to be a part of your blog.
I think it would be great if markdown could support the typical table syntax used by console applications, for example; mysql
| id | doodads |
| 241 | 291 |
| 639 | 871 |
It isn't very elegant to actually write it by hand but copy/pasting it to stackoverflow would be great.
With the easy availability of HTML 5 Wizzywig editors, markdown is an unneccesary layer of indirection.
Markdown has its place, and its place is shrinking, but NOT as a public facing editor.
It was a mistake to put it in Stack Overflow. It has no useful purpose there.
Hi, my suggestion is, please contact with github and stackoverflow. Unite with them, and it'll be smooth going.