Update to 2.1.6:

version 2.1.6 does nothing except for some bugfixes (and ignores some particularly scary ones that I /must/ fix soon) and adds two small features.

The bugfixes are:

    A < at the end of the input is exactly the same as <(space)
    Markdown.pl does not appear to escape \<[nonwhite] sequences. Sigh.
    Tweak the previous Markdown does not escape... commit to simply push out the backslash and back up to the start of the <[nonwhite] sequence, so -fnohtml will continue to work.
    Treat hard <br/> (via two spaces) as whitespace.
    Tweak divquote handling so that two adjacent divquotes won’t die if there is a space between the second > & leading %
    Tweak one of the list tests back to the previous behavior (I’ve put in a hack for list indentation, and accidentally committed the changes. Oops!)

The features are that I now use styles for table cell alignment instead of align=, and that I’m using the 3-clause BSD license for this release (because there is one widely used closed-source license that claims that you can’t dynamically link with code that uses the 4-clause license. Fine. I’ll 3-clause this release to make the stupid GPL happy.)

version 2.1.5a does even more cleanup to deal with clang, plus adds a few small features:

    MKD_NOSTYLE – treat <style> blocks as regular html.
    some github flavored markdown support; gfm_…() input methods that put hardbreaks (== two spaces) at the end of every input line.
    support for github flavored markdown backtick-delimited code blocks (in addition to tilde-delimited codeblocks)
    in the markdown program, add
        -S flag (tell markdown to spit out style sections)
        -n flag (tell markdown not to output generated text)

version 2.1.3 cleans up a couple of bugs that have been here for a while, plus tweaks the build process a bit for better compilation with the LLVM C compiler, mingw, and cygwin.

The bugfixes are

    Stop tripping over tables with leading |s; the first implementation of tables treated leading |s as the end of an empty table cell. 2.1.3 corrects this to properly be merely decoration.

    As a side-effect, you now need to have all the rows of the table either with a leading | or not; you cannot mix and match them, sorry.

    For some mysterious reason I was treating the <br> tag as a block-level html tag, so my html blockifier would split paragraphs with explicit <br>s in them.

    The table of contents code was apparently generating bad html (something I never noticed, because I never use that feature, alas!) but Stefano D'Angelo contributed a patch to clean up the generated html to make it correct.

version 2.1.2 tweaks table handling so that tables with leading |’s won’t end up generating empty false <td></td>s, and that tables with trailing |’s won’t end up getting those pipes included in the output.

version 2.1.1.3 corrects a defect in smartypants processing that has been there since the beginning of time; I’d managed to misread the reference smartypants documentation and thought that 1 dash made an &ndash; and 2 dashes made an &mdash; (it’s actually 2 and 3 dashes respectively.) John Foerch read the documentation recently, noticed it was wrong, and sent me a note pointing it out. Whoops! But it’s fixed now (as is the this page, which is, regrettably, the only documentation about smartypants.)

version 2.1.1.2 corrects one small defect in block handling, plus changes the format of the output for failed tests in the test suite.

The defect in block handling is that the reference implementation has text block absorbing adjacent code, so

text text text
    code

will generate

<p>text text text code</p>

instead of a paragraph of text(s) followed by code.

The change in failed test output makes it output first the source code of the failed test, and then the differences between the expected output and the generated output.

version 2.1.1.1 implements PHP markdown extra-style fenced code sections, where your chunks of code are surrounded by ~~~ lines instead of being indented 4 spaces.

Fenced code sections are a configuration option, not a runtime option, and are enabled by using the configure.sh flag --with-fenced-code (FENCED-CODE in the version string).

There are a few optimizations inside markdown.c to support fenced code detection without slowing the parser down, but those optimizations don’t cause any of my test cases to fail. Version 2.1.1 is still a fairly experimental release despite this, so take some care with it.

version 2.1.0 cleans up a small collection of warts and build bugs, plus adds some fairly small enhancements to the theme and makepage programs:

    more modifications to configure.sh so that it generates all its test scripts in the build directory.
    more MacOS support in configure.sh; check to see if .dSYM folders are created when a test script is compiled, and, if so, don’t forget to delete them when they’re cleaned up.
    makepage now accepts markdown option flags a'la the markdown program (via -Fxxxx, -fname, or in the MARKDOWN_FLAGS environment variable.)
    strip bitfields out of opts[] – I can’t initialize a bitfield on plan9 cc.
    add a -E flag to theme to ignore context-sensitivity on <?theme xxx?> substitutions.
Remove discount, imported to pkgsrc/textproc.