# Revision History ## 6.0 ### 6.0.0 (2014-07-03) * Format output using Sabberworm\CSS\OutputFormat * *No backwards-incompatible changes* #### Deprecations * The parse() method replaces __toString with an optional argument (instance of the OutputFormat class) ### 6.0.1 (2014-08-24) * Remove some declarations in interfaces incompatible with PHP 5.3 (< 5.3.9) * *No deprecations* ## 5.0 ### 5.0.0 (2013-03-20) * Correctly parse all known CSS 3 units (including Hz and kHz). * Output RGB colors in short (#aaa or #ababab) notation * Be case-insensitive when parsing identifiers. * *No deprecations* #### Backwards-incompatible changes * `Sabberworm\CSS\Value\Color`’s `__toString` method overrides `CSSList`’s to maybe return something other than `type(value, …)` (see above). ### 5.0.1 (2013-03-20) * Internal cleanup * *No backwards-incompatible changes* * *No deprecations* ### 5.0.2 (2013-03-21) * CHANGELOG.md file added to distribution * *No backwards-incompatible changes* * *No deprecations* ### 5.0.3 (2013-03-21) * More size units recognized * *No backwards-incompatible changes* * *No deprecations* ### 5.0.4 (2013-03-21) * Don’t output floats with locale-aware separator chars * *No backwards-incompatible changes* * *No deprecations* ### 5.0.5 (2013-04-17) * Initial support for lenient parsing (setting this parser option will catch some exceptions internally and recover the parser’s state as neatly as possible). * *No backwards-incompatible changes* * *No deprecations* ### 5.0.6 (2013-05-31) * Fix broken unit test * *No backwards-incompatible changes* * *No deprecations* ### 5.0.7 (2013-08-04) * Fix broken decimal point output optimization * *No backwards-incompatible changes* * *No deprecations* ### 5.0.8 (2013-08-15) * Make default settings’ multibyte parsing option dependent on whether or not the mbstring extension is actually installed. * *No backwards-incompatible changes* * *No deprecations* ### 5.1.0 (2013-10-24) * Performance enhancements by Michael M Slusarz * More rescue entry points for lenient parsing (unexpected tokens between declaration blocks and unclosed comments) * *No backwards-incompatible changes* * *No deprecations* ### 5.1.1 (2013-10-28) * Updated CHANGELOG.md to reflect changes since 5.0.4 * *No backwards-incompatible changes* * *No deprecations* ### 5.1.2 (2013-10-30) * Remove the use of consumeUntil in comment parsing. This makes it possible to parse comments such as “/** Perfectly valid **/” * *No backwards-incompatible changes* * *No deprecations* ### 5.2.0 (2014-06-30) * Support removing a selector from a declaration block using `$oBlock->removeSelector($mSelector)` * Introduce a specialized exception (Sabberworm\CSS\Parsing\OuputException) for exceptions during output rendering * *No deprecations* #### Backwards-incompatible changes * Outputting a declaration block that has no selectors throws an OuputException instead of outputting an invalid ` {…}` into the CSS document. ## 4.0 ### 4.0.0 (2013-03-19) * Support for more @-rules * Generic interface `Sabberworm\CSS\Property\AtRule`, implemented by all @-rule classes * *No deprecations* #### Backwards-incompatible changes * `Sabberworm\CSS\RuleSet\AtRule` renamed to `Sabberworm\CSS\RuleSet\AtRuleSet` * `Sabberworm\CSS\CSSList\MediaQuery` renamed to `Sabberworm\CSS\RuleSet\CSSList\AtRuleBlockList` with differing semantics and API (which also works for other block-list-based @-rules like `@supports`). ## 3.0 ### 3.0.0 (2013-03-06) * Support for lenient parsing (on by default) * *No deprecations* #### Backwards-incompatible changes * All properties (like whether or not to use `mb_`-functions, which default charset to use and – new – whether or not to be forgiving when parsing) are now encapsulated in an instance of `Sabberworm\CSS\Settings` which can be passed as the second argument to `Sabberworm\CSS\Parser->__construct()`. * Specifying a charset as the second argument to `Sabberworm\CSS\Parser->__construct()` is no longer supported. Use `Sabberworm\CSS\Settings::create()->withDefaultCharset('some-charset')` instead. * Setting `Sabberworm\CSS\Parser->bUseMbFunctions` has no effect. Use `Sabberworm\CSS\Settings::create()->withMultibyteSupport(true/false)` instead. * `Sabberworm\CSS\Parser->parse()` may throw a `Sabberworm\CSS\Parsing\UnexpectedTokenException` when in strict parsing mode. ## 2.0 ### 2.0.0 (2013-01-29) * Allow multiple rules of the same type per rule set #### Backwards-incompatible changes * `Sabberworm\CSS\RuleSet->getRules()` returns an index-based array instead of an associative array. Use `Sabberworm\CSS\RuleSet->getRulesAssoc()` (which eliminates duplicate rules and lets the later rule of the same name win). * `Sabberworm\CSS\RuleSet->removeRule()` works as it did before except when passed an instance of `Sabberworm\CSS\Rule\Rule`, in which case it would only remove the exact rule given instead of all the rules of the same type. To get the old behaviour, use `Sabberworm\CSS\RuleSet->removeRule($oRule->getRule()`; ## 1.0 Initial release of a stable public API. ## 0.9 Last version not to use PSR-0 project organization semantics.