Write Marked-Up Documents with MarkdownPad

The light-weight mark-up language of choice is Markdown. In this review, I focus on a specialized text editor that’s based on Markdown. That editor is MarkdownPad by Evan Wondrasek.

What is Markdown?

In order to understand what Markdown is, one should know what problem Markdown was meant to solve. In order to understand the problem, one must think of Internet forums. Internet forums attract writing from strangers. These strangers would like to emphasize their words or use other formatting in order to structure their writing. This sounds like a job for HTML & CSS, which were created for that very purpose, namely, structuring text on the World Wide Web.

There are problems with that approach. If a closing tag is missing, then the rest of the page may render incorrectly, if it renders at all. The forum moderators would have to trust random strangers to write well-formed HTML for every single comment. That leaves the forum at the mercy of an honest mistake or, worse, a malicious commenter.

Furthermore, the more tags a text contains, the harder to read it becomes. The purpose of a forum is to encourage communication rather than hinder it. If your brilliant comment is hard for you to read even before you click on the submit button, then you won’t be as likely to post. Thus, most forums limited themselves to plain text.

To solve those problems, John Gruber made a text formatting system which he called Markdown. His solution to the above problems was clever. People write to each other using e-mail all the time. Most e-mail (the kind that isn’t spam or automatically generated) is written as plain text. In order to emphasize or structure the text, certain conventions developed that people could easily read and understand. Gruber used those conventions as the foundation for Markdown.

What Does Markdown Look Like?

Gruber has provided an overview of what Markdown looks like, but you can get a feel for it here, as well. Surrounding a piece of text with asterisks will emphasize that text. So “I *hate* monkey butter!” will be rendered by Markdown as “I hate monkey butter!” Using underscores will do the same thing. Doubling the asterisks or underscores produces even stronger emphasis. “Long live __whale cheese__!” will be rendered as “Long live whale cheese!”

Read the whole thing for yourself. You’ll see that, just like the examples given in the previous paragraph, Markdown is nearly as readable before rendering as after rendering. This is a significant advantage over HTML. The fact that it copies current conventions means that most Internet-savvy people have already half-learned Markdown. So it was almost inevitable that sites such as Reddit and GitHub standardized on Markdown for user-generated comments and other material.

Getting MarkdownPad

You can get MarkdownPad from its home page. It installs much like any other Windows application. I had no issues installing it. I have had issues starting it, however. For such a specialized text editor, MarkdownPad takes a surprisingly long time to start up; nearly a minute in some cases. Another issue is resource usage. On my rig, Emacs, with three buffers open, uses between fifteen and sixteen thousand kilobytes of private working set. MarkdownPad, on the other hand, even with no open files, uses more than three times that amount. Granted, that’s not a lot of memory in these futuristic times, but for a text editor to take up more RAM than Emacs indicates someone is guilty of sloppy programming. Perhaps that would explain the long start-up time.

Using MarkdownPad

MarkdownPad is a live editing environment by default. It divides the window into two panes. The user enters plain text in Markdown format in the left pane. The editor renders the final text in the right pane. You can readily see any mistakes you make in how you use Markdown mark-up. If you forget how to use the mark-up, then you can select text and choose the mark-up that you want from the toolbar just as you would in a Rich Text editor.

The options settings are available from the Tools menu. You can set various user interface options as well as set a custom style sheet, using CSS, to adjust the look of the final Markdown file. More importantly, one can render the current file in the default browser using the F6 key or convert it to an HTML file from the File menu. Remember that the purpose of Markdown is to display text to a web page. Projects on GitHub, for example, typically publish Readme files in Markdown format.

I’ve shown the MarkdownPad window in a shrunken state in order to post it in this review, but pressing the F10 key will put it in “Distraction Free” mode. Note that this mode is slightly different in MarkdownPad compared to other text editors that implement this idea. In MarkdownPad, the toolbar, status bar, and menu are still visible. Press F10 again to get back to normal mode.

Conclusion

If you need to publish a long form document, that is, something longer than the typical forum comment, then a program like MarkdownPad is handy. This is especially true if you want to post longer articles at such sites as GitHub or StackOverflow. The slow start-up time is a black mark, but other than that, it’s a good tool for the job.


Summary

Though marred by a slow start-up time, this application does a good job of rendering Markdown in real time.

7