|
1 | 1 | # Revision History |
2 | 2 |
|
3 | | -## x.y |
4 | | - |
5 | 3 | ## x.y.z |
6 | 4 |
|
7 | 5 | * Require PHP ≥ 5.6 |
8 | 6 |
|
9 | | -## 8.0 |
10 | | - |
11 | | -### 8.0.0 (2016-06-30) |
12 | | - |
13 | | -* Store source CSS line numbers in tokens and parsing exceptions. |
14 | | -* *No deprecations* |
15 | | - |
16 | | -#### Backwards-incompatible changes |
| 7 | +## 8.3.0 (2019-02-22) |
17 | 8 |
|
18 | | -* Unrecoverable parser errors throw an exception of type `Sabberworm\CSS\Parsing\SourceException` instead of `\Exception`. |
19 | | - |
20 | | -### 8.1.0 (2016-07-19) |
21 | | - |
22 | | -* Comments are no longer silently ignored but stored with the object with which they appear (no render support, though). Thanks to @FMCorz. |
23 | | -* The IE hacks using `\0` and `\9` can now be parsed (and rendered) in lenient mode. Thanks (again) to @FMCorz. |
24 | | -* Media queries with or without spaces before the query are parsed. Still no *real* parsing support, though. Sorry… |
25 | | -* PHPUnit is now listed as a dev-dependency in composer.json. |
| 9 | +* Refactor parsing logic to mostly reside in the class files whose data structure is to be parsed (this should eventually allow us to unit-test specific parts of the parsing logic individually). |
| 10 | +* Fix error in parsing `calc` expessions when the first operand is a negative number, thanks to @raxbg. |
| 11 | +* Support parsing CSS4 colors in hex notation with alpha values, thanks to @raxbg. |
| 12 | +* Swallow more errors in lenient mode, thanks to @raxbg. |
| 13 | +* Allow specifying arbitrary strings to output before and after declaration blocks, thanks to @westonruter. |
26 | 14 | * *No backwards-incompatible changes* |
27 | 15 | * *No deprecations* |
28 | 16 |
|
29 | | -### 8.2.0 (2018-07-13) |
| 17 | +## 8.2.0 (2018-07-13) |
30 | 18 |
|
31 | 19 | * Support parsing `calc()`, thanks to @raxbg. |
32 | 20 | * Support parsing grid-lines, again thanks to @raxbg. |
|
35 | 23 | * *No backwards-incompatible changes* |
36 | 24 | * *No deprecations* |
37 | 25 |
|
38 | | -### 8.3.0 (2019-02-22) |
| 26 | +## 8.1.0 (2016-07-19) |
39 | 27 |
|
40 | | -* Refactor parsing logic to mostly reside in the class files whose data structure is to be parsed (this should eventually allow us to unit-test specific parts of the parsing logic individually). |
41 | | -* Fix error in parsing `calc` expessions when the first operand is a negative number, thanks to @raxbg. |
42 | | -* Support parsing CSS4 colors in hex notation with alpha values, thanks to @raxbg. |
43 | | -* Swallow more errors in lenient mode, thanks to @raxbg. |
44 | | -* Allow specifying arbitrary strings to output before and after declaration blocks, thanks to @westonruter. |
| 28 | +* Comments are no longer silently ignored but stored with the object with which they appear (no render support, though). Thanks to @FMCorz. |
| 29 | +* The IE hacks using `\0` and `\9` can now be parsed (and rendered) in lenient mode. Thanks (again) to @FMCorz. |
| 30 | +* Media queries with or without spaces before the query are parsed. Still no *real* parsing support, though. Sorry… |
| 31 | +* PHPUnit is now listed as a dev-dependency in composer.json. |
45 | 32 | * *No backwards-incompatible changes* |
46 | 33 | * *No deprecations* |
47 | 34 |
|
48 | | -## 7.0 |
49 | | - |
50 | | -### 7.0.0 (2015-08-24) |
| 35 | +## 8.0.0 (2016-06-30) |
51 | 36 |
|
52 | | -* Compatibility with PHP 7. Well timed, eh? |
| 37 | +* Store source CSS line numbers in tokens and parsing exceptions. |
53 | 38 | * *No deprecations* |
54 | 39 |
|
55 | | -#### Backwards-incompatible changes |
| 40 | +### Backwards-incompatible changes |
56 | 41 |
|
57 | | -* The `Sabberworm\CSS\Value\String` class has been renamed to `Sabberworm\CSS\Value\CSSString`. |
| 42 | +* Unrecoverable parser errors throw an exception of type `Sabberworm\CSS\Parsing\SourceException` instead of `\Exception`. |
58 | 43 |
|
59 | | -### 7.0.1 (2015-12-25) |
| 44 | +## 7.0.3 (2016-04-27) |
60 | 45 |
|
61 | | -* No more suppressed `E_NOTICE` |
| 46 | +* Fixed parsing empty CSS when multibyte is off |
62 | 47 | * *No backwards-incompatible changes* |
63 | 48 | * *No deprecations* |
64 | 49 |
|
65 | | -### 7.0.2 (2016-02-11) |
| 50 | +## 7.0.2 (2016-02-11) |
66 | 51 |
|
67 | 52 | * 150 time performance boost thanks to @[ossinkine](https://github.com/ossinkine) |
68 | 53 | * *No backwards-incompatible changes* |
69 | 54 | * *No deprecations* |
70 | 55 |
|
71 | | -### 7.0.3 (2016-04-27) |
| 56 | +## 7.0.1 (2015-12-25) |
72 | 57 |
|
73 | | -* Fixed parsing empty CSS when multibyte is off |
| 58 | +* No more suppressed `E_NOTICE` |
74 | 59 | * *No backwards-incompatible changes* |
75 | 60 | * *No deprecations* |
76 | 61 |
|
77 | | -## 6.0 |
| 62 | +## 7.0.0 (2015-08-24) |
78 | 63 |
|
79 | | -### 6.0.0 (2014-07-03) |
80 | | - |
81 | | -* Format output using Sabberworm\CSS\OutputFormat |
82 | | -* *No backwards-incompatible changes* |
| 64 | +* Compatibility with PHP 7. Well timed, eh? |
| 65 | +* *No deprecations* |
83 | 66 |
|
84 | | -#### Deprecations |
| 67 | +### Backwards-incompatible changes |
85 | 68 |
|
86 | | -* The parse() method replaces __toString with an optional argument (instance of the OutputFormat class) |
| 69 | +* The `Sabberworm\CSS\Value\String` class has been renamed to `Sabberworm\CSS\Value\CSSString`. |
87 | 70 |
|
88 | | -### 6.0.1 (2015-08-24) |
| 71 | +## 6.0.1 (2015-08-24) |
89 | 72 |
|
90 | 73 | * Remove some declarations in interfaces incompatible with PHP 5.3 (< 5.3.9) |
91 | 74 | * *No deprecations* |
92 | 75 |
|
93 | | -## 5.0 |
| 76 | +## 6.0.0 (2014-07-03) |
94 | 77 |
|
95 | | -### 5.0.0 (2013-03-20) |
| 78 | +* Format output using Sabberworm\CSS\OutputFormat |
| 79 | +* *No backwards-incompatible changes* |
| 80 | + |
| 81 | +### Deprecations |
| 82 | + |
| 83 | +* The parse() method replaces __toString with an optional argument (instance of the OutputFormat class) |
| 84 | + |
| 85 | +## 5.2.0 (2014-06-30) |
| 86 | + |
| 87 | +* Support removing a selector from a declaration block using `$oBlock->removeSelector($mSelector)` |
| 88 | +* Introduce a specialized exception (Sabberworm\CSS\Parsing\OuputException) for exceptions during output rendering |
96 | 89 |
|
97 | | -* Correctly parse all known CSS 3 units (including Hz and kHz). |
98 | | -* Output RGB colors in short (#aaa or #ababab) notation |
99 | | -* Be case-insensitive when parsing identifiers. |
100 | 90 | * *No deprecations* |
101 | 91 |
|
102 | 92 | #### Backwards-incompatible changes |
103 | 93 |
|
104 | | -* `Sabberworm\CSS\Value\Color`’s `__toString` method overrides `CSSList`’s to maybe return something other than `type(value, …)` (see above). |
| 94 | +* Outputting a declaration block that has no selectors throws an OuputException instead of outputting an invalid ` {…}` into the CSS document. |
105 | 95 |
|
106 | | -### 5.0.1 (2013-03-20) |
| 96 | +## 5.1.2 (2013-10-30) |
107 | 97 |
|
108 | | -* Internal cleanup |
| 98 | +* Remove the use of consumeUntil in comment parsing. This makes it possible to parse comments such as `/** Perfectly valid **/` |
| 99 | +* Add fr relative size unit |
| 100 | +* Fix some issues with HHVM |
109 | 101 | * *No backwards-incompatible changes* |
110 | 102 | * *No deprecations* |
111 | 103 |
|
112 | | -### 5.0.2 (2013-03-21) |
| 104 | +## 5.1.1 (2013-10-28) |
113 | 105 |
|
114 | | -* CHANGELOG.md file added to distribution |
| 106 | +* Updated CHANGELOG.md to reflect changes since 5.0.4 |
115 | 107 | * *No backwards-incompatible changes* |
116 | 108 | * *No deprecations* |
117 | 109 |
|
118 | | -### 5.0.3 (2013-03-21) |
| 110 | +## 5.1.0 (2013-10-24) |
119 | 111 |
|
120 | | -* More size units recognized |
| 112 | +* Performance enhancements by Michael M Slusarz |
| 113 | +* More rescue entry points for lenient parsing (unexpected tokens between declaration blocks and unclosed comments) |
121 | 114 | * *No backwards-incompatible changes* |
122 | 115 | * *No deprecations* |
123 | 116 |
|
124 | | -### 5.0.4 (2013-03-21) |
| 117 | +## 5.0.8 (2013-08-15) |
125 | 118 |
|
126 | | -* Don’t output floats with locale-aware separator chars |
| 119 | +* Make default settings’ multibyte parsing option dependent on whether or not the mbstring extension is actually installed. |
127 | 120 | * *No backwards-incompatible changes* |
128 | 121 | * *No deprecations* |
129 | 122 |
|
130 | | -### 5.0.5 (2013-04-17) |
| 123 | +## 5.0.7 (2013-08-04) |
131 | 124 |
|
132 | | -* Initial support for lenient parsing (setting this parser option will catch some exceptions internally and recover the parser’s state as neatly as possible). |
| 125 | +* Fix broken decimal point output optimization |
133 | 126 | * *No backwards-incompatible changes* |
134 | 127 | * *No deprecations* |
135 | 128 |
|
136 | | -### 5.0.6 (2013-05-31) |
| 129 | +## 5.0.6 (2013-05-31) |
137 | 130 |
|
138 | 131 | * Fix broken unit test |
139 | 132 | * *No backwards-incompatible changes* |
140 | 133 | * *No deprecations* |
141 | 134 |
|
142 | | -### 5.0.7 (2013-08-04) |
| 135 | +## 5.0.5 (2013-04-17) |
143 | 136 |
|
144 | | -* Fix broken decimal point output optimization |
| 137 | +* Initial support for lenient parsing (setting this parser option will catch some exceptions internally and recover the parser’s state as neatly as possible). |
145 | 138 | * *No backwards-incompatible changes* |
146 | 139 | * *No deprecations* |
147 | 140 |
|
148 | | -### 5.0.8 (2013-08-15) |
| 141 | +## 5.0.4 (2013-03-21) |
149 | 142 |
|
150 | | -* Make default settings’ multibyte parsing option dependent on whether or not the mbstring extension is actually installed. |
| 143 | +* Don’t output floats with locale-aware separator chars |
151 | 144 | * *No backwards-incompatible changes* |
152 | 145 | * *No deprecations* |
153 | 146 |
|
154 | | -### 5.1.0 (2013-10-24) |
| 147 | +## 5.0.3 (2013-03-21) |
155 | 148 |
|
156 | | -* Performance enhancements by Michael M Slusarz |
157 | | -* More rescue entry points for lenient parsing (unexpected tokens between declaration blocks and unclosed comments) |
| 149 | +* More size units recognized |
158 | 150 | * *No backwards-incompatible changes* |
159 | 151 | * *No deprecations* |
160 | 152 |
|
161 | | -### 5.1.1 (2013-10-28) |
| 153 | +## 5.0.2 (2013-03-21) |
162 | 154 |
|
163 | | -* Updated CHANGELOG.md to reflect changes since 5.0.4 |
| 155 | +* CHANGELOG.md file added to distribution |
164 | 156 | * *No backwards-incompatible changes* |
165 | 157 | * *No deprecations* |
166 | 158 |
|
167 | | -### 5.1.2 (2013-10-30) |
| 159 | +## 5.0.1 (2013-03-20) |
168 | 160 |
|
169 | | -* Remove the use of consumeUntil in comment parsing. This makes it possible to parse comments such as `/** Perfectly valid **/` |
170 | | -* Add fr relative size unit |
171 | | -* Fix some issues with HHVM |
| 161 | +* Internal cleanup |
172 | 162 | * *No backwards-incompatible changes* |
173 | 163 | * *No deprecations* |
174 | 164 |
|
175 | | -### 5.2.0 (2014-06-30) |
176 | | - |
177 | | -* Support removing a selector from a declaration block using `$oBlock->removeSelector($mSelector)` |
178 | | -* Introduce a specialized exception (Sabberworm\CSS\Parsing\OuputException) for exceptions during output rendering |
| 165 | +## 5.0.0 (2013-03-20) |
179 | 166 |
|
| 167 | +* Correctly parse all known CSS 3 units (including Hz and kHz). |
| 168 | +* Output RGB colors in short (#aaa or #ababab) notation |
| 169 | +* Be case-insensitive when parsing identifiers. |
180 | 170 | * *No deprecations* |
181 | 171 |
|
182 | | -#### Backwards-incompatible changes |
183 | | - |
184 | | -* Outputting a declaration block that has no selectors throws an OuputException instead of outputting an invalid ` {…}` into the CSS document. |
| 172 | +### Backwards-incompatible changes |
185 | 173 |
|
186 | | -## 4.0 |
| 174 | +* `Sabberworm\CSS\Value\Color`’s `__toString` method overrides `CSSList`’s to maybe return something other than `type(value, …)` (see above). |
187 | 175 |
|
188 | | -### 4.0.0 (2013-03-19) |
| 176 | +## 4.0.0 (2013-03-19) |
189 | 177 |
|
190 | 178 | * Support for more @-rules |
191 | 179 | * Generic interface `Sabberworm\CSS\Property\AtRule`, implemented by all @-rule classes |
192 | 180 | * *No deprecations* |
193 | 181 |
|
194 | | -#### Backwards-incompatible changes |
| 182 | +### Backwards-incompatible changes |
195 | 183 |
|
196 | 184 | * `Sabberworm\CSS\RuleSet\AtRule` renamed to `Sabberworm\CSS\RuleSet\AtRuleSet` |
197 | 185 | * `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`). |
198 | 186 |
|
199 | | -## 3.0 |
200 | | - |
201 | | -### 3.0.0 (2013-03-06) |
| 187 | +## 3.0.0 (2013-03-06) |
202 | 188 |
|
203 | 189 | * Support for lenient parsing (on by default) |
204 | 190 | * *No deprecations* |
205 | 191 |
|
206 | | -#### Backwards-incompatible changes |
| 192 | +### Backwards-incompatible changes |
207 | 193 |
|
208 | 194 | * 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()`. |
209 | 195 | * 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. |
210 | 196 | * Setting `Sabberworm\CSS\Parser->bUseMbFunctions` has no effect. Use `Sabberworm\CSS\Settings::create()->withMultibyteSupport(true/false)` instead. |
211 | 197 | * `Sabberworm\CSS\Parser->parse()` may throw a `Sabberworm\CSS\Parsing\UnexpectedTokenException` when in strict parsing mode. |
212 | 198 |
|
213 | | -## 2.0 |
214 | | - |
215 | | -### 2.0.0 (2013-01-29) |
| 199 | +## 2.0.0 (2013-01-29) |
216 | 200 |
|
217 | 201 | * Allow multiple rules of the same type per rule set |
218 | 202 |
|
219 | | -#### Backwards-incompatible changes |
| 203 | +### Backwards-incompatible changes |
220 | 204 |
|
221 | 205 | * `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). |
222 | 206 | * `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()`; |
|
0 commit comments