Releases: philss/floki
v0.35.4
Fixed
- Fix regression in the order of elements in
Floki.find/2
Pull requests
- Polymorphism on Finder.find by @ypconstante in #522
- Run all selector test with tuple list and html tree by @ypconstante in #523
- Bump fast_html from 2.2.0 to 2.3.0 by @dependabot in #530
- Reduce number of function call on traverse by @ypconstante in #531
- Optimize Floki.children by @ypconstante in #533
- Find without build html tree by @ypconstante in #534
- Bump credo from 1.7.3 to 1.7.4 by @dependabot in #535
- Optimize type selector by using pattern match by @ypconstante in #536
- Raw HTML code clean up by @ypconstante in #538
- Always return find elements in the correct order by @ypconstante in #540
- Find using descendant selector without html tree by @ypconstante in #537
- Release v0.35.4 by @philss in #543
Full Changelog: v0.35.3...v0.35.4
v0.35.3
This release has great performance improvements, thanks to the PRs
from @ypconstante!
Most of the main functions, such as Floki.raw_html/2 and Floki.find/2 are
faster and are using less memory. It's something like twice as fast, and half
usage of memory for find/2, for example.
Fixed
-
Add
:leexto Mix compilers. Fixes the build when running with dev version of Elixir.
Thanks @wojtekmach. -
Fix
Floki.raw_html/2when a tree using attributes as maps is given.
Thanks @SupaMic. -
Add a guard to
Floki.find/2so people can have a better error message when an
invalid input is given. Thanks @Hajto. -
Fix parsers to consider IO data as inputs. This may change in the next version
of Floki, as I plan to drop support for IO data.
Thanks @ypconstante.
Removed
- Remove outdated Gleam wrapper code. The external functions syntax in Gleam
has changed. So now
the wrapper is not needed anymore.
Thanks @michallepicki.
Pull requests
- Add :leex to Mix compilers by @wojtekmach in #502
- Update raw_html.ex to handle :attributes_as_maps option by @SupaMic in #498
- Bump benchee from 1.1.0 to 1.2.0 by @dependabot in #499
- Remove outdated gleam wrapper code by @michallepicki in #500
find/2input protection proposal. by @Hajto in #497- Bump ex_doc from 0.30.9 to 0.31.0 by @dependabot in #503
- Enable parse of IO data html by @ypconstante in #504
- Optimize RawHTML.build_attrs/2 by @ypconstante in #505
- Optimize parse_flag by @ypconstante in #506
- Use recursion instead of Enum.flat_map on find_selectors by @ypconstante in #508
- Optimize HTMLTree.build by @ypconstante in #511
- Always use optimal encoding function by @ypconstante in #512
- Bump credo from 1.7.1 to 1.7.2 by @dependabot in #513
- Optimize selectors matching by @ypconstante in #510
- Bump benchee from 1.2.0 to 1.3.0 by @dependabot in #514
- Use stack on Finder by @ypconstante in #518
- Call self_closing_tags only once on raw_html by @ypconstante in #517
- Optimize id matching by @ypconstante in #519
- Bump dialyxir from 1.4.2 to 1.4.3 by @dependabot in #516
- Include Elixir v1.16 in the build matrix by @philss in #521
- Bump credo from 1.7.2 to 1.7.3 by @dependabot in #520
- Bump ex_doc from 0.31.0 to 0.31.1 by @dependabot in #527
- Optimize leftpad on raw_html by @ypconstante in #526
- Fix pretty raw_html with encoded text by @ypconstante in #525
- Move data extraction for selector matching by @ypconstante in #524
- Improve benchmark files by @philss in #528
- Prepare release v0.35.3 by @philss in #529
New Contributors
- @SupaMic made their first contribution in #498
- @michallepicki made their first contribution in #500
- @Hajto made their first contribution in #497
- @ypconstante made their first contribution in #504
Full Changelog: v0.35.2...v0.35.3
v0.35.0
Added
-
Add support for parsing attributes as maps.
This makes
parse_document/2andparse_fragment/2accept the option
:attributes_as_mapsto change the behaviour and return attributes as
maps instead of lists of tuples.
The only parser that does not support it yet is thefast_html.
Changed
-
Drop support for Elixir v1.11.
-
Change the log level of parsing logger calls from "info" to "debug".
This will help to reduce the amount of noise in production apps.
Pull requests
- Remove override of
mix testtask by @philss in #465 - Remove unused functions from
floki_mochi_htmlby @philss in #466 - Add support for parsing attributes as maps by @philss in #467
- Bump html5ever from 0.14.3 to 0.15.0 by @dependabot in #468
- Update CI GH Actions by @philss in #471
- Bump jason from 1.4.0 to 1.4.1 by @dependabot in #470
- Bump ex_doc from 0.29.4 to 0.30.1 by @dependabot in #469
- Bump ex_doc from 0.30.1 to 0.30.2 by @dependabot in #472
- Bump ex_doc from 0.30.3 to 0.30.4 by @dependabot in #476
- Bump ex_doc from 0.30.4 to 0.30.5 by @dependabot in #477
- Bump ex_doc from 0.30.5 to 0.30.6 by @dependabot in #479
- Bump dialyxir from 1.3.0 to 1.4.1 by @dependabot in #480
- Bump earmark from 1.4.39 to 1.4.42 by @dependabot in #484
- Bump earmark from 1.4.42 to 1.4.43 by @dependabot in #485
- Bump earmark from 1.4.43 to 1.4.44 by @dependabot in #486
- Bump credo from 1.7.0 to 1.7.1 by @dependabot in #489
- Bump earmark from 1.4.44 to 1.4.46 by @dependabot in #490
- Change log level from "info" to "debug" by @philss in #488
Full Changelog: v0.34.3...v0.35.0
Official Changelog: https://hexdocs.pm/floki/changelog.html
v0.34.3
What's Changed
- Bump ex_doc from 0.29.1 to 0.29.2 by @dependabot in #449
- Bump ex_doc from 0.29.2 to 0.29.3 by @dependabot in #451
- Bump earmark from 1.4.36 to 1.4.37 by @dependabot in #450
- Bump ex_doc from 0.29.3 to 0.29.4 by @dependabot in #454
- Bump earmark from 1.4.37 to 1.4.38 by @dependabot in #456
- Bump dialyxir from 1.2.0 to 1.3.0 by @dependabot in #455
- Bump credo from 1.6.7 to 1.7.0 by @dependabot in #453
- Parse escaped colons in class names correctly by @viniciusmuller in #458
- Bump html5ever from 0.14.0 to 0.14.2 by @dependabot in #460
- Add
include_inputs?option to Floki.text by @viniciusmuller in #459 - Bump html5ever from 0.14.2 to 0.14.3 by @dependabot in #461
- Fix class selector with colon by @philss in #464
New Contributors
- @viniciusmuller made their first contribution in #458
Full Changelog: v0.34.2...v0.34.3
Official Changelog: https://github.com/philss/floki/blob/main/CHANGELOG.md
v0.34.2
What's Changed
- Bump earmark from 1.4.35 to 1.4.36 by @dependabot in #445
- Pass arguments to parser modules by @Kuret in #446
- Support splitting nodes while traversin by @martosaur in #447
New Contributors
- @Kuret made their first contribution in #446
- @martosaur made their first contribution in #447
Full Changelog: v0.34.1...v0.34.2
v0.34.1
What's Changed
- Add unused dependencies check step to CI by @antedeguemon in #435
- Remove Rust toolchain from CI by @philss in #436
- Fix dialyzer issues with Floki.text/1 by @davydog187 in #437
- Simplify versions - CI workflow by @philss in #439
- Bump ex_doc from 0.29.0 to 0.29.1 by @dependabot in #438
- Bump earmark from 1.4.33 to 1.4.34 by @dependabot in #440
- Fix pseudo-class ":not" selector parsing halting point by @philss in #442
- Bump earmark from 1.4.34 to 1.4.35 by @dependabot in #443
New Contributors
- @antedeguemon made their first contribution in #435
Full Changelog: v0.34.0...v0.34.1
v0.34.0
What's Changed
- Show retrieval of data attributes by @nathanl in #410
- Bump credo from 1.6.4 to 1.6.5 by @dependabot in #412
- Bump dialyxir from 1.1.0 to 1.2.0 by @dependabot in #413
- Bump credo from 1.6.5 to 1.6.6 by @dependabot in #414
- Bump earmark from 1.4.26 to 1.4.27 by @dependabot in #415
- Bump ex_doc from 0.28.4 to 0.28.5 by @dependabot in #416
- user configurable self closing tags by @inoas in #417
- Require Elixir ~> 1.11 and update CI config by @philss in #419
- Bump credo from 1.6.6 to 1.6.7 by @dependabot in #418
- Bump jason from 1.3.0 to 1.4.0 by @dependabot in #420
- Allow attribute values to not be escaped by @juanazam in #422
- Bump earmark from 1.4.27 to 1.4.29 by @dependabot in #423
- Bump earmark from 1.4.29 to 1.4.30 by @dependabot in #424
- Bump html5ever to v0.14.0 by @Benjamin-Philip in #425
- Resolve undefined check rules for Credo by @kianmeng in #427
- Bump ex_doc from 0.28.5 to 0.28.6 by @dependabot in #428
- Bump ex_doc from 0.28.6 to 0.29.0 by @dependabot in #429
- Bump earmark from 1.4.30 to 1.4.31 by @dependabot in #430
- Fix traverse_and_update/3 spec by @WLSF in #431
- Bump earmark from 1.4.31 to 1.4.32 by @dependabot in #432
- Bump earmark from 1.4.32 to 1.4.33 by @dependabot in #433
- Remove
html_entitiesdependency and use built-in entities module by @philss in #434
New Contributors
- @inoas made their first contribution in #417
- @juanazam made their first contribution in #422
- @Benjamin-Philip made their first contribution in #425
Full Changelog: v0.33.1...v0.34.0
Official Changelog*: https://hexdocs.pm/floki/changelog.html
v0.33.0
What's Changed
- Require Elixir ~> 1.10 by @philss in #397
- Bump html5ever from 0.11.0 to 0.12.0 by @dependabot in #389
- Bump earmark from 1.4.23 to 1.4.24 by @dependabot in #398
- remove case of 2 tuple of :pi by @derek-zhou in #400
- Bump ex_doc from 0.28.3 to 0.28.4 by @dependabot in #402
- Bump html5ever from 0.12.0 to 0.13.0 by @dependabot in #401
- Bump earmark from 1.4.24 to 1.4.25 by @dependabot in #403
- Minor stuff I changed while reading by @hissssst in #404
- Bump earmark from 1.4.25 to 1.4.26 by @dependabot in #406
- Bump html5ever from 0.13.0 to 0.13.1 by @dependabot in #407
- Added case insentive variation of fl-contains by @nuno84 in #409
New Contributors
- @derek-zhou made their first contribution in #400
- @hissssst made their first contribution in #404
- @nuno84 made their first contribution in #409
Full Changelog: https://hexdocs.pm/floki/changelog.html
Full Diff: v0.32.1...v0.33.0
v0.32.1
What's Changed
- Bump ex_doc from 0.25.3 to 0.25.5 by @dependabot in #365
- Update CI actions to run without docker by @WLSF in #366
- Bump earmark from 1.4.16 to 1.4.17 by @dependabot in #367
- Bump earmark from 1.4.17 to 1.4.18 by @dependabot in #368
- Bump credo from 1.5.6 to 1.6.1 by @dependabot in #372
- Bump ex_doc from 0.25.5 to 0.26.0 by @dependabot in #373
- Bump html5ever from 0.10.0 to 0.10.1 by @dependabot in #374
- Bump earmark from 1.4.18 to 1.4.19 by @dependabot in #375
- Bump html5ever from 0.10.1 to 0.11.0 by @dependabot in #376
- Bump jason from 1.2.2 to 1.3.0 by @dependabot in #379
- Bump earmark from 1.4.19 to 1.4.20 by @dependabot in #380
- Bump credo from 1.6.1 to 1.6.2 by @dependabot in #381
- Bump fast_html from 2.0.4 to 2.0.5 by @dependabot in #377
- Bump credo from 1.6.2 to 1.6.3 by @dependabot in #384
- Allow root nodes to be selected using pseudo-classes by @rzane in #386
- Bump benchee from 1.0.1 to 1.1.0 by @dependabot in #388
- Bump credo from 1.6.3 to 1.6.4 by @dependabot in #387
- Bump earmark from 1.4.20 to 1.4.21 by @dependabot in #390
- Bump ex_doc from 0.26.0 to 0.28.2 by @dependabot in #392
- Bump earmark from 1.4.21 to 1.4.23 by @dependabot in #394
- Bump ex_doc from 0.28.2 to 0.28.3 by @dependabot in #396
New Contributors
Full Changelog: https://hexdocs.pm/floki/changelog.html
Diff: v0.32.0...v0.32.1
PS: this was published on 2022-03-24. I forgot to release here on GitHub.
v0.32.0
Added
- Add an HTML tokenizer written in Elixir - this still experimental and it's not stable API yet.
- Add support for HTML IDs containing periods in the selectors - thanks @Hugo-Hache
- Add support for case-insensitive CSS attribute selectors - thanks @fcapovilla
- Add the
:rootpseudo-class selector - thanks @fcapovilla
Full Changelog: v0.31.0...v0.32.0
This is the first release using GitHub releases. The project will keep using the CHANGELOG.md file for documenting the changes - see it from our HexDocs page here: https://hexdocs.pm/floki/changelog.html
Happy hacking! :)