Releases: thephpleague/commonmark
0.19.1
0.19.1 is an immediate follow-up to 0.19.0 which fixes issues with extensions that register other extensions.
(While this technically introduces a BC-break, it's allowed under SemVer's rules for 0.x releases and is necessary for 0.19.x code to work as expected.)
Added
- Added the missing
addExtension()
method to the newConfigurableEnvironmentInterface
Fixed
- Fixed extensions not being able to register other extensions
0.19.0
The 50th release of league/commonmark
is here! 🎉
The Environment
and extension framework underwent some major changes in this release. Be sure to read the upgrade notes if you maintain any community extensions or have written custom functionality on top of this library.
Added
- The priority of parsers, processors, and renderers can now be set when
add()
ing them; you no longer need to rely on the order in which they are added - Added support for trying multiple parsers per block/inline
- Extracted two new base interfaces from
Environment
:EnvironmentInterface
ConfigurableEnvironmentInterface
- Extracted a new
AbstractStringContainerBlock
base class and correspondingStringContainerInterface
fromAbstractBlock
- Added
Cursor::getEncoding()
method - Added
.phpstorm.meta.php
file for better IDE code completion - Made some minor optimizations here and there
Changed
- Pretty much everything now has parameter and return types (#346)
- Attributes passed to
HtmlElement
will now be escaped by default Environment
is now afinal
classEnvironment::getBlockRendererForClass()
was replaced withEnvironment::getBlockRenderersForClass()
(note the addeds
)Environment::getInlineRendererForClass()
was replaced withEnvironment::getInlineRenderersForClass()
(note the addeds
)- The
Environment::get____()
methods now return an iterator instead of an array Context::addBlock()
no longer returns the same block instance you passed into the method, as this served no useful purposeRegexHelper::isEscapable()
no longer acceptsnull
valuesNode::replaceChildren()
now accepts any type ofiterable
, not justarray
s- Some block elements now extend
AbstractStringContainerBlock
instead ofAbstractBlock
InlineContainerInterface
now extends the newStringContainerInterface
- The
handleRemainingContents()
method (formerly onAbstractBlock
, now onAbstractStringContainerBlock
) is now an `abstract method - The
InlineParserContext
constructor now requires anAbstractStringContainerBlock
instead of anAbstractBlock
Removed
- Removed support for PHP 5.6 and 7.0 (#346)
- Removed support for
add()
ing parsers with just the target block/inline class name - you need to include the full namespace now - Removed the following unused methods from
Environment
:getInlineParser($name)
getInlineParsers()
createInlineParserEngine()
- Removed the unused
getName()
methods:AbstractBlockParser::getName()
AbstractInlineParser::getName()
BlockParserInterface::getName()
InlinerParserInterface::getName()
- Removed the now-useless classes:
AbstractBlockParser
AbstractInlinerParser
InlineContainer
- Removed the
AbstractBlock::acceptsLines()
method - Removed the now-useless constructor from
AbstractBlock
- Removed previously-deprecated functionality:
InlineContainer
classRegexHelper::$instance
RegexHelper::getInstance()
RegexHelper::getPartialRegex()
RegexHelper::getHtmlTagRegex()
RegexHelper::getLinkTitleRegex()
RegexHelper::getLinkDestinationBracesRegex()
RegexHelper::getThematicBreakRegex()
- Removed the second
$preserveEntities
parameter fromXml:escape()
0.18.5
Fixed
- Fixed the adjoining
Text
collapser not handling the full tree (thephpleague/commonmark-ext-autolink#10)
0.18.4
Changed
- Modified how URL normalization decodes certain characters in order to align with the JS library's output
- Disallowed unescaped
(
in parenthesized link title
Fixed
- Fixed two exponential backtracking issues
0.18.3
This is a security update release.
Changed
- XML/HTML entities in attributes will no longer be preserved when rendering (#353)
Fixed
- Fix XSS vulnerability caused by improper preservation of entities when rendering (#353)
Deprecated
- Deprecated the
$preserveEntites
argument ofXml::escape()
for removal in the next release (#353)
0.18.2
Fixed
- Fixed adjoining
Text
elements not being collapsed after delimiter processing
Deprecated
- Deprecated the
CommonmarkConverter::VERSION
constant for removal in 1.0.0
0.18.1
This release contains an important security update for CVE-2018-20583.
Fixed
- Fix XSS vulnerability caused by URL normalization not handling/encoding newlines properly (#337, CVE-2018-20583)
0.18.0
No breaking changes were introduced, but we did add a new interface: ConverterInterface
. Consider depending on this interface in your code instead of the concrete implementation. (See #330)
Added
- Added
ConverterInterface
toConverter
andCommonMarkConverter
(#330) - Added
ListItem::getListData()
method (#329)
Changed
0.17.5
Fixed
- Fixed incorrect version constant value (again)
- Fixed release checklist to prevent the above from happening
- Fixed incorrect dates in CHANGELOG
0.17.4
Added
- Added
ListBlock::setTight()
method