You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
3.2 KiB
68 lines
3.2 KiB
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.
|
|
|
|
See the [[change_log]] for a full list of changes.
|
|
|