Hickory: parse HTML into Clojure data structures.
- #98:
as-hiccup converts the element after an empty script or style element (@jacobemcken) - #94:
parse accepts a String, File or Path without reflection and throws on other input (@erdos) - Bump jsoup to 1.22.2
- #92: Suppress the reflection warning in
parse
- Add
parent and ancestor selectors - Fix
find-in-text inside a child selector
- Remove the quoin dependency
- Split class names on any whitespace
- Fix ClojureScript advanced compilation
- Move to clj-commons:
org.clj-commons/hickory - Parse deeply nested HTML without a stack overflow
- Support Node.js in ClojureScript
- Bump jsoup to 1.15.2
Thanks to Ricardo J. Méndez for the following updates.
- Removed dependency on cljx, since it was deprecated in June 2015.
- Converted all files and conditionals to cljc.
- Moved tests to cljs.test with doo, since cemerick.test was deprecated over a year ago.
- Updated Clojure and ClojureScript dependencies to avoid conflicts.
- Updated JSoup to 1.9.2, which should bring improved parsing performance.
- Updated JSoup to version 1.8.3. This version of JSoup contains bug fixes, but slightly changes the way it
handles HTML: some parses and output might have different case than before. HTML is still case-insensitive,
of course, but Hickory minor version has been increased just in case. API and semantics are otherwise unchanged.
- Fixed project dependencies so ClojureScript is moved to a dev-dependency.
- Minor bug fix to accommodate ClojureScript's new type hinting support.
- Updates the Clojurescript version to use the latest version of Clojurescript (0.0-1934).
- Added
has-child and has-descendant selectors. Be careful with has-descendant, as it must do a full subtree search on each node, which is not fast.
- Now works in Clojurescript as well, huge thanks to Julien Eluard for doing the heavy lifting on this.
- Reorganized parts of the API into more granular namespaces for better organization.
- Added functions to convert between Hiccup and Hickory format; note that this conversion is not always exact or roundtripable, and can cause a full HTML reparse.
- Added new selector,
element-child, which selects element nodes that are the child of another element node. - Numerous bug fixes and improvements.
- Adds a number of new selectors and selector combinators, including
find-in-text, precede-adjacent, follow-adjacent, precede and follow.
- Adds the
hickory.select namespace with many helpful functions for searching through hickory-format HTML documents for specific nodes.
- Provides a more helpful error message when hickory-to-html has an error. Now requires Clojure 1.4.
- Fixes a bug where hickory-to-html was not html-escaping the values of tag attributes.
- Fixes a bug where hickory-to-html was improperly html-escaping the contents of script/style tags.
- hickory-to-html now properly escapes text nodes
- text nodes will now preserve whitespace correctly
- Adds a second parsed data format, explained in the README. To support this, the API for
parse and
parse-fragment has been changed to allow their return values to be
passed to functions as-hiccup or as-hickory to determine the
final format. Also added are zippers for both Hiccup and Hickory
formats.