MultiMarkdown 3.7 is available

12/31/2012 10:00:41

Happy New Year!!

MultiMarkdown 3.7 is a modest update:

  • fix bug with email obfuscation and non-ASCII characters
  • several performance improvements from peg-markdown that vastly improve performance on some “non-typical” documents that previously could take minutes to hours to parse
  • improve Markdown parsing inside of HTML tags (e.g. <div markdown="1">)
  • tweaks to Xcode project settings
  • tweaks to the Makefile

Downloads

Github has deprecated the ability to upload binaries, so they will now be available via droplr.

Geek Notes

When working on MultiMarkdown Composer, I found that the parser created by peg/leg (the default for peg-markdown, and therefore peg-multimarkdown) was somewhat buggy. This is not really a problem when MultiMarkdown is called from the command line. But when used as a library that is called multiple times, these bugs led to a great deal of crashes.

I created a new branch of the product that compiles using greg instead (the greg branch on github). I am using this branch exclusively on my own machine, as well as in any software using MultiMarkdown as a library. It has been much more stable.

I keep the original branch of MultiMarkdown in place for merging changes from peg-markdown. This was the first time that I was unable to simply merge into that branch — it looks like John MacFarlane pulled some changes that completely restructured the project, and these changes broke my project.

Taking these two things together, it’s going to be harder for me to keep peg-multimarkdown in sync with peg-markdown to the same degree as I have been. I think I am going to have to begin cherry-picking commits instead of just merging the entire project. This won’t make that much difference to users, but it will mean that migrating the master branch to greg won’t really break things any further, and it will offer much improved reliability.

I welcome comments on the greg build vs the peg/leg build, especially anyone using MultiMarkdown as a library in another project.

Similar Pages