# Change Log
All notable changes to this project will be documented in this file.
Updates should follow the [Keep a CHANGELOG](https://keepachangelog.com/) principles.
**Upgrading from 1.x?** See <https://commonmark.thephpleague.com/2.0/upgrading/> for additional information.
## [Unreleased][unreleased]
## [2.4.2] - 2024-02-02
### Fixed
- Fixed declaration parser being too strict
- `FencedCodeRenderer`: don't add `language-` to class if already prefixed
## [2.4.1] - 2023-08-30
### Fixed
- Fixed `ExternalLinkProcessor` not fully disabling the `rel` attribute when configured to do so (#992)
## [2.4.0] - 2023-03-24
### Added
- Added generic `CommonMarkException` marker interface for all exceptions thrown by the library
- Added several new specific exception types implementing that marker interface:
- `AlreadyInitializedException`
- `InvalidArgumentException`
- `IOException`
- `LogicException`
- `MissingDependencyException`
- `NoMatchingRendererException`
- `ParserLogicException`
- Added more configuration options to the Heading Permalinks extension (#939):
- `heading_permalink/apply_id_to_heading` - When `true`, the `id` attribute will be applied to the heading element itself instead of the `<a>` tag
- `heading_permalink/heading_class` - class to apply to the heading element
- `heading_permalink/insert` - now accepts `none` to prevent the creation of the `<a>` link
- Added new `table/alignment_attributes` configuration option to control how table cell alignment is rendered (#959)
### Changed
- Change several thrown exceptions from `RuntimeException` to `LogicException` (or something extending it), including:
- `CallbackGenerator`s that fail to set a URL or return an expected value
- `MarkdownParser` when deactivating the last block parser or attempting to get an active block parser when they've all been closed