0xDECAFBAD

It's all spinning wheels and self-doubt until the first pot of coffee.

Markdown, Oh the Humanity

I use Markdown to write for this blog, and I don't think I could write much online without it. (Of course, that's not saying much lately—but nevermind that for now.)

Although I do appreciate all the effort put toward enhancing <textareas> on the web, I'm not a fan of WYSIWYG writing interfaces. They hide too much in an effort to make things "easy"—yet, for all that ease, they make me miss Reveal Codes in WordPerfect 5.1 for DOS. Hell, I wish I could write books using Markdown instead of Microsoft Word. (And, yeah, I know that some O'Reilly authors have written books in perlpod—but that's a bit too far even for me.)

Anyway, I think the issue is that it really bothers me to compose HTML in the same mental context as writing prose—HTML is too much like code. Coding and prosing are two different modes for me, and I don't like the constant context-switching thrash. (And, yes, I've just learned today that prosing is a word.)

So, apropos of this, there's been a thread in the blogophere lately naysaying non-HTML, wiki-text, and smart-ASCII formats. They seem to be mostly attacking the idea from a technical perspective, where it's more like a usability problem to me.

I don't see where Jeff Atwood's "Is HTML a Humane Markup Language?" makes the case for HTML as humane. As far as I can tell, the inhumanity is that markup schemes are harder to keep track of than HTML. Yet, there's a kind of coder macho thing going on there that's decidedly not humane—i.e. real programmers should be fine with getting their eyes poked by angle brackets on a regular basis.

Anyway, I do agree that some of these formats are horrendous. Wikipedia markup and BBCode are nasty in particular. Though, Wikipedia markup at least has some semantic purpose beyond HTML. But, I can't follow from that to seeing how the whole idea is wrong.

I used Textile for awhile, and then switched to Markdown when it came around. At this point, I've been using Markdown since it came out in 2004. I now plug Markdown into everything I can where I'll be doing any writing. There's a version of Markdown in just about every language known to the web these days—you can even find Markdown in Javascript. I write notes to myself in Markdown, even when there's no URL to view it. I've even used Markdown semi-consciously when writing by hand in a paper journal.

Perhaps I've said too much.

Anyway, I'll expend as many brain cells as it takes to not need to compose raw HTML by hand in the course of writing. As it happens, I can usually just use Markdown, so those brain cells were spent years ago. And thus, I feel I've saved more brain cells in avoiding coding/prosing thrash. So, it could just be personal preference, but I agree with the reasons why the original wiki doesn't use HTML.

Archived Comments

  • I couldn't agree more on this dude. As for people like Jeff Atwood... well, pffft. I grow tired of the "real programmers" do this or that mentality and while I'm a regular reader of Coding Horror, I hear alot of that garbage there. Fortunately I have excellent noise filters for my idea factory so it doesn't make much of an impression. peace.

  • I use Markdown everywhere as well. I am not sure about the technical arguments against it, but personally, it does a lot less damage than wysiwyg.

    In fact, it's nice in that it gives you control without sacrificing readability.

  • I dunno, I'm not a fan. By using underscores and brackets, instead of full tags, it has a tendency to break down a lot. Which has, thusly, prompted http://fuckingmarkdown.com/ in frustration.

    It's too clunky and requires as much user involvement to get it working 100% of the time as simple HTML or BBCode. Nothing more frustrating than posting a URL with an underscore in it and having markdown convert those underscores into italics, breaking the whole damned thing.

  • Of course, if you put the URL in angle brackets, Markdown will refrain from touching it at all. Likewise for file- and variable names in backticks. That said, John Gruber has repeatedly said that he considers the underscore issue a bug, and the next release will fix this so internal underscores inside words will not trigger emphasis markup.

    So that particular issue, pain in the bottom as it can on rare occasions be, is easy to work around now and will completely vanish in the future.

  • Doesn't markdown lack necessary things for being a template engine? (similar to Smarty)

    I mean, ${some_variable} to echo a variable, and if/else, and foreach an array?

    Or, do you just use something like PHP's and use PHP's if/else/foreach? Or Ruby or Python, etc, I mean.

  • @gavin: Markdown's not a template engine, it's like wiki text or "smart ASCII" It's a set of rules allowing users to write in plain text that later gets converted to HTML. No logic or variables or control structures involved.

  • Meh. I use HTML because that's my preferred syntax of choice. I have a vested interest in using it because I don't want to learn a "simpler" form that requires me learning something different, solely because it's different and therefore involves learning.

    That's not to say that Markdown, WikiScript, LaTEX, or using in-lined emacs command syntax is any more or less valid than HTML or whatever other syntax someone else has a vested interest in using.

    The only thing that matters is whether or not the output of said syntax methodology is readable with zero effort on my part.

    (Heck, you could code this using straight MIME encoded UNICODE variables for all I care at that point.)

  • If you wish you could write books in markdown, checkout pandoc. It's a Markdown to html,latex,pdf,etc,etc. converter written in haskell.

  • I'm new to the markdown languages, and must say there are a plethora of them. Can I ask if you guys are still using markdown or whether you've switched to something else? Also, what think ye of multimarkdown and Pandoc?

    My constant hassle with markdown is it's inability to align images, or am I missing something?

    I totally agree that tags inhibit creative writing. I can hand code HTML/CSS, but I can't write anything decent whilst doing it. The other major pain with tags is that the flow of your original document is crap. Markdown leaves you with a readable document.

    My only difficulty is that I want to take things one step further and use it for all my writing needs. Markdown hasn't seen any development in a while and the missing image manipulation is an issue for me, especially as most blogs contain images.

    I have some 3000 pages of MS Word documents that I need to find another format for so if anyone things any of these markup languages are up to it it would be great to hear.

    sorry for writing so much!