# What changed in pymdown-extensions

> 10 changes in pymdown-extensions 10 to 12 from its official release notes, upgrade guides and advisories: 2 security, 5 new APIs and options. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/pypi/pymdown-extensions/

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

## pymdown-extensions 12

### New APIs and options

- Adds a punctuation option to disable CommonMark punctuation rules in BetterEm. (12.3) — [release notes](https://github.com/facelessuser/pymdown-extensions/releases/tag/12.3)
- Highlight accepts a simple string or a dictionary with a title and title mode; `html` treats the title as HTML, while `text` is the default. (12.2) — [release notes](https://github.com/facelessuser/pymdown-extensions/releases/tag/12.2)
- A new rule forces CommonMark punctuation rules. (12.2) — [release notes](https://github.com/facelessuser/pymdown-extensions/releases/tag/12.2)
- SuperFences adds `title_mode` for Pygments fenced blocks, allowing a title to be treated as HTML. (12.2) — [release notes](https://github.com/facelessuser/pymdown-extensions/releases/tag/12.2)
- Custom fences can specify an optional reset function. (12.1) — [release notes](https://github.com/facelessuser/pymdown-extensions/releases/tag/12.1)

### Performance

- Performance is improved for long invalid Tilde and Caret delimiters. (12.1) — [release notes](https://github.com/facelessuser/pymdown-extensions/releases/tag/12.1)

### Behavior and default changes

- Tilde and Caret disable CommonMark punctuation rules by default for backwards compatibility; the rules are honored again when subscript or superscript is disabled. (12.2) — [release notes](https://github.com/facelessuser/pymdown-extensions/releases/tag/12.2)

### Fixes and other changes

- Official support is added for Python 3.15. (12.2) — [release notes](https://github.com/facelessuser/pymdown-extensions/releases/tag/12.2)

## pymdown-extensions 11

### Security

- pymdown-extensions: exponential-backtracking ReDoS in caret, tilde, betterem, and magiclink inline processors (11.0.1) — [security advisory](https://github.com/advisories/GHSA-GM37-52C6-37MW)

## pymdown-extensions 10

### Security

- Regression in pymdownx.snippets reintroduces sibling-prefix path traversal bypass despite restrict_base_path (10.21.3) — [security advisory](https://github.com/advisories/GHSA-62Q4-447F-WV8H)
