0.17.0 / 2014-06-10 ================== 0.16.0 / 2014-05-08 ================== * fix `make bench` (David Chambers) * makefile: add release-* targets (David Chambers) * alphabetize dependencies (David Chambers) * Rewrite `data` internals with caching behavior (Mike Pennisi) * Fence .val example as js (Kevin Sawicki) * Fixed typos. Deleted trailing whitespace from test/render.js (Nattaphoom Ch) * Fix manipulation APIs with removed elements (kpdecker) * Perform manual string parsing for hasClass (kpdecker) * Fix existing element removal (kpdecker) * update render tests (Felix Böhm) * fixed cheerio path (Felix Böhm) * use `entities.escape` for attribute values (Felix Böhm) * bump entities version (Felix Böhm) * remove lowerCaseTags option from readme (Felix Böhm) * added test case for .html in xmlMode (fb55) * render xml in `html()` when `xmlMode: true` (fb55) * use a map for booleanAttributes (fb55) * update singleTags, use utils.isTag (fb55) * update travis badge URL (Felix Böhm) * use typeof instead of _.isString and _.isNumber (fb55) * use Array.isArray instead of _.isArray (fb55) * replace _.isFunction with typeof (fb55) * removed unnecessary error message (fb55) * decode entities in htmlparser2 (fb55) * pass options object to CSSselect (fb55) 0.15.0 / 2014-04-08 ================== * Update callbacks to pass element per docs (@kpdecker) * preserve options (@fb55) * Use SVG travis badge (@t3chnoboy) * only use static requires (@fb55) * Optimize manipulation methods (@kpdecker) * Optimize add and remove class cases (@kpdecker) * accept dom of DomHandler to cheerio.load (@nleush) * added parentsUntil method (@finspin) * Add performance optimization and bug fix `empty` method (@kpdecker) 0.14.0 / 2014-04-01 ================== * call encodeXML and directly expose decodeHTML (@fb55) * use latest htmlparser2 and entities versions (@fb55) * Deprecate `$.fn.toArray` (@jugglinmike) * Implement `$.fn.get` (@jugglinmike) * .replaceWith now replaces all selected elements. (@xavi-) * Correct arguments for 'replaceWith' callback (@jugglinmike) * switch to lodash (@fb55) * update to entities@0.5.0 (@fb55) * Fix attr when $ collection contains text modules (@kpdecker) * Update to latest version of expect.js (@jugglinmike) * Remove nodes from their previous structures (@jugglinmike) * Update render.js (@stevenvachon) * CDATA test (@stevenvachon) * only ever one child index for cdata (@stevenvachon) * don't loop through cdata children array (@stevenvachon) * proper rendering of CDATA (@stevenvachon) * Add cheerio-only bench option (@kpdecker) * Avoid delete operations (@kpdecker) * Add independent html benchmark (@kpdecker) * Cache tag check in render (@kpdecker) * Simplify attribute rendering step (@kpdecker) * Add html rendering bench case (@kpdecker) * Remove unnecessary check from removeAttr (@kpdecker) * Remove unnecessary encoding step for attrs (@kpdecker) * Add test for removeAttr+attr on boolean attributes (@kpdecker) * Add single element benchmark case (@kpdecker) * Optimize filter with selector (@kpdecker) * Fix passing context as dom node (@alfred-nsh) * Fix bug in `nextUntil` (@jugglinmike) * Fix bug in `nextAll` (@jugglinmike) * Implement `selector` argument of `next` method (@jugglinmike) * Fix bug in `prevUntil` (@jugglinmike) * Implement `selector` argument of `prev` method (@jugglinmike) * Fix bug in `prevAll` (@jugglinmike) * Fix bug in `siblings` (@jugglinmike) * Avoid unnecessary indexOf from toggleClass (@kpdecker) * Use strict equality rather than falsy check in eq (@kpdecker) * Add benchmark coverage for all $ APIs (@kpdecker) * Optimize filter Cheerio intermediate creation (@kpdecker) * Optimize siblings cheerio instance creation (@kpdecker) * Optimize identity cases for first/last/eq (@kpdecker) * Use domEach for traversal (@kpdecker) * Inline children lookup in find (@kpdecker) * Use domEach in data accessor (@kpdecker) * Avoid cheerio creation in add/remove/toggleClass (@kpdecker) * Implement getAttr local helper (@kpdecker) 0.13.1 / 2014-01-07 ================== * Fix select with context in Cheerio function (@jugglinmike) * Remove unecessary DOM maintenance logic (@jugglinmike) * Deprecate support for node 0.6 0.13.0 / 2013-12-30 ================== * Remove "root" node (@jugglinmike) * Fix bug in `prevAll`, `prev`, `nextAll`, `next`, `prevUntil`, `nextUntil` (@jugglinmike) * Fix `replaceWith` method (@jugglinmike) * added nextUntil() and prevUntil() (@finspin) * Remove internal `connect` function (@jugglinmike) * Rename `Cheerio#make` to document private status (@jugginmike) * Remove extraneous call to `_.uniq` (@jugglinmike) * Use CSSselect library directly (@jugglinmike) * Run CI against Node v0.11 as an allowed failure (@jugginmike) * Correct bug in `Cheerio#parents` (@jugglinmike) * Implement `$.fn.end` (@jugginmike) * Ignore colons inside of url(.*) when parsing css (@Meekohi) * Introduce rudimentary benchmark suite (@jugglinmike) * Update HtmlParser2 version (@jugglinmike) * Correct inconsistency in `$.fn.map` (@jugglinmike) * fixed traversing tests (@finspin) * Simplify `make` method (@jugglinmike) * Avoid shadowing instance methods from arrays (@jugglinmike) 0.12.4 / 2013-11-12 ================== * Coerce JSON values returned by `data` (@jugglinmike) * issue #284: when rendering HTML, use original data attributes (@Trott) * Introduce JSHint for automated code linting (@jugglinmike) * Prevent `find` from returning duplicate elements (@jugglinmike) * Implement function signature of `replaceWith` (@jugglinmike) * Implement function signature of `before` (@jugglinmike) * Implement function signature of `after` (@jugglinmike) * Implement function signature of `append`/`prepend` (@jugglinmike) * Extend iteration methods to accept nodes (@jugglinmike) * Improve `removeClass` (@jugglinmike) * Complete function signature of `addClass` (@jugglinmike) * Fix bug in `removeClass` (@jugglinmike) * Improve contributing.md (@jugglinmike) * Fix and document .css() (@jugglinmike) 0.12.3 / 2013-10-04 =================== * Add .toggleClass() function (@cyberthom) * Add contributing guidelines (@jugglinmike) * Fix bug in `siblings` (@jugglinmike) * Correct the implementation `filter` and `is` (@jugglinmike) * add .data() function (@andi-neck) * add .css() (@yields) * Implements contents() (@jlep) 0.12.2 / 2013-09-04 ================== * Correct implementation of `$.fn.text` (@jugglinmike) * Refactor Cheerio array creation (@jugglinmike) * Extend manipulation methods to accept Arrays (@jugglinmike) * support .attr(attributeName, function(index, attr)) (@xiaohwan) 0.12.1 / 2013-07-30 ================== * Correct behavior of `Cheerio#parents` (@jugglinmike) * Double quotes inside attributes kills HTML (@khoomeister) * Making next({}) and prev({}) return empty object (@absentTelegraph) * Implement $.parseHTML (@jugglinmike) * Correct bug in jQuery.fn.closest (@jugglinmike) * Correct behavior of $.fn.val on 'option' elements (@jugglinmike) 0.12.0 / 2013-06-09 =================== * Breaking Change: Changed context from parent to the actual passed one (@swissmanu) * Fixed: jquery checkbox val behavior (@jhubble) * Added: output xml with $.xml() (@Maciek416) * Bumped: htmlparser2 to 3.1.1 * Fixed: bug in attr(key, val) on empty objects (@farhadi) * Added: prevAll, nextAll (@lessmind) * Fixed: Safety check in parents and closest (@zero21xxx) * Added: .is(sel) (@zero21xxx) 0.11.0 / 2013-04-22 ================== * Added: .closest() (@jeremy-dentel) * Added: .parents() (@zero21xxx) * Added: .val() (@rschmukler & @leahciMic) * Added: Travis support for node 0.10.0 (@jeremy-dentel) * Fixed: .find() if no selector (@davidchambers) * Fixed: Propagate syntax errors caused by invalid selectors (@davidchambers) 0.10.8 / 2013-03-11 ================== * Add slice method (SBoudrias) 0.10.7 / 2013-02-10 ================== * Code & doc cleanup (davidchambers) * Fixed bug in filter (jugglinmike) 0.10.6 / 2013-01-29 ================== * Added `$.contains(...)` (jugglinmike) * formatting cleanup (davidchambers) * Bug fix for `.children()` (jugglinmike & davidchambers) * Remove global `render` bug (wvl) 0.10.5 / 2012-12-18 =================== * Fixed botched publish from 0.10.4 - changes should now be present 0.10.4 / 2012-12-16 ================== * $.find should query descendants only (@jugglinmike) * Tighter underscore dependency 0.10.3 / 2012-11-18 =================== * fixed outer html bug * Updated documentation for $(...).html() and $.html() 0.10.2 / 2012-11-17 =================== * Added a toString() method (@bensheldon) * use `_.each` and `_.map` to simplify cheerio namesakes (@davidchambers) * Added filter() with tests and updated readme (@bensheldon & @davidchambers) * Added spaces between attributes rewritten by removeClass (@jos3000) * updated docs to remove reference to size method (@ironchefpython) * removed tidy from cheerio 0.10.1 / 2012-10-04 =================== * Fixed regression, filtering with a context (#106) 0.10.0 / 2012-09-24 =================== * Greatly simplified and reorganized the library, reducing the loc by 30% * Now supports mocha's test-coverage * Deprecated self-closing tags (HTML5 doesn't require them) * Fixed error thrown in removeClass(...) @robashton 0.9.2 / 2012-08-10 ================== * added $(...).map(fn) * manipulation: refactor `makeCheerioArray` * make .removeClass() remove *all* occurrences (#64) 0.9.1 / 2012-08-03 ================== * fixed bug causing options not to make it to the parser 0.9.0 / 2012-07-24 ================== * Added node 8.x support * Removed node 4.x support * Add html(dom) support (@wvl) * fixed xss vulnerabilities on .attr(), .text(), & .html() (@benatkin, @FB55) * Rewrote tests into javascript, removing coffeescript dependency (@davidchambers) * Tons of cleanup (@davidchambers) 0.8.3 / 2012-06-12 ================== * Fixed minor package regression (closes #60) 0.8.2 / 2012-06-11 ================== * Now fails gracefully in cases that involve special chars, which is inline with jQuery (closes #59) * text() now decode special entities (closes #52) * updated travis.yml to test node 4.x 0.8.1 / 2012-06-02 ================== * fixed regression where if you created an element, it would update the root * compatible with node 4.x (again) 0.8.0 / 2012-05-27 ================== * Updated CSS parser to use FB55/CSSselect. Cheerio now supports most CSS3 psuedo selectors thanks to @FB55. * ignoreWhitespace now on by default again. See #55 for context. * Changed $(':root') to $.root(), cleaned up $.clone() * Support for .eq(i) thanks to @alexbardas * Removed support for node 0.4.x * Fixed memory leak where package.json was continually loaded * Tons more tests 0.7.0 / 2012-04-08 ================== * Now testing with node v0.7.7 * Added travis-ci integration * Replaced should.js with expect.js. Browser testing to come * Fixed spacing between attributes and their values * Added HTML pretty print * Exposed node-htmlparser2 parsing options * Revert .replaceWith(...) to be consistent with jQuery 0.6.2 / 2012-02-12 ================== * Fixed .replaceWith(...) regression 0.6.1 / 2012-02-12 ================== * Added .first(), .last(), and .clone() commands. * Option to parse using whitespace added to `.load`. * Many bug fixes to make cheerio more aligned with jQuery. * Added $(':root') to select the highest level element. Many thanks to the contributors that made this release happen: @ironchefpython and @siddMahen 0.6.0 / 2012-02-07 ================== * *Important:* `$(...).html()` now returns inner HTML, which is in line with the jQuery spec * `$.html()` returns the full HTML string. `$.html([cheerioObject])` will return the outer(selected element's tag) and inner HTML of that object * Fixed bug that prevented HTML strings with depth (eg. `append('')`) from getting `parent`, `next`, `prev` attributes. * Halted [htmlparser2](https://github.com/FB55/node-htmlparser) at v2.2.2 until single attributes bug gets fixed. 0.5.1 / 2012-02-05 ================== * Fixed minor regression: $(...).text(fn) would fail 0.5.1 / 2012-02-05 ================== * Fixed regression: HTML pages with comments would fail 0.5.0 / 2012-02-04 ================== * Transitioned from Coffeescript back to Javascript * Parser now ignores whitespace * Fixed issue with double slashes on self-enclosing tags * Added boolean attributes to html rendering 0.4.2 / 2012-01-16 ================== * Multiple selectors support: $('.apple, .orange'). Thanks @siddMahen! * Update package.json to always use latest cheerio-soupselect * Fix memory leak in index.js 0.4.1 / 2011-12-19 ================== * Minor packaging changes to allow `make test` to work from npm installation 0.4.0 / 2011-12-19 ================== * Rewrote all unit tests as cheerio transitioned from vows -> mocha * Internally, renderer.render -> render(...), parser.parse -> parse(...) * Append, prepend, html, before, after all work with only text (no tags) * Bugfix: Attributes can now be removed from script and style tags * Added yield as a single tag * Cheerio now compatible with node >=0.4.7 0.3.2 / 2011-12-1 ================= * Fixed $(...).text(...) to work with "root" element 0.3.1 / 2011-11-25 ================== * Now relying on cheerio-soupselect instead of node-soupselect * Removed all lingering htmlparser dependencies * 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 * Added jQuery's $(...).replaceWith(...) 0.3.0 / 2011-11-19 ================== * Now using htmlparser2 for parsing (2x speed increase, cleaner, actively developed) * Added benchmark directory for future speed tests * $('...').dom() was funky, so it was removed in favor of $('...').get(). $.dom() still works the same. * $.root now correctly static across all instances of $ * Added a screencast 0.2.2 / 2011-11-9 ================= * Traversing will select `