# What changed in markdown-it-py

> 25 changes in markdown-it-py 3 to 4 from its official release notes, upgrade guides and advisories: 5 breaking, 1 deprecations, 1 security, 7 new APIs and options. Each one cited. Sources checked 2026-10-29. HTML: https://unstale.sh/pypi/markdown-it-py/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## markdown-it-py 4

### Breaking changes

- Python 3.8 is no longer supported. (4.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0)
- Python 3.9 is no longer supported. (4.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0)

### New APIs and options

- Adds a factory for configuring fence markers. (4.2.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.2.0)
- A new preset provides task lists, alerts, and single-tilde strikethrough. (4.1.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.1.0)
- Plugins can register inline terminator characters. (4.1.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.1.0)
- The CLI accepts input via the --stdin option. (4.1.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.1.0)

### Performance

- The text inline rule is faster. (4.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0)
- Quadratic complexity in the reference parser is fixed. (4.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0)

### Behavior and default changes

- The number of autocompleted cells in a table is limited. (4.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0)

### Fixes and other changes

- The parser is updated to comply with CommonMark 0.31.2. (4.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0)
- Python 3.13 support is added. (4.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0)
- Emphasis inside raw links is fixed. (4.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0)

## markdown-it-py 3

### Breaking changes

- The unused silent argument was removed. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)
- Support for Python 3.7 was dropped. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)
- The `(p)` to `§` replacement was removed. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)

### Security

- A possible ReDOS issue in the newline rule was fixed. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)

### Deprecations

- Use of StateBase.srcCharCode is deprecated but remains backward-compatible; core uses were replaced by StateBase.src. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)

### New APIs and options

- A new inline rule linkifies full URLs and prevents emphasis from colliding with the linkifier; emails and fuzzy links are unaffected. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)
- The final core rule joins adjacent text and text_special tokens; custom typographic rules should be inserted before it. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)
- A new token type represents HTML entities and backslash-escaped characters so core typographic transformation rules are not incorrectly applied to them. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)

### Performance

- The skipSpaces and skipChars operations were made faster. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)

### Behavior and default changes

- The four-space indent limitation is applied only when indented code blocks are enabled, allowing other block elements to use greater indentation when they are disabled. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)

### Fixes and other changes

- Nested emphasis parsing was improved. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)
- Passing numeric character references was fixed. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)
- A tab no longer prevents paragraph continuation in lists. (3.0.0) — [release notes](https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0)
