Changes annotated with `⚠` are breaking. # 0.7.8 - Fixes a build error if compiled with the `simd` feature flag. See [y21/tl#60] - Fixes MDN-related doc comments ([y21/tl#51]) # 0.7.7 - Fixes a bug in the query selector parser that made it fail to parse values containing `:`. See [y21/tl#46](https://github.com/y21/tl/issues/46) and [y21/tl#47] for more details. # 0.7.6 - Fixes a build error if compiled with the `simd` feature flag. See [y21/tl#41](https://github.com/y21/tl/issues/41) for more details. - ⚠ In prior versions, `innerHTML()` actually had the behavior of `Element#outerHTML`. This was changed and `innerHTML` now correctly only returns the markup of its subnodes, and not the markup of the own node. - `outerHTML()` was added to nodes, which moves the old behavior to another function. - Added `children_mut()`, which allows mutating the subnodes of an HTML Tag. # 0.7.5 - Fixed a bug that caused the parser to parse closing tags incorrectly. See [y21/tl#37](https://github.com/y21/tl/issues/37) and [y21/tl#38](https://github.com/y21/tl/pull/38) for more details. # 0.7.4 - Restructure internals (mainly SIMD functions) - Add fuzzing targets for internals - Optimize stable parser (adds stable alternatives when the `simd` feature isn't set) # 0.7.3 - Fixed `HTMLTag::raw()` returning one byte less than it should have. See [y21/tl#31](https://github.com/y21/tl/issues/31). # 0.7.2 - Add `Attributes::contains(key)` to check if an attribute exists. - Add `Attributes::remove(key)` to remove an attribute. - Add `Attributes::remove_value(key)` to delete the value of a given attribute key. # 0.7.1 - Version bump in README.md # 0.7.0 > **Warning: This release contains breaking changes** - ⚠ Function signature of `Attributes::insert` has changed: - It now takes two generic parameters `K, V` instead of just one. Prior to this version, this meant that the key and value type had to match. See [y21/tl#27](https://github.com/y21/tl/pull/26) for more details. - Added a `TryFrom for Bytes` implementation for convenience to create owned `Bytes`. - Added `HTMLTag::boundaries` method for obtaining the start and end position of a tag in the source string. - Fixed a panic when source string abruptly ends with ``) is interpreted as `>` and causes the next `>` to be interpreted as a text node on its own. # 0.6.1 - Fixed an off-by-one error in the `QueryIterable` trait implementation for `HTMLTag` that caused query selectors on HTML tags to return one node less than they should. # 0.6.0 > **Warning: This release contains breaking changes** - ⚠ Removed deprecated method `VDom::find_node` - Alternative: use `VDom::nodes().iter().find(...)` instead - ⚠ `Attributes::get()` now returns a reference to `Bytes` instead of cloning. - Prior to this version, it wasn't necessary to return a reference as the `Bytes` type was just an immutable `&[u8]`. Now it can hold owned data. - ⚠ `HTMLTag::children()` no longer returns an iterator, and instead returns a wrapper struct around the children of the HTML tag. This wrapper struct makes it easy to obtain direct children of the tag (`Children::top()`), or all children (including their children, etc...) (`Children::all()`). - ⚠ `Node::children()` no longer returns an iterator (see above). - ⚠ `HTMLTag::name()` now returns a reference to `Bytes` instead of cloning (see above). - Ability to create/parse query selectors independent of any parser (`tl::parse_query_selector`) - Ability to reuse query selectors - Ability to apply query selectors on `HTMLTag`s (see [#18](https://github.com/y21/tl/issues/18)) - `queryselector` module is now public - `InnerNodeHandle` is now u32 - Remove unused `max_depth` parser option - Add convenience `PartialEq` and `PartialEq<[u8]>` impls for Bytes # 0.5.0 > **Warning: This release contains breaking changes** - Allow `Bytes` to store owned data through `Bytes::set()` - ⚠ The maximum length for `Bytes` is `u32::MAX` - ⚠ `tl::parse()` now returns `Result, ParseError>` - ⚠ `Attributes` fields are no longer public, instead use one of the provided methods - ⚠ `HTMLTag::inner_html()` now takes a `&Parser` and no longer directly returns the substring - Node mutations to the tag or any of its subnodes means `inner_html` needs to be recomputed - Consider using `HTMLTag::raw()` if you never mutate any nodes # 0.4.4 - Parse unquoted attribute values properly (``) [#12] - Parse valueless attributes properly (`