As part of my determination to come up with a cleaner less keystroke-intensive workflow for all my writing, I’m taking a hard look at Markdown.
I first heard about Markdown back in 2004. I’d been blogging for a few years, and and hand-coding HTML. I came to HTML with surface familiarity with SGML in a library and deep familiarity with WordPerfect and WordStar. I’d been following Dean Allen’s development of Textile, and using Brad Choate’s MT-Textile plug-in for MovableType. John Gruber of Daring Fireball (one of the blogs that introduced me to blogging) created Markdown (with assistance from Aaron Swartz) as a way to format text for the Web without having to delve into HTML. In 2004 Gruber wrote about Markdown:
Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).
One of the virtues of Markdown is that it is easy to use, and easy to remember. In Markdown, you use *for bold*, _ for italic_. Headings are marked by a leading *for the largest heading, **for the next size down, ***for the next level. The tags are easier to remember and shorter than those for HTML. They’re minimalist, and less likely to obscure text and slow down writing or editing.
John Gruber thoughtfully provides simple to understand Markdown syntax documentation.
When I discovered that Gruber’s Markdown Perl scripts worked with MovableType (this blog ran on MovableType then), I installed it and used it for a while. When I moved from MovableType, I stopped actively using Markdown, but I remained interested in both Markdown and Textile (and even used TextPattern Dean Allen’s CMS bases on Textile). But recently, I became much more actively interested in Markdown for a couple of reasons.
First, TidBITS, the publishers of Take Control ebooks, started using Markdown as part of it’s work flow for creating Take Control ebooks. Next, Michael Cohen asked me to find a way to support Markdown in his WordPress Blog. He had become accustomed to writing in Markdown because of Take Control books. Secondly, publisher of The Magazine and smart tech writer Glenn Fleishman relied on Markdown format to produce The Magazine. Glenn’s enthusiasm about Markdown got me looking at Markdown much more closely than, say, learning enough Markdown to work on Wiki documents intended for internal documentation.
Why Use Markdown
- A Markdown file is liquid data; it’s going to be easy to convert in the future, just as it is easy now to covert Markdown formatted text files to HTML, RTF, .Doc, or .PDF.
- Markdown means fewer keystrokes than HTML. That means less keyboarding and no reaching for a palette or button to click. The longest tag I know of is three characters in a row.
- Markdown lets you use HTML as needed, without having to do anything exotic involving obscure technical feats or escape codes.
- Markdown may be easier to implement than HTML when writing on an iPad. At least that’s my current theory.
- Markdown allows you to concentrate on the text as content, rather than the text as document.
Last year I wrote a long essay (eventually published by Boing Boing) that I initially drafted in Markdown, then hand-converted to HTML. I know, now, that there were better ways to do that, but I used BBEdit for the Markdown version and for the conversion to HTML, so it was relatively trivial to do. BBEdit not only fully supports Markdown as a language, it was one of the first applications Gruber provided Markdown tools for. The current version of BBEdit (11.0.2) has built in support for Markdown (including the ability to Preview Markdown files in BBEdit and customizable syntax coloring). And using Markdown in documents destined for the Web doesn’t mean I can’t simply insert any HTML I need that isn’t covered by Markdown tags.
For any markup that is not covered by Markdown’s syntax, you simply use HTML itself. There’s no need to preface it or delimit it to indicate that you’re switching from Markdown to HTML; you just use the tags.— John Gruber
If you want more BBEdit Markdown support, Watts Martin has created a nifty BBEdit Markdown Extension Package that builds on the work of John Gruber and Aaron Swartz, and adds some additional commands, not the least of which are Transformation commands to convert Markdown to HTML, HTML to Markdown, and Markdown to BBCode. There’s a catch to using Markdown in BBEdit; you have to set Markdown as a Language in BBEdit’s Preferences, and you need to use “.md” and “.mdown” as file name suffixes/extensions.
I’m going to spend a few weeks or months deliberately using Markdown as much as possible. I’ve installed Watts Martins Markdown Extension Package in BBEdit. WordPress via a Jetpack plugin supports Markdown, and there are a number of dedicated Markdown editors for OS X (Markdown Pro from RADSense Software, Mou from 25.io, Typed from Realmac Software) and iOS (Editorial from OMZ Software, Byword from Metaclassy, and others).