33 KiB
Change Log
All notable changes to this project will be documented in this file. Updates should follow the Keep a CHANGELOG principles.
0.19.3 - 2019-06-18
Fixed
- Fixed bug where elements with content of
"0"wouldn't be rendered (#376)
0.19.2 - 2019-05-19
Fixed
- Fixed bug where default values for nested configuration paths were inadvertently cast to strings
0.19.1 - 2019-04-10
Added
- Added the missing
addExtension()method to the newConfigurableEnvironmentInterface
Fixed
- Fixed extensions not being able to register other extensions
0.19.0 - 2019-04-10
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:EnvironmentInterfaceConfigurableEnvironmentInterface
- Extracted a new
AbstractStringContainerBlockbase class and correspondingStringContainerInterfacefromAbstractBlock - Added
Cursor::getEncoding()method - Added
.phpstorm.meta.phpfile 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
HtmlElementwill now be escaped by default Environmentis now afinalclassEnvironment::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 acceptsnullvaluesNode::replaceChildren()now accepts any type ofiterable, not justarrays- Some block elements now extend
AbstractStringContainerBlockinstead ofAbstractBlockInlineContainerInterfacenow extends the newStringContainerInterface- The
handleRemainingContents()method (formerly onAbstractBlock, now onAbstractStringContainerBlock) is now an `abstract method - The
InlineParserContextconstructor now requires anAbstractStringContainerBlockinstead 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:
AbstractBlockParserAbstractInlinerParserInlineContainer
- Removed the
AbstractBlock::acceptsLines()method - Removed the now-useless constructor from
AbstractBlock - Removed previously-deprecated functionality:
InlineContainerclassRegexHelper::$instanceRegexHelper::getInstance()RegexHelper::getPartialRegex()RegexHelper::getHtmlTagRegex()RegexHelper::getLinkTitleRegex()RegexHelper::getLinkDestinationBracesRegex()RegexHelper::getThematicBreakRegex()
- Removed the second
$preserveEntitiesparameter fromXml:escape()
0.18.5 - 2019-03-28
Fixed
- Fixed the adjoining
Textcollapser not handling the full tree (thephpleague/commonmark-ext-autolink#10)
0.18.4 - 2019-03-23
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 - 2019-03-21
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
$preserveEntitesargument ofXml::escape()for removal in the next release (#353)
0.18.2 - 2019-03-16
Fixed
- Fixed adjoining
Textelements not being collapsed after delimiter processing
Deprecated
- Deprecated the
CommonmarkConverter::VERSIONconstant for removal in 1.0.0
0.18.1 - 2018-12-29
This is a security update release.
Fixed
- Fix XSS vulnerability caused by URL normalization not handling/encoding newlines properly (#337, CVE-2018-20583)
0.18.0 - 2018-09-18
Added
- Added
ConverterInterfacetoConverterandCommonMarkConverter(#330) - Added
ListItem::getListData()method (#329)
Changed
- Links with
target="_blank"will also getrel="noopener noreferrer"by default (#331) - Implemented several performance optimizations (#324)
0.17.5 - 2018-03-29
Fixed
- Fixed incorrect version constant value (again)
- Fixed release checklist to prevent the above from happening
- Fixed incorrect dates in CHANGELOG
0.17.4 - 2018-03-28
Added
- Added
ListBlock::setTight()method
0.17.3 - 2018-03-26
Fixed
- Fixed incorrect version constant value
0.17.2 - 2018-03-25
Added
- Added new
RegexHelper::isEscapable()method
Fixed
- Fixed spec compliance bug where escaped spaces should not be allowed in link destinations
0.17.1 - 2018-03-18
Added
- Added a new constant containing the current version:
CommonMarkConverter::VERSION(#314)
0.17.0 - 2017-12-30
This release contains several breaking changes and a minimum PHP version bump - see <UPGRADE.md> for more details.
Added
- Added new
max_nesting_levelsetting (#243) - Added minor performance optimizations to
Cursor
Changed
- Minimum PHP version is now 5.6.5.
- All full and partial regular expressions in
RegexHelperare now defined as constants instead of being built on-the-fly. Cursor::saveState()now returns anarrayinstead of aCursorStateobject.Cursor::restoreState()now accepts anarrayparameter instead of aCursorStateobject.- Saving/restoring the Cursor state no longer tracks things that don't change (like the text content).
RegexHelperis nowfinal.- References to
InlineContainerchanged to newInlineContainerInterfaceinterface. MiscExtension::addInlineParser()andMiscExtension::addBlockRenderer()now return$thisinstead of nothing.
Fixed
- Fixed
Reference::normalizeReference()not properly collapsing whitespace to a single space
Deprecated
RegexHelper::getInstance()and all instance (non-static) methods have been deprecated.- The
InlineContainerinterface has been deprecated. UseInlineContainerInterfaceinstead.
Removed
- Removed support for PHP 5.4 and 5.5.
- Removed
CursorStateclass - Removed all previous deprecations:
Cursor::getFirstNonSpacePosition()Cursor::getFirstNonSpaceCharacter()Cursor::advanceWhileMatches()Cursor::advanceToFirstNonSpace()ElementRendererInterface::escape()HtmlRenderer::escape()RegexHelper::REGEX_UNICODE_WHITESPACERegexHelper::getLinkDestinationRegex()
0.16.0 - 2017-10-30
This release contains breaking changes, several performance improvements, and two deprecations:
Added
- Added new
Xmlutility class; moved HTML/XML escaping logic into there (see deprecations below)
Changed
Environment::getInlineParsersForCharacter()now returns an empty array (instead ofnull) when no matching parsers are found- Three utility classes are now marked
final:Html5EntitiesLinkParserHelperUrlEncoder
Fixed
- Improved performance of several methods (for a 10% overall performance boost - #292)
Deprecated
The following methods were deprecated and are scheduled for removal in 0.17.0 or 1.0.0 (whichever comes first). See <UPGRADE.md> for more information.
Cursor::advanceWhileMatches()deprecated; useCursor::match()instead.HtmlRenderer::escape()deprecated; useXml::escape()instead.
Removed
- Removed
DelimiterStack::findFirstMatchingOpener()which was previously deprecated in 0.15.0
0.15.7 - 2017-10-26
Fixed
- Improved performance of
Cursor::advanceBy()(for a 16% performance boost)
0.15.6 - 2017-08-08
Fixed
- Fixed URI normalization not properly encoding/decoding special characters in certain cases (#287)
0.15.5 - 2017-08-05
This release bumps spec compliance to 0.28 without breaking changes to the API.
Added
- Project is now tested against PHP 7.2
Changed
- Bumped CommonMark spec target to 0.28
- Changed internal implementation of
LinkParserHelper::parseLinkDestination()to allow nested parens - Changed precedence of strong/emph when both nestings are possible (rule 14)
- Allow tabs before and after ATX closing header
Fixed
- Fixed HTML type 6 block regex matching against
<pre>(it shouldn't) and not matching<iframe>(it should) - Fixed reference parser incorrectly handling escaped
]characters - Fixed "multiple of 3" delimiter run calculations
Deprecated
An unused constant and static method were deprecated and will be removed in a future release. See <UPGRADE.md> for more information.
- Deprecated
RegexHelper::REGEX_UNICODE_WHITESPACE(no longer used) - Deprecated
RegexHelper::getLinkDestinationRegex()(no longer used)
0.15.4 - 2017-05-09
Added
- Added new methods to
Cursor(#280):advanceToNextNonSpaceOrNewline()- Identical replacement for the (now-deprecated)advanceToFirstNonSpace()methodadvanceToNextNonSpaceOrTab()- Similar replacement foradvanceToFirstNonSpace()but with proper tab handlinggetNextNonSpaceCharacter()- Identical replacement for the (now-deprecated)getFirstNonSpaceCharacter()methodgetNextNonSpacePosition()- Identical replacement for the (now-deprecated)getFirstNonSpacePosition()method
- Added new method to
CursorState(#280):getNextNonSpaceCache()- Identical replacement for the (now-deprecated)getFirstNonSpaceCache()method
Fixed
- Fixed duplicate characters in non-intended lines containing tabs (#279)
Deprecated
All deprecations listed here will be removed in a future 0.x release. See UPGRADE.md for instructions on preparing your code for the eventual removal of these methods.
- Deprecated
Cursor::advanceToFirstNonSpace()(#280)- Use
advanceToNextNonSpaceOrTab()oradvanceToNextNonSpaceOrNewline()instead, depending on your requirements
- Use
- Deprecated
Cursor::getFirstNonSpaceCharacter()(#280)- Use
Cursor::getNextNonSpaceCharacter()instead
- Use
- Deprecated
Cursor::getFirstNonSpacePosition()(#280)- Use
Cursor::getNextNonSpacePosition()instead
- Use
- Deprecated
CursorState::getFirstNonSpaceCache()(#280)- Use
CursorState::getNextNonSpaceCache()instead
- Use
0.15.3 - 2016-12-18
Fixed
- Allow inline parsers matching regex delimiter to be created (#271, #272)
0.15.2 - 2016-11-22
Changed
- Bumped spec target version to 0.27 (#268)
- H2-H6 elements are now parsed as HTML block elements instead of HTML inlines
Fixed
- Fixed incomplete punctuation regex
- Fixed shortcut links not being allowed before a
( - Fixed distinction between Unicode whitespace and regular whitespace
0.15.1 - 2016-11-08
Fixed
- Fixed setext heading underlines not allowing trailing tabs (#266)
0.15.0 - 2016-09-14
Added
- Added preliminary support for PHP 7.1 (#259)
- Added more regression tests (#258, #260)
Changed
- Bumped spec target version to 0.26 (#260)
- The
CursorStateconstructor requires an additional parameter (#258) - Ordered lists cannot interupt a paragraph unless they start with
1(#260) - Blank list items cannot interupt a paragraph (#260)
Deprecated
- Deprecated
DelimiterStack::findFirstMatchingOpener()- usefindMatchingOpener()instead (#260)
Fixed
- Fixed tabs in ATX headers and thematic breaks (#260)
- Fixed issue where cursor state was not being restored properly (#258, #260)
- This fixed the lists-with-tabs regression reported in #258
Removed
- Removed an unnecessary check in
Cursor::advanceBy()(#260) - Removed the two-blanks-break-out-of-lists feature (#260)
0.14.0 - 2016-07-02
Added
- The
safeoption is deprecated and replaced by 2 new options (#253, #255):html_input(strip,alloworescape): how to handle untrusted HTML input (the default isstripfor BC reasons)allow_unsafe_links(trueorfalse): whether to allow risky image URLs and links (the default istruefor BC reasons)
Deprecated
- The
safeoption is now deprecated and will be removed in the 1.0.0 release.
0.13.4 - 2016-06-14
Fixed
- Fixed path to
autoload.phpwithin bin/commonmark (#250)
0.13.3 - 2016-05-21
Added
- Added
setUrl()method forLinkandImageelements (#227, #244) - Added cebe/markdown to the benchmark tool (#245)
0.13.2 - 2016-03-27
Added
- Added ability to invoke
Converteras a function (#233, #239) - Added new
advanceBySpaceOrTabconvenience method toCursor
Changed
- Bumped spec target version to 0.25
- Adjusted how tabs are handled by the
Cursor(#234) - Made a couple small micro-optimizations to heavily used functions (#240)
- Updated URLs in docblocks to use HTTPS where possible (#238)
0.13.1 - 2016-03-09
Changed
- Refactored
EmphasisParser::parse()to simplify it (#223) - Updated dev dependencies (#218 & #220)
Fixed
- Fixed invalid regex generated when no inline parsers are defined (#224)
- Fixed logic bug with blank line after empty list item (#230)
- Fixed some incorrect code comments
Removed
- Removed unused variables (#223)
0.13.0 - 2016-01-13
Added
- Added AST document processors (#210)
- Added optional
Environmentparameter toCommonMarkConverterconstructor
Changed
- Renamed "header" things to "heading" for spec consistency
Header=>HeadingATXHeaderParser=>ATXHeadingParserSetExtHeaderParser=>SetExtHeadingParserHeaderRenderer=>HeadingRenderer
- Renamed "HorizontalRule" to "ThematicBreak" for spec consistency
HorizontalRule=>ThematicBreakHorizontalRuleParser=>ThematicBreakParserHorizontalRuleRenderer=>ThematicBreakRendererHorizontalRuleRendererTest=>ThematicBreakRendererTestRegexHelper::getHRuleRegex()=>RegexHelper::getThematicBreakRegex()
- Renamed inline "Html" and "RawHtml" to "HtmlInline" for consistency
Html=>HtmlInlineRawHtmlParser=>HtmlInlineParserRawHtmlRenderer=>HtmlInlineRenderer
- Don't allow whitespace between link text and link label of a reference link (spec change)
- Don't allow spaces in link destinations, even in
<> - Allow multiline setext header content
- The
Headingconstructor now allows$contentsto be astring(old behavior) orstring[](new)
- The
Fixed
- Fixed several list issues and regressions (jgm/commonmark.js#59)
Removed
- Removed schema whitelist from autolink regex
- Moved SmartPunct functionality into new league/commonmark-extras package
0.12.0 - 2015-11-04
Added
- Added ability to configure characters and disable emphasis/strong (#135)
- Added new ConfigurationAwareInterface support for all parsers, processors, and renderers (#201)
- Added HTML safe mode to handle untrusted input (#200, #201)
- Safe mode is disabled by default for backwards-compatibility
- To enable it, set the
safeoption totrue
- Added AppVeyor integration for automated unit/functional testing on Windows (#195)
Changed
AbstractBlock::finalize()now requires a second parameter,$endLineNumberRegexHelper::REGEX_ENTITYno longer includes the starting/or the ending/i(#194)Node::setParent()now accepts null values (#203)
Fixed
- Fixed incorrect
endLinepositions (#187) - Fixed
DocParser::preProcessInputdropping up to 2 ending newlines instead of just one - Fixed
EntityParsernot checking for ampersands at the start of the current position (#192, #194)
Removed
- Removed protected function Context::addChild()
- It was a duplicate of the Context::addBlock() method
- Disabled STDIN reading on
bin/commonmarkfor Windows due to PHP issues (#189, #195)
0.11.3 - 2015-09-25
Fixed
- Reset container after closing containing lists (#183; jgm/commonmark.js#67)
- The temporary fix from 0.11.2 was reverted
0.11.2 - 2015-09-23
Fixed
- Fixed parser checking acceptsLines on the wrong element (#183)
0.11.1 - 2015-09-22
Changed
- Tightened up some loose comparisons
Fixed
- Fixed missing "bin" directive in composer.json
- Updated a docblock to match recent changes to method parameters
Removed
- Removed unused variable from within QuoteProcessor's closure
0.11.0 - 2015-09-19
Added
- Added new
Nodeclass, which bothAbstractBlockandAbstractInlineextend from (#169) - Added a
NodeWalkerandNodeWalkerEventto traverse the AST without using recursion - Added new
InlineContainerinterface for blocks - Added new
getContainer()andgetReferenceMap()methods toInlineParserContext - Added
iframeto whitelist of HTML block tags (as per spec) - Added
./bin/commonmarkfor converting Markdown at the command line
Changed
- Bumped spec target version to 0.22
- Revised AST to use a double-linked list (#169)
AbstractBlockandAbstractInlineboth extend fromNode- Sub-classes must implement new
isContainer()method
- Sub-classes must implement new
- Other major changes to
AbstractBlock:getParent()is nowparent()setParent()now expects aNodeinstead of anAbstractBlockgetChildren()is nowchildren()getLastChild()is nowlastChild()addChild()is nowappendChild()
InlineParserContextis constructed using the containerAbstractBlockand the document'sRefereceMap- The constructor will automatically create the
Cursorusing the container's string contents
- The constructor will automatically create the
InlineParserEngine::parsenow requires theNodecontainer and the document'sReferenceMapinstead of aContextInterfaceandCursor- Changed
Delimiterto reference the actual inlineNodeinstead of the position- The
int $posprotected member and constructor arg is nowNode $node - Use
getInlineNode()andsetInlineNode()instead ofgetPos()andsetPos()
- The
- Changed
DocParser::processInlinesto use aNodeWalkerto iterate through inlines- Walker passed as second argument instead of
AbstractBlock - Uses a
whileloop instead of recursion to traverse the AST
- Walker passed as second argument instead of
ImageandLinknow only accept a string as their second argument- Refactored how
CloseBracketParser::parse()works internally CloseBracketParser::createInlineno longer accepts label inlines- Disallow list item starting with multiple blank lines (see jgm/CommonMark#332)
- Modified
AbstractBlock::setLastLineBlank()- Functionality moved to
AbstractBlock::shouldLastLineBeBlank()and newDocParser::setAndPropagateLastLineBlank()method AbstractBlock::setLastLineBlank()is now a setter method forAbstractBlock::$lastLineBlank
- Functionality moved to
AbstractBlock::handleRemainingContents()is no longer abstract- A default implementation is provided
- Removed duplicate code from sub-classes which used the default implementation - they'll just use the parent method from now on
Fixed
- Fixed logic error in calculation of offset (see jgm/commonmark.js@94053a8)
- Fixed bug where
DocParserchecked the wrong method to determine remainder handling behavior - Fixed bug where
HorizontalRuleParserfailed to advance the cursor beyond the parsed horizontal rule characters - Fixed
DocParsernot ignoring the final newline of the input (like the reference parser does)
Removed
- Removed
Block\Element\AbstractInlineContainer- Extend
AbstractBlockand implementInlineContainerinstead - Use child methods instead of
getInlinesandsetInlines
- Extend
- Removed
AbstractBlock::replaceChild()- Call
Node::replaceWith()directly the child node instead
- Call
- Removed the
getInlines()method fromInlineParserContext- Add parsed inlines using
$inlineContext->getContainer()->appendChild()instead of$inlineContext->getInlines()->add()
- Add parsed inlines using
- Removed the
ContextInterfaceargument fromAbstractInlineParser::parse()andInlineParserEngine::parseCharacter - Removed the first
ArrayCollection $inlinesargument fromInlineProcessorInterface::processInlines() - Removed
CloseBracketParser::nullify() - Removed
prefrom rule 6 of HTML blocks (see jgm/CommonMark#355)
0.10.0 - 2015-07-25
Added
- Added parent references to inline elements (#124)
- Added smart punctuation extension (#134)
- Added HTML block types
- Added indentation caching to the cursor
- Added automated code style checks (#133)
- Added support for tag attributes in renderers (#101, #165)
Changed
- Bumped spec target version to 0.21
- Revised HTML block parsing to conform to new spec (jgm/commonmark.js@99bd473)
- Imposed 9-digit limit on ordered list markers, per spec
- Allow non-initial hyphens in html tag names (jgm/CommonMark#239)
- Updated list of block tag names
- Changed tab/indentation handling to meet the new spec behavior
- Modified spec tests to show spaces and tabs in test results
- Replaced
HtmlRendererInterfacewithElementRendererInterface(#141) - Removed the unnecessary
trim()and string cast fromListItemRenderer
Fixed
- Fixed link reference definition edge case (#120)
- Allow literal (non-escaping) backslashes in link destinations (#118)
- Allow backslash-escaped backslashes in link labels (#119)
- Allow link labels up to 999 characters (per the spec)
- Properly split on whitespace when determining code block class (jgm/commonmark.js#54)
- Fixed code style issues (#132, #133, #151, #152)
- Fixed wording for invalid inline exception (#136)
Removed
- Removed the advance-by-one optimization due to added cursor complexity
0.9.0 - 2015-06-18
Added
- Added public $data array to block elements (#95)
- Added
isIndentedhelper method toCursor - Added a new
Converterbase class whichCommonMarkConverterextends from (#105)
Changed
- Bumped spec target version to 0.20 (#112)
- Renamed ListBlock::$data and ListItem::$data to $listData
- Require link labels to contain non-whitespace (jgm/CommonMark#322)
- Use U+FFFD for entities resolving to 0 (jgm/CommonMark#323)
- Moved
IndentedCodeParser::CODE_INDENT_LEVELtoCursor::INDENT_LEVEL - Changed arrays to short syntax (#116)
- Improved efficiency of DelimiterStack iteration (jgm/commonmark.js#43)
Fixed
- Fixed open block tag followed by newline not being recognized (jgm/CommonMark#324)
- Fixed indented lists sometimes being parsed incorrectly (jgm/commonmark.js#42)
0.8.0 - 2015-04-29
Added
- Allow swapping built-in renderers without using their fully qualified names (#84)
- Lots of unit tests (for existing code)
- Ability to include arbitrary functional tests in addition to spec-based tests
Changed
- Dropped support for PHP 5.3 (#64 and #76)
- Bumped spec target version to 0.19
- Made the AbstractInlineContainer be abstract
- Moved environment config. logic into separate class
Fixed
- Fixed underscore emphasis to conform to spec changes (jgm/CommonMark#317)
Removed
- Removed PHP 5.3 workaround (see commit 5747822)
- Removed unused AbstractWebResource::setUrl() method
- Removed unnecessary check for hrule when parsing lists (#85)
0.7.2 - 2015-03-08
Changed
- Bumped spec target version to 0.18
Fixed
- Fixed broken parsing of emphasized text ending with a '0' character (#81)
0.7.1 - 2015-03-01
Added
- All references can now be obtained from the
ReferenceMapvialistReferences()(#73) - Test against PHP 7.0 (nightly) but allow failures
Changed
- ListData::$start now defaults to null instead of 0 (#74)
- Replace references to HtmlRenderer with new HtmlRendererInterface
Fixed
- Fixed 0-based ordered lists starting at 1 instead of 0 (#74)
- Fixed errors parsing multi-byte characters (#78 and #79)
0.7.0 - 2015-02-16
Added
- More unit tests to increase code coverage
Changed
- Enabled the InlineParserEngine to parse several non-special characters at once (performance boost)
- NewlineParser no longer attempts to parse spaces; look-behind is used instead (major performance boost)
- Moved closeUnmatchedBlocks into its own class
- Image and link elements now extend AbstractInlineContainer; label data is stored via $inlineContents instead
- Renamed AbstractInlineContainer::$inlineContents and its getter/setter
Removed
- Removed the InlineCollection class
- Removed the unused ArrayCollection::splice() method
- Removed impossible-to-reach code in Cursor::advanceToFirstNonSpace
- Removed unnecessary test from the InlineParserEngine
- Removed unnecessary/unused RegexHelper::getMainRegex() method
0.6.1 - 2015-01-25
Changed
- Bumped spec target version to 0.17
- Updated emphasis parsing for underscores to prevent intra-word emphasis
- Deferred closing of fenced code blocks
0.6.0 - 2015-01-09
Added
- Bulk registration of parsers/renderers via extensions (#45)
- Proper UTF-8 support, especially in the Cursor; mbstring extension is now required (#49)
- Environment is now configurable; options can be accessed in its parsers/renderers (#56)
- Added some unit tests
Changed
- Bumped spec target version to 0.15 (#50)
- Parsers/renderers are now lazy-initialized (#52)
- Some private elements are now protected for easier extending, especially on Element classes (#53)
- Renderer option keys changed from camelCase to underscore_case (#56)
- Moved CommonMark parser/render definitions into CommonMarkCoreExtension
Fixed
- Improved parsing of emphasis around punctuation
- Improved regexes for CDATA and HTML comments
- Fixed issue with HTML content that is considered false in loose comparisons, like
'0'(#55) - Fixed DocParser trying to add empty strings to closed containers (#58)
- Fixed incorrect use of a null parameter value in the HtmlElementTest
Removed
- Removed unused ReferenceDefinition* classes (#51)
- Removed UnicodeCaseFolder in favor of mb_strtoupper
0.5.1 - 2014-12-27
Fixed
- Fixed infinite loop and link-in-link-in-image parsing (#37)
Removed
- Removed hard dependency on mbstring extension; workaround used if not installed (#38)
0.5.0 - 2014-12-24
Added
- Support for custom directives, parsers, and renderers
Changed
- Major refactoring to de-couple directives from the parser, support custom directive functionality, and reduce complexity
- Updated references to stmd.js in README and docblocks
- Modified CHANGELOG formatting
- Improved travis configuration
- Put tests in autoload-dev
Fixed
- Fixed CommonMarkConverter re-creating object each time new text is converted (#26)
Removed
- Removed HtmlRenderer::render() (use the renderBlock method instead)
- Removed dependency on symfony/options-resolver (fixes #20)
0.4.0 - 2014-12-15
Added
- Added some missing copyright info
Changed
- Changed namespace to League\CommonMark
- Made compatible with spec version 0.13
- Moved delimiter stack functionality into separate class
Fixed
- Fixed regex which caused HHVM tests to fail
0.3.0 - 2014-11-28
Added
- Made renderer options configurable (issue #7)
Changed
- Made compatible with spec version 0.12
- Stack-based parsing now used for emphasis, links and images
- Protected some of the internal renderer methods which shouldn't have been
public - Minor code clean-up (including PSR-2 compliance)
Removed
- Removed unnecessary distinction between ATX and Setext headers
0.2.1 - 2014-11-09
Added
- Added simpler string replacement to a method
Changed
- Removed "is" prefix from boolean methods
- Updated to latest version of PHPUnit
- Target specific spec version
0.2.0 - 2014-11-09
Changed
- Mirrored significant changes and improvements from stmd.js
- Made compatible with spec version 0.10
- Updated location of JGM's repository
- Allowed HHVM tests to fail without affecting overall build success
Removed
- Removed composer.lock
- Removed fixed reference to jgm/stmd@0275f34
0.1.2 - 2014-09-28
Added
- Added performance benchmarking tool (issue #2)
- Added more badges to the README
Changed
- Fix JS -> PHP null judgement (issue #4)
- Updated phpunit dependency
0.1.1 - 2014-09-08
Added
- Add anchors to regexes
Changed
- Updated target spec (now compatible with jgm/stmd:spec.txt @ 2cf0750)
- Adjust HTML output for fenced code
- Adjust block-level tag regex (remove "br", add "iframe")
- Fix incorrect handling of nested emphasis
0.1.0
Added
- Initial commit (compatible with jgm/stmd:spec.txt @ 0275f34)