Repository navigation
Releases: Python-Markdown/markdown
Release list
Release 3.11.0
Changed
- Inline processors now resume searching after the previous match, improving
performance for repeated inline patterns (#1619). - Officially support Python 3.15 and drop support for Python 3.10
- Walk backtick runs in
BacktickInlineProcessorwithout a regex (#1620). - Switch static site generator for documentation from MkDocs to Zensical
(#1627, #1635, #1637, and #1638).
Fixed
- Ensure removing Abbreviations does not raise an error (#1634).
- Fix an issue with excessive backtracking when matching inline code blocks (#1617).
md_in_htmlnow honors tags added toMarkdown.block_level_elementsafter
the extension is loaded (#1246).- Fix quadratic-time regex backtracking in
ReferenceProcessorwhen a link
reference definition has no URL, e.g. a line consisting only of[id]:
followed by many trailing spaces (#798). - Document
attr_listusage fordef_list(#1123).
Release 3.10.3
Release 3.10.2
Release 3.10.1
Fixed
Release 3.10.0
Changed
- Officially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9
and PyPy 3.9.
Fixed
- Fix an HTML comment parsing case in some Python versions that can cause an
infinite loop (#1554). - Revert the default behavior of
USE_DEFINITION_ORDER(toTrue). The new
behavior introduced in 3.9.0 is experimental and results are inconsistent.
It should not have been made the default behavior (#1561).
Release 3.9.0
Changed
- Footnotes are now ordered by the occurrence of their references in the
document. A new configuration option for the footnotes extension,
USE_DEFINITION_ORDER, has been added to support restoring the previous
behavior of ordering footnotes by the occurrence of definitions (#1367).
Fixed
Release 3.8.2
Fixed
- Fix
codecsdeprecation in Python 3.14. - Fix issue with unclosed comment parsing in Python 3.14.
- Fix issue with unclosed declarations in Python 3.14.
- Fix issue with unclosed HTML tag
<fooand Python 3.14.
Release 3.8.1
Release 3.8
Changed
- DRY fix in
abbrextension by introducing methodcreate_element(#1483). - Clean up test directory by removing some redundant tests and port
non-redundant cases to the newer test framework. - Improved performance of the raw HTML post-processor (#1510).
Fixed
- Backslash Unescape IDs set via
attr_listontoc(#1493). - Ensure
md_in_htmlprocesses content inside "markdown" blocks as they are
parsed outside of "markdown" blocks to keep things more consistent for
third-party extensions (#1503). md_in_htmlhandle tags within inline code blocks better (#1075).md_in_htmlfix handling of one-liner block HTML handling (#1074).- Ensure
<center>is treated like a block-level element (#1481). - Ensure that
abbrextension respectsAtomicStringand does not process
perceived abbreviations in these strings (#1512). - Ensure
smartyextension correctly renders nested closing quotes (#1514).
Release 3.7
Changed
Refactor abbr Extension
A new AbbrTreeprocessor has been introduced, which replaces the now deprecated
AbbrInlineProcessor. Abbreviation processing now happens after Attribute Lists,
avoiding a conflict between the two extensions (#1460).
The AbbrPreprocessor class has been renamed to AbbrBlockprocessor, which
better reflects what it is. AbbrPreprocessor has been deprecated.
A call to Markdown.reset() now clears all previously defined abbreviations.
Abbreviations are now sorted by length before executing AbbrTreeprocessor
to ensure that multi-word abbreviations are implemented even if an abbreviation
exists for one of those component words. (#1465)
Abbreviations without a definition are now ignored. This avoids applying
abbr tags to text without a title value.
Added an optional glossary configuration option to the abbreviations extension.
This provides a simple and efficient way to apply a dictionary of abbreviations
to every page.
Abbreviations can now be disabled by setting their definition to "" or ''.
This can be useful when using the glossary option.
Fixed
- Fixed links to source code on GitHub from the documentation (#1453).