pypi / markdown
markdown
What changed in markdown 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-21.
1 breaking2 security2 performance1 behavior and defaults7 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initmarkdown 313 changes
Breaking changes 1
Python 3.15 is officially supported, and Python 3.10 support is dropped.
Security 2
Attribute names are sanitized so they cannot break out of their tag and inject markup.
Attribute names are sanitized so they cannot break out of their tag and inject markup.
Performance 2
Inline processors resume searching after the previous match, improving performance for repeated inline patterns.
Fixes quadratic-time regex backtracking when a link reference definition has no URL and has many trailing spaces.
Behavior and default changes 1
Enforcement of CommonMark style punctuation rules is reverted for backwards compatibility.
Fixes and other changes 7
Inline HTML attributes containing
<or>are no longer rejected.Emphasis handling was reworked to improve handling of nested emphasis.
Raw HTML comments inside an inline HTML element that closes in the same paragraph no longer split the paragraph.
An unterminated end tag such as
</foono longer causes all remaining content to be dropped.Removing Abbreviations no longer raises an error.
Fixes excessive regex backtracking when matching inline code blocks.
The extension now honors tags added to Markdown.block_level_elements after the extension is loaded.