| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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.
|