Byword, MultiMarkdown Composer, and More

Forward

Some time ago, I wrote a rather lengthy and exclamatory piece recounting how I implemented Bigfoot footnotes. I will refrain from rehashing the entire post, but would like to discuss footnotes in general for a bit. Footnotes, and my recent change from Byword to MultiMarkdown Composer.

What I might have failed to fully articulate previously is this: I learned how to do Bigfoot footnotes and regular ol’ non-Bigfoot footnotes at the same time. In fact, if I had never even heard of Bigfoot footnotes, I still would have been plenty happy with just regular footnotes.

I had been wanting to incorporate footnotes into my writing, but didn’t know how for the longest time.

Once I figured that out, I started nitpicking the way I was footnoting.

The Problem

One big problem with my previous footnoting was a lack of knowledge regarding multi-paragraph footnotes. Up until yesterday, I didn’t know how to do a footnote like this.

Yesterday, I fixed that. How did I fix that? TL;DR: I switched from Byword to MultiMarkdown Composer.

Example

Consider the following. This is the type of reference-style footnote I might have tried to write in Byword:

Yes you did, Brett. Yes you did.[^1]

[^1]: [Chyeah][urbandictionary].

[Boom][urbandictionary 2].

The above snippet should get translated to the following HTML:

<p>Yes you did, Brett. Yes you did.<a href="#fn:1" id="fnref:1" title="see footnote" class="footnote">1</a></p>

<div class="footnotes"><hr /><ol>
<li id="fn:1"><p><a href="http://www.urbandictionary.com/define.php?term=chyeah&amp;defid=2623427">Chyeah</a>.</p>

<p><a href="http://www.urbandictionary.com/define.php?term=Boom&amp;defid=3837129">Boom</a>.<a href="#fnref:1" title="return to article" class="reversefootnote">&#160;&#8617;</a>
</p>
</li>
</ol>
</div>

But instead, Byword’s HTML parse results in the following:

<p>Yes you did, Brett. Yes you did.<a href="#fn:1" id="fnref:1" title="see footnote" class="footnote">[1]</a></p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p><a href="http://www.urbandictionary.com/define.php?term=chyeah&amp;amp;defid=2623427">Chyeah</a>. <a href="#fnref:1" title="return to article" class="reversefootnote">&#160;&#8617;</a></p>
</li>

</ol>
</div>

Notice how only the Chyeah footnote got parsed into HTML (and not the Boom one)? Not ideal.

Making Sure

I consulted with the MultiMarkdown syntax guide just to make sure I was formatting my referenced multi-paragraph footnotes correctly.

I was.

So what to do?

The Solution

My solution was to switch from Byword to MultiMarkdown Composer. This was not an easy decision. And honestly, a part of me feels like I just said goodbye to an old friend.[1]

And so, after writing a similar snippet and parsing to HTML using MultiMarkdown Composer, the resulting HTML looks like this:

<p>Yes you did, Brett. Yes you did.<a href="#fn:1" id="fnref:1" title="see footnote" class="footnote">1</a></p>

<div class="footnotes"><hr /><ol>
<li id="fn:1"><p><a href="http://www.urbandictionary.com/define.php?term=chyeah&amp;defid=2623427">Chyeah</a>.</p>

<p><a href="http://www.urbandictionary.com/define.php?term=Boom&amp;defid=3837129">Boom</a>.<a href="#fnref:1" title="return to article" class="reversefootnote">&#160;&#8617;</a>
</p>
</li>
</ol>
</div>

This is how MultiMarkdown Composer parses MultiMarkdown, and this is how the resulting HTML should get parsed.

Byword Versus MultiMarkdown Composer

First, let me say this: I love, love Byword. The guys at Metaclassy have built an incredibly easy to use and beautiful app.

Byword's sparsity is part of its charm
Byword’s sparsity is part of its charm

Byword is both functional, and actually quite clever at the same time. Want to copy the MultiMarkdown to HTML? Option-Command-P. Easy.

Contrast this with MultiMarkdown Composer, in which the hotkey is buried in the Edit menu item:

Ehh...
Ehh…
MultiMarkdown's window has more content, but isn't that much more busy than Byword
MultiMarkdown’s window has more content, but isn’t

What’s So Wrong With Byword?

The problem with Byword is that while the app does support the most important aspects of MultiMarkdown, it does not support every MultiMarkdown feature under the sun.[2] For me, one of their more important MultiMarkdown omissions was lack of support for multi-paragraph footnotes and inline footnotes. And that was enough for me to try MultiMarkdown Composer.

And What’s So Great About MultiMarkdown Composer?

Inline Footnotes

Probably the biggest unexpected benefit of using MultiMarkdown Composer were the inline footnotes.[3]

Could this be any easier?
Could this be any easier?

While MultiMarkdown Composer’s inline footnotes implementation precludes me from having multiple paragraphs or lists,[4] it is still such a time-saver to just keep tying all the way through the footnote content, without having to go all the way to the bottom of the document to place the footnote content, and then find my way back to where I was before I started writing the footnote.[5]

Table of Contents Made Easy

Another gem that will find its way into MultiMarkdown Composer version 3 (currently in beta) is the {{TOC}}.

Back when I was using Byword, whenever I was writing a long document, I would have to craft my own Table of Contents / Index, like a heathen. I remember thinking to myself, “There has to be a better way to do this.”

Before, for an <h1> header named Introduction, I would write this for my Table of Contents / Index:

<h2>Contents</h2>

* [Introduction](#introduction)
* [Next Header](#next)

<p><h1><a name="introduction">Introduction</a></h1>

Example body text.

And then I would have to go back through my document and copy that format for remaining headers. It was time consuming to say the least.

With MultiMarkdown Composer, I just place a {{TOC}} at the top of my document, and then I get something wonderful like this:

So much easier than doing it by hand
So much easier than doing it by hand
Smart Pairs, Autocompleting Labels, and More

Basically, this whole list:

With nifty tricks like this, I spend more time writing than worrying about syntax
With nifty tricks like this, I spend more time writing than worrying about syntax

Conclusion

Ultimately, my nostalgic attachment to Byword was quickly forgotten. For all its beauty and simplicity, Byword just doesn’t offer nearly the amount of features that MultiMarkdown Composer does.And you know what? That’s okay.


  1. It was with Byword, after all, that I shared my great aha moment in which ‘appropriately formatted Markdown → HTML with footnotes’

  2. And why should it? MultiMarkdown is filled with lots of ‘extras’ beyond standard Markdown, some of which most Markdown users could care less about.

  3. So completely amazing.

  4. When I need to do that, I just copy and paste what I have for the footnote so far, and then make a reference-style footnote at the bottom like I used to (or wherever).

    I wish there were an easier way to convert the footnote content to from “inline” to “reference style” and vice versa.

  5. That gets old.