April 6, 2009

Python-Markdown 2.0 Released. Get the files from PyPI: http://pypi.python.org/pypi/Markdown/2.0

Python-Markdown 2.0 Release Notes

We are happy to release Python-Markdown 2.0, which has been over a year in the making. We have rewritten significant portions of the code, dramatically extending the extension API, increased performance, and added numerous extensions to the distribution (including an extension that mimics PHP Markdown Extra), all while maintaining backward compatibility with the end user API in version 1.7.

Python-Markdown supports Python versions 2.3, 2.4, 2.5, and 2.6. We've even released a version converted to Python 3.0!

Backwards-incompatible Changes

While Python-Markdown has experienced numerous internal changes, those changes should only affect extension authors. If you have not written your own extensions, then you should not need to make any changes to your code. However, you may want to ensure that any third party extensions you are using are compatible with the new API.

The new extension API is fully documented in Writing_Extensions. Below is a summary of the significant changes:

  • The old home-grown NanoDOM has been replaced with ElementTree. Therefore all extensions must use ElementTree rather than the old NanoDOM.
  • The various processors and patterns are now stored with OrderedDicts rather than lists. Any code adding processors and/or patterns into Python-Markdown will need to be adjusted to use the new API using OrderedDicts.
  • The various types of processors available have been either combined, added, or removed. Ensure that your processors match the currently supported types.

What's New in Python-Markdown 2.0

Thanks to the work of Artem Yunusov as part of GSoC 2008, Python-Markdown uses ElementTree internally to build the (X)HTML document from markdown source text. This has resolved various issues with the older home-grown NanoDOM and made notable increases in performance.

Artem also refactored the Inline Patterns to better support nested patterns which has resolved many inconsistencies in Python-Markdown's parsing of the markdown syntax.

The core parser had been completely rewritten, increasing performance and, for the first time, making it possible to override/add/change the way block level content is parsed.

Python-Markdown now parses markdown source text more closely to the other popular implementations (Perl, PHP, etc.) than it ever has before. With the exception of a few minor insignificant differences, any difference should be considered a bug, rather than a limitation of the parser.

The option to return HTML4 output as apposed to XHTML has been added. In addition, extensions should be able to easily add additional output formats.

As part of implementing markdown in the Dr. Project project (a Trac fork), among other things, David Wolever refactored the "extension" keyword so that it accepts either the extension names as strings or instances of extensions. This makes it possible to include multiple extensions in a single module.

Numerous extensions are included in the distribution by default. See Available_Extensions for a complete list. (interpretation des reves 5)

See the Change_Log for a full list of changes.

February 17, 2008

Python-Markdown 1.7 released. Get the files here.

Release Notes:

Note that various features marked as depreciated in 1.6 have been removed, so this release is somewhat backward incompatible. Most notably, str(md) will no longer work. md.convert(text) should be used instead. The toString and toUnicode methods no longer exist. The __unicode__ method calls convert and __str__ returns some info about the instance rather than the converted output (although I'm open for suggestions for improvment in the info provided). Additionally, the encoding argument has been removed from both markdown and Markdown. Markdown expects unicode (or ascii) input and it is the users responsibility to ensure that's what is provided. Therefore, all output is in unicode. Only markdownFromFile accepts an encoding.

May 31, 2007

Moving the site to iPhone 5. It's now a wiki, so feel free to contribute.

March 24, 2007

Version 1.6b RC2 is now in SVN (revision 30). The new version fixes a few issues with RC1, adds support for bidirectional tags and includes a new test suite.

March 18, 2007

Version 1.6b release candidate of python-markdown, fixing a bunch of smaller bugs (see the bug tracker), is now available in SVN (revision 24). I will wait a couple of weeks before releasing it in case some bugs are found.

October 12, 2006

Version 1.6 of python-markdown fixing a bunch of bugs and offering a new command line interface.

May 15, 2006

Version 1.5 of python-markdown fixing a bug with mixed lists, recursion error on block-level elements, some issues with headers, etc.

April 7, 2006

Version 0.1 of odt2txt.py for converting OpenDocument Text files to Markdown.

March 24, 2006

Released version 1.4 which avoids the recursion problem pointed out by Aaron Swartz Spotsylvania DUI Lawyer.

March 10, 2006

Set up a Sourceforge project.

Powered by Sputnik | XHTML 1.1