I love markdown, despite its quirks and shortcomings. I use it daily in my professional life as a technical writer, and in my creative life as a blogger and novelist. So in celebration of all things text, I decided to give a brief rundown of my favourite markdown tools.
But, first thing's first…
What is markdown?
In case you don't know what markdown is, it's a lightweight markup language created to give web writers an easy way of compiling plain text into HTML.
Chances are, you've used markdown, even if you don't know it. Ever used an asterisk for bullets or emphasis? Or perhaps you've marked your headings with a hash. If so, you're primed to learn markdown.
# Heading 1 ## Heading 2 ### Heading 3 I am a paragraph. > I am a blockquote. * This is a bullet point * And this is another one.
The most significant advantage with markdown, aside from its simplicity, is it's based on plain text. Plain text is platform agnostic, lightweight and indestructible. In 30 years of computing experience, I've never seen a text file corrupt, which is more than I can say for MS Word, or even Scrivener on rare occasions.
Writing in markdown also separates content from presentation. As a technical writer who's dealt with corporate rebranding throughout my career, believe me, this is the best way to write docs, and insulate yourself from pain and whims of those wankers in management.
No surprises here for anyone's who's followed my blog for any length of time. I love Ulysses for drafting my blog posts, short stories and my personal journal. It has the best drafting experience of any app I've used. Ulysses's UI is the perfect blend of form and function. While its markdown support isn't as fully featured as many of its competitors, it's more than adequate for prose.
Beyond the writing experience, I also like the Library, the way goals and word counts work, the abundance of keyboard shortcuts, and material sheets. I particularly like the simplicity of its export feature, which is far easier (though less powerful) than Scrivener's compiler. Thanks to Ulysses' support for Ghost (and WordPress and Medium), I can publish a blog post with a couple of clicks.
Ulysses is a subscription app (the only app I subscribe to), but the cost is negligible given how much I use it. In return for my annual subscription, the app gets updated regularly with refinements and new features. This is more than I can say for Scrivener, which is languishing while its developers put all their efforts into Scrivener 3 for Microsoft Windows.
Ulysses is available on the Mac App Store, or SetApp.
MultiMarkdown Composer is my Swiss-army knife for markdown. It's made by the gent who developed the MultiMarkdown dialect of markdown. In this respect, MMC is the canonical MultiMarkdown editor of choice with the strictest adherence to the dialect.
Despite my love for Ulysses, it falls short in technical writing since it lacks support for tables, definition lists, glossaries, metadata blocks and so on. When writing technical content, I some documents accessible on the file system, so I can manipulate them more readily with shell scripts, command-line tools and other utilities to massage text. MultiMarkdown is ideal for this use case, though it's not a great app for losing yourself in the drafting process.
My only gripe is how little support MultiMarkdown Composer gets these days. The app is growing very long in the tooth. iA Writer has long eclipsed MMC in both features and performance. For this reason, I'd recommend iA Writer. If I didn't already have MMC, I don't think I'd buy it in 2020 — at least not without some concrete evidence from the developer he hasn't abandoned the app.
MultiMarkdown Composer is available on the Mac App Store. The MultiMarkdown command-line interpreter is free and open-source, and can be installed using HomeBrew, or by downloading the installer from GitHub.
Writing tables in markdown sucks — pipes (|), tabs and dashes, do not make for a pleasant experience. In fact, I enjoy writing JSON more, and that's saying something because that sucks too.
TableFlip takes the pain of writing markdown away by presenting you with a spreadsheet-like interface, making it much easier to write and edit tabular data. Not only can TableFlip export new tables to a markdown document, but it can also read tables within an existing document and update them in place. Even better, if your file has multiple tables, TableFlip opens them simultaneously in separate tabs. As an added bonus, it also works with CSV files.
TableFlip is available on the Mac App Store.
macOS's Quicklook feature has been an integral part of my workflow ever since it was introduced way back in the 10.5 Leopard. Hitting the spacebar to preview a file on your computer, without having to open it, saves tonnes of time. QLMarkdown is a QuickLook plugin that works for markdown files. It's simple, quick and displays the files in the popular GitHub flavoured markdown style.
QLMarkdown is available from GitHub, or via HomeBrew.
iA Writer is my runner-up to Ulysses — I've reviewed it three times over the last few years (versions 4, 5 and 5.6). Each release is a significant improvement over the last. iA Writer straddles the divide between Ulysses (form) and MultiMarkdown Composer (function). It uses the MultiMarkdown dialect but has eclipsed MultiMarkdown Composer in both features and performance. It's also a better choice for technical writing than Ulysses. I have it on iOS but seldom use it. Similarly, on macOS, I've avoided buying it because I have no specific need for it, and I prefer Ulysses' UI for drafting by a wide margin.
iA Writer is available for macOS, iOS, Android and Windows.
Marked App is a previewer and compiler for markdown files, rendering one or more markdown documents as HTML. It works with several markdown dialects but supports MultiMarkdown best. Its strength is its operability with other apps (including Scrivener, Ulysses, iA Writer and more), and its ability to read and render any markdown file sitting on your file system or in iCloud. Another powerful feature is Marked's ability to add your own pre-processor. Marked allows you to use a custom processor, to display documents using Pandoc or Python markdown. With a little work, you can even use a different markup language like AsciiDoc or reStructured Text. These advanced features make Marked an invaluable tool for technical writing.
Marked app is available direct from the developer, the Mac App Store, or SetApp.
SublimeText 3 is a general-purpose text editor that can be wrangled into a markdown editing powerhouse. It's what I used in my day job as a technical writer. I prefer it over the slower Chromium-based editors such as Atom and VS Code (though VS Code is good and getting better all the time). It has some of the most powerful text editing features I've ever used and has a rich library of plugins to extend its functionality even further. I love building snippets, regex patterns and shell scripts to automate the boring crap, so I can focus my time on what's valuable — writing and editing. My only gripe is that it doesn't integrate with macOS's native text utilities and dictionary.
Sublime is available for macOS, Linux and Windows.
As a professional writer, markdown is my bread and butter — it is system agnostic, indestructible, and ubiquitous. I came to my collection of markdown apps over time, some by choice, others by necessity. There is no definitive markdown editor. I find myself using different tools in the most appropriate context — and I'm perfectly fine with this modal shift in my work.
Still, I'm always on the lookout for something new, not to mention the joy I get when other writers open their toolboxes. So, what do you use and love? Is there an app you'd like me to review, or do you want a more detailed review/tutorial of one the apps I mention here?
Do let me know. Members can comment below, while everyone else can find me on Twitter.