UNPKG

25.9 kBMarkdownView Raw
11.0.0-rc.3 / 2019-04-06
2==================
3
4This release corrects a test expectation that was fixed by one of the project's
5dependencies.
6
71.0.0-rc.2 / 2017-07-02
8==================
9
10This release changes Cheerio's default parser to [the Parse5 HTML
11parser](https://github.com/inikulin/parse5). Parse5 is an excellent project
12that rigorously conforms to the HTML standard. It does not support XML, so
13Cheerio continues to use [`htmlparser2`](https://github.com/fb55/htmlparser2/)
14when working with XML documents.
15
16This switch addresses many long-standing bugs in Cheerio, but some users may
17experience slower behavior in performance-critical applications. In addition,
18`htmlparser2` is more forgiving of invalid markup which can be useful when
19input sourced from a third party and cannot be corrected. For these reasons,
20the `load` method also accepts a DOM structure as produced by the `htmlparser2`
21library. See the project's "readme" file for more details on this usage
22pattern.
23
24### Migrating from version 0.x
25
26`cheerio.load( html[, options ] )`` This method continues to produce
27jQuery-like functions, bound to the provided input text. In prior releases, the
28provided string was interpreted as a document fragment. This meant that in a
29statement such as:
30
31 var $ = cheerio.load('<p>Hello, <b>world</b>!</p>');
32
33The resulting `$` function would operate on a tree whose root element was a
34paragraph tag.
35
36With this release of Cheerio, strings provided to the `load` method are
37interpreted as documents. The same example will produce a `$` function that
38operates on a full HTML document, including an `<html>` document element with
39nested `<head>` and `<body>` tags. This mimics web browser behavior much more
40closely, but may require alterations to existing code. To work with fragments,
41first load an empty document, and then use the resulting `$` to parse the
42input:
43
44 var $ = cheerio.load('');
45 var $fragment = $('<p>Hello, <b>world</b>!</p>');
46
47 * Update History.md (and include migration guide) (Mike Pennisi)
48 * Rename `useHtmlParser2` option (Mike Pennisi)
49 * Remove documentation for `xmlMode` option (Mike Pennisi)
50 * Document advanced usage with htmlparser2 (Mike Pennisi)
51 * Correct errors in Readme.md (Mike Pennisi)
52 * Improve release process (Mike Pennisi)
53 * 1.0.0-rc.1 (Mike Pennisi)
54 * Update unit test (Mike Pennisi)
55 * Normalize code style (Mike Pennisi)
56 * Added support for nested wrapping. (Diane Looney)
57 * Add nested wrapping test (Toni Helenius)
58 * Added $.merge following the specification at https://api.jquery.com/jquery.merge/ Added test cases for $.merge (Diane Looney)
59 * Clarify project scope in README file (Mike Pennisi)
60 * .text() ignores script and style tags (#1018) (Haleem Assal)
61 * Test suite housekeeping (#1016) (DianeLooney)
62 * experiment with a job board (Matthew)
63 * Change options format (inikulin)
64 * Add test for #997 (inikulin)
65 * Update .filter function docs. (Konstantin)
66 * Standardise readme on ES6 variable declarations (Dekatron)
67 * Use documents via $.load (inikulin)
68 * Use parse5 as a default parser (closes #863) (inikulin)
69 * Fix small typo in Readme (Darren Scerri)
70 * Report test failures in CI (Mike Pennisi)
71 * serializeArray should not ignore input elements without value attributes (Ricardo Gladwell)
72 * Disallow variable shadowing (Mike Pennisi)
73 * Update hasClass method (sufisaid)
74 * Added MIT License fixes #902 (Prasanth Vaaheeswaran)
75 * chore(package): update dependencies (greenkeeper[bot])
76 * Use modular lodash package (#913) (Billy Janitsch)
77
780.22.0 / 2016-08-23
79==================
80
81 * Return undefined in .prop if given an invalid element or tag (#880)
82 * Merge pull request #884 from cheeriojs/readme-cleanup
83 * readme updates
84 * Merge pull request #881 from piamancini/patch-1
85 * Added backers and sponsors from OpenCollective
86 * Use jQuery from the jquery module in benchmarks (#871)
87 * Document, test, and extend static `$.text` method (#855)
88 * Fix typo on calling _.extend (#861)
89 * Update versions (#870)
90 * Use individual lodash functions (#864)
91 * Added `.serialize()` support. Fixes #69 (#827)
92 * Update Readme.md (#857)
93 * add extension for JSON require call
94 * remove gittask badge
95 * Merge pull request #672 from underdogio/dev/checkbox.radio.values.sqwished
96 * Added default value for checkboxes/radios
97
980.20.0 / 2016-02-01
99==================
100
101 * Add coveralls badge, remove link to old report (Felix Böhm)
102 * Update lodash dependeny to 4.1.0 (leif.hanack)
103 * Fix PR #726 adding 'appendTo()' and 'prependTo()' (Delgan)
104 * Added appendTo and prependTo with tests #641 (digihaven)
105 * Fix #780 by changing options context in '.find()' (Felix Böhm)
106 * Add an unit test checking the query of child (Delgan)
107 * fix #667: attr({foo: null}) removes attribute foo, like attr('foo', null) (Ray Waldin)
108 * Include reference to dedicated "Loading" section (Mike Pennisi)
109 * Added load method to $ (alanev)
110 * update css-select to 1.2.0 (Felix Böhm)
111 * Fixing Grammatical Error (Dan Corman)
112 * Test against node v0.12 --> v4.2 (Jason Kurian)
113 * Correct output in example (Felix Böhm)
114 * Fix npm files filter (Bogdan Chadkin)
115 * Enable setting data on all elements in selection (Mike Pennisi)
116 * Reinstate `$.fn.toArray` (Mike Pennisi)
117 * update css-select to 1.1.0 (Thomas Shafer)
118 * Complete implementation of `wrap` (Mike Pennisi)
119 * Correct name of unit test (Mike Pennisi)
120 * Correct grammar in test titles (Mike Pennisi)
121 * Normalize whitespace (Mike Pennisi)
122 * Insert omitted assertion (Mike Pennisi)
123 * Update invocation of `children` (Mike Pennisi)
124 * Begin implementation of `wrap` method (Dandlezzz)
125 * Update Readme.md (Sven Slootweg)
126 * fix document's mistake in Readme.md (exoticknight)
127 * Add tests for setting text and html as non-strings (Ryc O'Chet)
128 * Fix for passing non-string values to .html or .text (Ryc O'Chet)
129 * use a selector to filter form elements (fb55)
130 * fix README.md typo (Yutian Li)
131 * README: fix spelling (Chris Rebert)
132 * Added support for options without a `value` attribute. Fixes #633 (Todd Wolfson)
133 * responding to pull request feedback - remove item() method and related tests (Ray Waldin)
134 * add length property and item method to object returned by prop('style'), plus tests (Ray Waldin)
135 * Added .prop method to readme (Artem Burtsev)
136 * Added .prop method (Artem Burtsev)
137 * Added Gitter badge (The Gitter Badger)
138
1390.19.0 / 2015-03-21
140==================
141
142 * fixed allignment (fb55)
143 * added test case for malformed json in data attributes (fb55)
144 * fix: handle some extreme cases like `data-custom="{{templatevar}}"`. There is possibility error while parsing json . (Harish.K)
145 * Add missing optional selector doc for {prev,next}{All,Until} (Jérémie Astori)
146 * update to dom-serializer@0.1.0 (Felix Böhm)
147 * Document `Cheerio#serialzeArray` (Mike Pennisi)
148 * Fixed up `serializeArray()` and added multiple support (Todd Wolfson)
149 * Implement serializeArray() (Jarno Leppänen)
150 * recognize options in $.xml() (fb55)
151 * lib/static.js: text(): rm errant space before ++ (Chris Rebert)
152 * Do not expose internal `children` array (Mike Pennisi)
153 * Change lodash dependencies to ^3.1.0 (Samy Pessé)
154 * Update lodash@3.1.0 (Samy Pessé)
155 * Updates Readme.md: .not(function (index, elem)) (Patrick Ward)
156 * update to css-select@1.0.0 (fb55)
157 * Allow failures in Node.js v0.11 (Mike Pennisi)
158 * Added: Gittask badge (Matthew Mueller)
159 * Isolate prototypes of functions created via `load` (Mike Pennisi)
160 * Updates Readme.md: adds JS syntax highlighting (frankcash)
161 * #608 -- Add support for insertBefore/insertAfter syntax. Supports target types of: $, [$], selector (both single and multiple results) (Ben Cochran)
162 * Clone input nodes when inserting over a set (Mike Pennisi)
163 * Move unit test files (Mike Pennisi)
164 * remove unnecessarily tricky code (David Chambers)
165 * pass options to $.html in toString (fb55)
166 * add license info to package.json (Chris Rebert)
167 * xyz@~0.5.0 (David Chambers)
168 * Remove unofficial signature of `children` (Mike Pennisi)
169 * Fix bug in `css` method (Mike Pennisi)
170 * Correct bug in implementation of `Cheerio#val` (Mike Pennisi)
171
1720.18.0 / 2014-11-06
173==================
174
175 * bump htmlparser2 dependency to ~3.8.1 (Chris Rebert)
176 * Correct unit test titles (Mike Pennisi)
177 * Correct behavior of `after` and `before` (Mike Pennisi)
178 * implement jQuery's .has() (Chris Rebert)
179 * Update repository url (haqii)
180 * attr() should return undefined or name for booleans (Raoul Millais)
181 * Update Readme.md (Ryan Breen)
182 * Implement `Cheerio#not` (Mike Pennisi)
183 * Clone nodes according to original parsing options (Mike Pennisi)
184 * fix lint error (David Chambers)
185 * Add explicit tests for DOM level 1 API (Mike Pennisi)
186 * Expose DOM level 1 API for Node-like objects (Mike Pennisi)
187 * Correct error in documentation (Mike Pennisi)
188 * Return a fully-qualified Function from `$.load` (Mike Pennisi)
189 * Update tests to avoid duck typing (Mike Pennisi)
190 * Alter "loaded" functions to produce true instances (Mike Pennisi)
191 * Organize tests for `cheerio.load` (Mike Pennisi)
192 * Complete `$.prototype.find` (Mike Pennisi)
193 * Use JSHint's `extends` option (Mike Pennisi)
194 * Remove aliases for exported methods (Mike Pennisi)
195 * Disallow unused variables (Mike Pennisi)
196 * Remove unused internal variables (Mike Pennisi)
197 * Remove unused variables from unit tests (Mike Pennisi)
198 * Remove unused API method references (Mike Pennisi)
199 * Move tests for `contains` method (Mike Pennisi)
200 * xyz@0.4.0 (David Chambers)
201 * Created a wiki for companies using cheerio in production (Matthew Mueller)
202 * Implement `$.prototype.index` (Mike Pennisi)
203 * Implement `$.prototype.addBack` (Mike Pennisi)
204 * Added double quotes to radio attribute name to account for characters such as brackets (akant10)
205 * Update History.md (Gabriel Falkenberg)
206 * add 0.17.0 changelog (David Chambers)
207 * exit prepublish script if tag not found (David Chambers)
208 * alphabetize devDependencies (fb55)
209 * ignore coverage dir (fb55)
210 * submit coverage to coveralls (fb55)
211 * replace jscoverage with istanbul (fb55)
212
2130.17.0 / 2014-06-10
214==================
215
216 * Fix bug in internal `uniqueSplice` function (Mike Pennisi)
217 * accept buffer argument to cheerio.load (David Chambers)
218 * Respect options on the element level (Alex Indigo)
219 * Change state definition to more readable (Artem Burtsev)
220 * added test (0xBADC0FFEE)
221 * add class only if doesn't exist (Artem Burtsev)
222 * Made it less insane. (Alex Indigo)
223 * Implement `Cheerio#add` (Mike Pennisi)
224 * Use "loaded" instance of Cheerio in unit tests (Mike Pennisi)
225 * Be more strict with object check. (Alex Indigo)
226 * Added options argument to .html() static method. (Alex Indigo)
227 * Fixed encoding mishaps. Adjusted tests. (Alex Indigo)
228 * use dom-serializer module (fb55)
229 * don't test on 0.8, don't ignore 0.11 (Felix Böhm)
230 * parse: rm unused variables (coderaiser)
231 * cheerio: rm unused variable (coderaiser)
232 * Fixed test (Avi Kohn)
233 * Added test (Avi Kohn)
234 * Changed == to === (Avi Kohn)
235 * Fixed a bug in removing type="hidden" attr (Avi Kohn)
236 * sorted (Alexey Raspopov)
237 * add `muted` attr to booleanAttributes (Alexey Raspopov)
238 * fixed context of `this` in .html (Felix Böhm)
239 * append new elements for each element in selection (fb55)
240
2410.16.0 / 2014-05-08
242==================
243
244 * fix `make bench` (David Chambers)
245 * makefile: add release-* targets (David Chambers)
246 * alphabetize dependencies (David Chambers)
247 * Rewrite `data` internals with caching behavior (Mike Pennisi)
248 * Fence .val example as js (Kevin Sawicki)
249 * Fixed typos. Deleted trailing whitespace from test/render.js (Nattaphoom Ch)
250 * Fix manipulation APIs with removed elements (kpdecker)
251 * Perform manual string parsing for hasClass (kpdecker)
252 * Fix existing element removal (kpdecker)
253 * update render tests (Felix Böhm)
254 * fixed cheerio path (Felix Böhm)
255 * use `entities.escape` for attribute values (Felix Böhm)
256 * bump entities version (Felix Böhm)
257 * remove lowerCaseTags option from readme (Felix Böhm)
258 * added test case for .html in xmlMode (fb55)
259 * render xml in `html()` when `xmlMode: true` (fb55)
260 * use a map for booleanAttributes (fb55)
261 * update singleTags, use utils.isTag (fb55)
262 * update travis badge URL (Felix Böhm)
263 * use typeof instead of _.isString and _.isNumber (fb55)
264 * use Array.isArray instead of _.isArray (fb55)
265 * replace _.isFunction with typeof (fb55)
266 * removed unnecessary error message (fb55)
267 * decode entities in htmlparser2 (fb55)
268 * pass options object to CSSselect (fb55)
269
2700.15.0 / 2014-04-08
271==================
272
273 * Update callbacks to pass element per docs (@kpdecker)
274 * preserve options (@fb55)
275 * Use SVG travis badge (@t3chnoboy)
276 * only use static requires (@fb55)
277 * Optimize manipulation methods (@kpdecker)
278 * Optimize add and remove class cases (@kpdecker)
279 * accept dom of DomHandler to cheerio.load (@nleush)
280 * added parentsUntil method (@finspin)
281 * Add performance optimization and bug fix `empty` method (@kpdecker)
282
2830.14.0 / 2014-04-01
284==================
285
286 * call encodeXML and directly expose decodeHTML (@fb55)
287 * use latest htmlparser2 and entities versions (@fb55)
288 * Deprecate `$.fn.toArray` (@jugglinmike)
289 * Implement `$.fn.get` (@jugglinmike)
290 * .replaceWith now replaces all selected elements. (@xavi-)
291 * Correct arguments for 'replaceWith' callback (@jugglinmike)
292 * switch to lodash (@fb55)
293 * update to entities@0.5.0 (@fb55)
294 * Fix attr when $ collection contains text modules (@kpdecker)
295 * Update to latest version of expect.js (@jugglinmike)
296 * Remove nodes from their previous structures (@jugglinmike)
297 * Update render.js (@stevenvachon)
298 * CDATA test (@stevenvachon)
299 * only ever one child index for cdata (@stevenvachon)
300 * don't loop through cdata children array (@stevenvachon)
301 * proper rendering of CDATA (@stevenvachon)
302 * Add cheerio-only bench option (@kpdecker)
303 * Avoid delete operations (@kpdecker)
304 * Add independent html benchmark (@kpdecker)
305 * Cache tag check in render (@kpdecker)
306 * Simplify attribute rendering step (@kpdecker)
307 * Add html rendering bench case (@kpdecker)
308 * Remove unnecessary check from removeAttr (@kpdecker)
309 * Remove unnecessary encoding step for attrs (@kpdecker)
310 * Add test for removeAttr+attr on boolean attributes (@kpdecker)
311 * Add single element benchmark case (@kpdecker)
312 * Optimize filter with selector (@kpdecker)
313 * Fix passing context as dom node (@alfred-nsh)
314 * Fix bug in `nextUntil` (@jugglinmike)
315 * Fix bug in `nextAll` (@jugglinmike)
316 * Implement `selector` argument of `next` method (@jugglinmike)
317 * Fix bug in `prevUntil` (@jugglinmike)
318 * Implement `selector` argument of `prev` method (@jugglinmike)
319 * Fix bug in `prevAll` (@jugglinmike)
320 * Fix bug in `siblings` (@jugglinmike)
321 * Avoid unnecessary indexOf from toggleClass (@kpdecker)
322 * Use strict equality rather than falsy check in eq (@kpdecker)
323 * Add benchmark coverage for all $ APIs (@kpdecker)
324 * Optimize filter Cheerio intermediate creation (@kpdecker)
325 * Optimize siblings cheerio instance creation (@kpdecker)
326 * Optimize identity cases for first/last/eq (@kpdecker)
327 * Use domEach for traversal (@kpdecker)
328 * Inline children lookup in find (@kpdecker)
329 * Use domEach in data accessor (@kpdecker)
330 * Avoid cheerio creation in add/remove/toggleClass (@kpdecker)
331 * Implement getAttr local helper (@kpdecker)
332
3330.13.1 / 2014-01-07
334==================
335
336 * Fix select with context in Cheerio function (@jugglinmike)
337 * Remove unecessary DOM maintenance logic (@jugglinmike)
338 * Deprecate support for node 0.6
339
3400.13.0 / 2013-12-30
341==================
342
343 * Remove "root" node (@jugglinmike)
344 * Fix bug in `prevAll`, `prev`, `nextAll`, `next`, `prevUntil`, `nextUntil` (@jugglinmike)
345 * Fix `replaceWith` method (@jugglinmike)
346 * added nextUntil() and prevUntil() (@finspin)
347 * Remove internal `connect` function (@jugglinmike)
348 * Rename `Cheerio#make` to document private status (@jugginmike)
349 * Remove extraneous call to `_.uniq` (@jugglinmike)
350 * Use CSSselect library directly (@jugglinmike)
351 * Run CI against Node v0.11 as an allowed failure (@jugginmike)
352 * Correct bug in `Cheerio#parents` (@jugglinmike)
353 * Implement `$.fn.end` (@jugginmike)
354 * Ignore colons inside of url(.*) when parsing css (@Meekohi)
355 * Introduce rudimentary benchmark suite (@jugglinmike)
356 * Update HtmlParser2 version (@jugglinmike)
357 * Correct inconsistency in `$.fn.map` (@jugglinmike)
358 * fixed traversing tests (@finspin)
359 * Simplify `make` method (@jugglinmike)
360 * Avoid shadowing instance methods from arrays (@jugglinmike)
361
3620.12.4 / 2013-11-12
363==================
364
365 * Coerce JSON values returned by `data` (@jugglinmike)
366 * issue #284: when rendering HTML, use original data attributes (@Trott)
367 * Introduce JSHint for automated code linting (@jugglinmike)
368 * Prevent `find` from returning duplicate elements (@jugglinmike)
369 * Implement function signature of `replaceWith` (@jugglinmike)
370 * Implement function signature of `before` (@jugglinmike)
371 * Implement function signature of `after` (@jugglinmike)
372 * Implement function signature of `append`/`prepend` (@jugglinmike)
373 * Extend iteration methods to accept nodes (@jugglinmike)
374 * Improve `removeClass` (@jugglinmike)
375 * Complete function signature of `addClass` (@jugglinmike)
376 * Fix bug in `removeClass` (@jugglinmike)
377 * Improve contributing.md (@jugglinmike)
378 * Fix and document .css() (@jugglinmike)
379
3800.12.3 / 2013-10-04
381===================
382
383 * Add .toggleClass() function (@cyberthom)
384 * Add contributing guidelines (@jugglinmike)
385 * Fix bug in `siblings` (@jugglinmike)
386 * Correct the implementation `filter` and `is` (@jugglinmike)
387 * add .data() function (@andi-neck)
388 * add .css() (@yields)
389 * Implements contents() (@jlep)
390
3910.12.2 / 2013-09-04
392==================
393
394 * Correct implementation of `$.fn.text` (@jugglinmike)
395 * Refactor Cheerio array creation (@jugglinmike)
396 * Extend manipulation methods to accept Arrays (@jugglinmike)
397 * support .attr(attributeName, function(index, attr)) (@xiaohwan)
398
3990.12.1 / 2013-07-30
400==================
401
402 * Correct behavior of `Cheerio#parents` (@jugglinmike)
403 * Double quotes inside attributes kills HTML (@khoomeister)
404 * Making next({}) and prev({}) return empty object (@absentTelegraph)
405 * Implement $.parseHTML (@jugglinmike)
406 * Correct bug in jQuery.fn.closest (@jugglinmike)
407 * Correct behavior of $.fn.val on 'option' elements (@jugglinmike)
408
4090.12.0 / 2013-06-09
410===================
411
412 * Breaking Change: Changed context from parent to the actual passed one (@swissmanu)
413 * Fixed: jquery checkbox val behavior (@jhubble)
414 * Added: output xml with $.xml() (@Maciek416)
415 * Bumped: htmlparser2 to 3.1.1
416 * Fixed: bug in attr(key, val) on empty objects (@farhadi)
417 * Added: prevAll, nextAll (@lessmind)
418 * Fixed: Safety check in parents and closest (@zero21xxx)
419 * Added: .is(sel) (@zero21xxx)
420
4210.11.0 / 2013-04-22
422==================
423
424* Added: .closest() (@jeremy-dentel)
425* Added: .parents() (@zero21xxx)
426* Added: .val() (@rschmukler & @leahciMic)
427* Added: Travis support for node 0.10.0 (@jeremy-dentel)
428* Fixed: .find() if no selector (@davidchambers)
429* Fixed: Propagate syntax errors caused by invalid selectors (@davidchambers)
430
4310.10.8 / 2013-03-11
432==================
433
434* Add slice method (SBoudrias)
435
4360.10.7 / 2013-02-10
437==================
438
439* Code & doc cleanup (davidchambers)
440* Fixed bug in filter (jugglinmike)
441
4420.10.6 / 2013-01-29
443==================
444
445* Added `$.contains(...)` (jugglinmike)
446* formatting cleanup (davidchambers)
447* Bug fix for `.children()` (jugglinmike & davidchambers)
448* Remove global `render` bug (wvl)
449
4500.10.5 / 2012-12-18
451===================
452
453* Fixed botched publish from 0.10.4 - changes should now be present
454
4550.10.4 / 2012-12-16
456==================
457
458* $.find should query descendants only (@jugglinmike)
459* Tighter underscore dependency
460
4610.10.3 / 2012-11-18
462===================
463
464* fixed outer html bug
465* Updated documentation for $(...).html() and $.html()
466
4670.10.2 / 2012-11-17
468===================
469
470* Added a toString() method (@bensheldon)
471* use `_.each` and `_.map` to simplify cheerio namesakes (@davidchambers)
472* Added filter() with tests and updated readme (@bensheldon & @davidchambers)
473* Added spaces between attributes rewritten by removeClass (@jos3000)
474* updated docs to remove reference to size method (@ironchefpython)
475* removed HTML tidy/pretty print from cheerio
476
4770.10.1 / 2012-10-04
478===================
479
480* Fixed regression, filtering with a context (#106)
481
4820.10.0 / 2012-09-24
483===================
484
485* Greatly simplified and reorganized the library, reducing the loc by 30%
486* Now supports mocha's test-coverage
487* Deprecated self-closing tags (HTML5 doesn't require them)
488* Fixed error thrown in removeClass(...) @robashton
489
4900.9.2 / 2012-08-10
491==================
492
493* added $(...).map(fn)
494* manipulation: refactor `makeCheerioArray`
495* make .removeClass() remove *all* occurrences (#64)
496
4970.9.1 / 2012-08-03
498==================
499
500* fixed bug causing options not to make it to the parser
501
5020.9.0 / 2012-07-24
503==================
504
505* Added node 8.x support
506* Removed node 4.x support
507* Add html(dom) support (@wvl)
508* fixed xss vulnerabilities on .attr(), .text(), & .html() (@benatkin, @FB55)
509* Rewrote tests into javascript, removing coffeescript dependency (@davidchambers)
510* Tons of cleanup (@davidchambers)
511
5120.8.3 / 2012-06-12
513==================
514
515* Fixed minor package regression (closes #60)
516
5170.8.2 / 2012-06-11
518==================
519
520* Now fails gracefully in cases that involve special chars, which is inline with jQuery (closes #59)
521* text() now decode special entities (closes #52)
522* updated travis.yml to test node 4.x
523
5240.8.1 / 2012-06-02
525==================
526
527* fixed regression where if you created an element, it would update the root
528* compatible with node 4.x (again)
529
5300.8.0 / 2012-05-27
531==================
532
533* Updated CSS parser to use FB55/CSSselect. Cheerio now supports most CSS3 psuedo selectors thanks to @FB55.
534* ignoreWhitespace now on by default again. See #55 for context.
535* Changed $(':root') to $.root(), cleaned up $.clone()
536* Support for .eq(i) thanks to @alexbardas
537* Removed support for node 0.4.x
538* Fixed memory leak where package.json was continually loaded
539* Tons more tests
540
5410.7.0 / 2012-04-08
542==================
543
544* Now testing with node v0.7.7
545* Added travis-ci integration
546* Replaced should.js with expect.js. Browser testing to come
547* Fixed spacing between attributes and their values
548* Added HTML tidy/pretty print
549* Exposed node-htmlparser2 parsing options
550* Revert .replaceWith(...) to be consistent with jQuery
551
5520.6.2 / 2012-02-12
553==================
554
555* Fixed .replaceWith(...) regression
556
5570.6.1 / 2012-02-12
558==================
559
560* Added .first(), .last(), and .clone() commands.
561* Option to parse using whitespace added to `.load`.
562* Many bug fixes to make cheerio more aligned with jQuery.
563* Added $(':root') to select the highest level element.
564
565Many thanks to the contributors that made this release happen: @ironchefpython and @siddMahen
566
5670.6.0 / 2012-02-07
568==================
569
570* *Important:* `$(...).html()` now returns inner HTML, which is in line with the jQuery spec
571* `$.html()` returns the full HTML string. `$.html([cheerioObject])` will return the outer(selected element's tag) and inner HTML of that object
572* Fixed bug that prevented HTML strings with depth (eg. `append('<ul><li><li></ul>')`) from getting `parent`, `next`, `prev` attributes.
573* Halted [htmlparser2](https://github.com/FB55/node-htmlparser) at v2.2.2 until single attributes bug gets fixed.
574
5750.5.1 / 2012-02-05
576==================
577
578* Fixed minor regression: $(...).text(fn) would fail
579
5800.5.1 / 2012-02-05
581==================
582
583* Fixed regression: HTML pages with comments would fail
584
5850.5.0 / 2012-02-04
586==================
587
588* Transitioned from Coffeescript back to Javascript
589* Parser now ignores whitespace
590* Fixed issue with double slashes on self-enclosing tags
591* Added boolean attributes to html rendering
592
5930.4.2 / 2012-01-16
594==================
595
596* Multiple selectors support: $('.apple, .orange'). Thanks @siddMahen!
597* Update package.json to always use latest cheerio-soupselect
598* Fix memory leak in index.js
599
6000.4.1 / 2011-12-19
601==================
602* Minor packaging changes to allow `make test` to work from npm installation
603
6040.4.0 / 2011-12-19
605==================
606
607* Rewrote all unit tests as cheerio transitioned from vows -> mocha
608* Internally, renderer.render -> render(...), parser.parse -> parse(...)
609* Append, prepend, html, before, after all work with only text (no tags)
610* Bugfix: Attributes can now be removed from script and style tags
611* Added yield as a single tag
612* Cheerio now compatible with node >=0.4.7
613
6140.3.2 / 2011-12-1
615=================
616
617* Fixed $(...).text(...) to work with "root" element
618
6190.3.1 / 2011-11-25
620==================
621
622* Now relying on cheerio-soupselect instead of node-soupselect
623* Removed all lingering htmlparser dependencies
624* parser now returns parent "root" element. Root now never needs to be updated when there is multiple roots. This fixes ongoing issues with before(...), after(...) and other manipulation functions
625* Added jQuery's $(...).replaceWith(...)
626
6270.3.0 / 2011-11-19
628==================
629
630* Now using htmlparser2 for parsing (2x speed increase, cleaner, actively developed)
631* Added benchmark directory for future speed tests
632* $('...').dom() was funky, so it was removed in favor of $('...').get(). $.dom() still works the same.
633* $.root now correctly static across all instances of $
634* Added a screencast
635
6360.2.2 / 2011-11-9
637=================
638
639* Traversing will select `<script>` and `<style>` tags (Closes Issue: #8)
640* .text(string) now working with empty elements (Closes Issue: #7)
641* Fixed before(...) & after(...) again if there is no parent (Closes Issue: #2)
642
6430.2.1 / 2011-11-5
644=================
645
646* Fixed before(...) & after(...) if there is no parent (Closes Issue: #2)
647* Comments now rendered correctly (Closes Issue: #5)
648
649< 0.2.0 / 2011-10-31
650====================
651
652* Initial release (untracked development)
653
\No newline at end of file