v2.2.0

adbar/trafilaturav2.2.0Jul 31, 2026by adbar

AI Summary

This release significantly improves text extraction accuracy and recall through a revamped recovery sequence and targeted boilerplate pruning. It also addresses numerous formatting bugs and enhances Markdown output handling across various elements like tables, lists, and metadata.

Key Highlights

  • Revamped text recovery and extraction sequence for better overall recall and forum extraction.
  • Targeted boilerplate pruning to reduce over-extraction of unwanted content.
  • Improved handling of text in sub-elements and robust processing for nested elements.
  • Enhanced Markdown output, including better list item handling and metadata quoting.
  • Fixed numerous formatting bugs related to tables, titles, and inline formatting.

New Features

  • Revamped text recovery and extraction sequence
  • Targeted boilerplate pruning logic
  • Improved handling of text in sub-elements
  • Enhanced Markdown output formatting (quotes, links, lists)
  • More accurate table processing

Full Release Notes

Major changes:
- Revamped text recovery and extraction sequence: better recall overall and better extraction on forums by @adbar (#881)
- More targeted boilerplate pruning to reduce over-extraction by @adbar (#887)
- More robust tests and better processing for nested elements by @adbar (#866)
- Better handling of text in sub-elements by @adbar (#869)

Fixes:
- Improve title extraction by @novucs (#848)
- Restore text inside nobr-tags by @kod-kristoff (#826)
- Keep space after inline formatting in Markdown list items by @cycsmail (#865)
- Keep list items whose only content is a link by @cycsmail (#867)
- Keep Yoast FAQ block question headers by @cycsmail (#868)
- Address output formatting bugs by @adbar (#870)
- Further improve subelem processing, mostly math, code and Markdown by @adbar (#872)
- More accurate table processing by @adbar (#874)
- Quote metadata values to keep the Markdown header valid YAML by @gaoflow (#875)
- Escape angle brackets in Markdown link destinations by @gaoflow (#877)
- Match image extensions case-insensitively in is_image_file by @lntutor (#888)
- Keep sup and sub boundaries in Markdown output by @igorsaevets (#891)

Maintenance:
- Review function arguments and add warnings by @adbar (#876)
- Code hardening and bug roundup by @adbar (#863)
- Add tests and a page on testing by @cycsmail (#873)
- Add example for adapting element lists in Python by @cycsmail (#878)
- Select ruff rules explicitly so CI is deterministic by @igorsaevets (#892)
- Run the lint step under bash so failures are not discarded on Windows by @igorsaevets (#893)

**Full Changelog**: https://github.com/adbar/trafilatura/compare/v2.1.0...v2.2.0