Skip to content

Releases: thephpleague/commonmark

0.19.1

11 Apr 04:42
0.19.1
d42b2d4
Compare
Choose a tag to compare

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 new ConfigurableEnvironmentInterface

Fixed

  • Fixed extensions not being able to register other extensions

0.19.0

11 Apr 02:33
0.19.0
deb4f7e
Compare
Choose a tag to compare

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 corresponding StringContainerInterface from AbstractBlock
  • 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 a final class
  • Environment::getBlockRendererForClass() was replaced with Environment::getBlockRenderersForClass() (note the added s)
  • Environment::getInlineRendererForClass() was replaced with Environment::getInlineRenderersForClass() (note the added s)
  • 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 purpose
  • RegexHelper::isEscapable() no longer accepts null values
  • Node::replaceChildren() now accepts any type of iterable, not just arrays
  • Some block elements now extend AbstractStringContainerBlock instead of AbstractBlock
    • InlineContainerInterface now extends the new StringContainerInterface
    • The handleRemainingContents() method (formerly on AbstractBlock, now on AbstractStringContainerBlock) is now an `abstract method
    • The InlineParserContext constructor now requires an AbstractStringContainerBlock instead of an AbstractBlock

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 class
    • RegexHelper::$instance
    • RegexHelper::getInstance()
    • RegexHelper::getPartialRegex()
    • RegexHelper::getHtmlTagRegex()
    • RegexHelper::getLinkTitleRegex()
    • RegexHelper::getLinkDestinationBracesRegex()
    • RegexHelper::getThematicBreakRegex()
  • Removed the second $preserveEntities parameter from Xml:escape()

0.18.5

09 Apr 12:40
0.18.5
f94e18d
Compare
Choose a tag to compare

Fixed

0.18.4

24 Mar 02:47
0.18.4
93fa5e8
Compare
Choose a tag to compare

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

21 Mar 22:52
0.18.3
b1ec41c
Compare
Choose a tag to compare

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 of Xml::escape() for removal in the next release (#353)

0.18.2

17 Mar 01:45
Compare
Choose a tag to compare

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

30 Dec 02:36
e5029f7
Compare
Choose a tag to compare

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

18 Sep 13:18
Compare
Choose a tag to compare

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 to Converter and CommonMarkConverter (#330)
  • Added ListItem::getListData() method (#329)

Changed

  • Links with target="_blank" will also get rel="noopener noreferrer" by default (#331)
  • Implemented several performance optimizations (#324)

0.17.5

29 Mar 14:43
Compare
Choose a tag to compare

Fixed

  • Fixed incorrect version constant value (again)
  • Fixed release checklist to prevent the above from happening
  • Fixed incorrect dates in CHANGELOG

0.17.4

29 Mar 03:18
Compare
Choose a tag to compare

Added

  • Added ListBlock::setTight() method