Skip to content

Bump html-to-markdown-rs from 3.2.6 to 3.3.3#121

Open
dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot/cargo/html-to-markdown-rs-3.3.3
Open

Bump html-to-markdown-rs from 3.2.6 to 3.3.3#121
dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot/cargo/html-to-markdown-rs-3.3.3

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Apr 23, 2026

Bumps html-to-markdown-rs from 3.2.6 to 3.3.3.

Release notes

Sourced from html-to-markdown-rs's releases.

v3.3.3

Fixed

  • Python enum KeyError (#324) — ConversionOptions() with default enums no longer crashes; PyO3 enum fields are passed directly instead of broken str() + map lookup.
  • Ruby Magnus binding — fixed 65 compilation errors: funcall API, visitor bridge args, Vec conversion, optional flattening, sanitized field serde round-trip.
  • Elixir .formatter.exs — 120-char line length, generated code passes mix format --check-formatted.
  • Unused deps — removed serde_json from Node and WASM binding crates.
  • Checkstyle — excluded test_apps/ from pre-commit checkstyle hook.

Full Changelog: kreuzberg-dev/html-to-markdown@v3.3.2...v3.3.3

v3.3.2

Fixed

  • Elixir visitor bridge — async thread-based visitor protocol (rustler 0.37).
  • Elixir NIF rustler 0.37 — replaced all removed APIs.
  • Elixir type conversions — fixed double-optional wrapping.
  • Elixir formatting — 120-char .formatter.exs.
  • Java checkstylemaven-checkstyle-plugin with 120-char config.
  • Ruby Rakefile — Bundler 4 compatibility.
  • C# VisitResult.Continuenew VisitResult.Continue().
  • Node convert export — restored missing function.

Full Changelog: kreuzberg-dev/html-to-markdown@v3.3.0...v3.3.2

v3.3.0

[3.3.0] - 2026-04-23

Added

  • exclude_selectors option — CSS selector-based element exclusion. Unlike strip_tags (which removes the wrapper but keeps children), excluded elements and all descendants are dropped entirely. Supports any CSS selector: .class, #id, [attribute], compound selectors. Works in both markdown and plain text output modes.
  • CLI flags--preserve-tags, --skip-images, --max-depth for full ConversionOptions parity.
  • Visitor pattern for all bindings (#314, #313) — restored visitor support across Python, TypeScript, Ruby, PHP, Go, Java, C#, Elixir, R, WASM, and C FFI.
  • R visitor support — added visitor callbacks for the R binding.
  • E2E test fixtures — 78 new fixtures for 100% ConversionOptions field coverage (35/35 fields). Added fixtures for exclude_selectors, ConversionResult.tables, and ConversionResult.warnings.
  • Ruby RBS type stubs — auto-generated via alef from the Rust IR, including VERSION constant. Gemspec now includes sig/**/*.
  • Alef pre-commit hookalef-verify hook added to .pre-commit-config.yaml to check generated code freshness. CI installs alef v0.5.3 binary.

Fixed

  • <h1> inside <header> not exported (#321) — top-level <header> elements were unconditionally dropped during preprocessing; now only <header> with navigation hints (e.g. class="site-header", role="navigation") is removed.
  • PreprocessingPreset not wired into preprocessing logic — the preset field on PreprocessingOptions was defined but never checked. Now Minimal/Standard/Aggressive presets have distinct behavior.
  • remove_forms flag was dead code<form> elements are now dropped when remove_forms: true and preset is Standard or Aggressive.
  • Aggressive preset — now drops navigation-hinted elements of any tag type, <noscript> elements, and noise-hinted elements (cookie banners, ad containers).
  • Python NodeContent type — binding wrapper now implements Default, Serialize, Deserialize via forwarding to core type, fixing compilation when DocumentNode (which contains NodeContent) derives these traits.
  • Python dict[str, Any] for data enumsNodeContent, AnnotationKind, VisitResult now use TypedDicts with Literal discriminators instead of untyped dicts.
  • Python __init__.py exports — all public types now exported from the package.
  • ImageMetadata.dimensions — tuple type (u32, u32) correctly maps to Vec<u32> / number[] / []uint32 in all bindings via serde round-trip conversion.
  • FFI doc comments — multi-line doc strings on VTable struct fields now properly prefixed with /// on every line (was breaking cargo fmt).
  • FFI optional parameters — visitor methods with optional string params (title, id, lang) correctly generate Option<&str> instead of &str.

... (truncated)

Changelog

Sourced from html-to-markdown-rs's changelog.

[3.3.3] - 2026-04-23

Fixed

  • Python enum KeyError (#324) — ConversionOptions() with default enums no longer crashes; PyO3 enum fields are passed directly instead of broken str() + map lookup.
  • Ruby Magnus binding — fixed 65 compilation errors: funcall API, visitor bridge args, Vec conversion, optional flattening, sanitized field serde round-trip.
  • Elixir .formatter.exs — 120-char line length, generated code now passes mix format --check-formatted.
  • Unused deps — removed serde_json from Node and WASM binding crates.
  • Checkstyle — excluded test_apps/ from pre-commit checkstyle hook.

[3.3.2] - 2026-04-23

Fixed

  • Elixir visitor bridge — implemented async thread-based visitor protocol using rustler::thread::spawn + OwnedEnv::send_and_clear + mpsc channels, replacing the impossible synchronous env.call() approach.
  • Elixir NIF rustler 0.37 — replaced removed SavedTerm, is_nil(), Pid::spawn_monitor, .encode() APIs with 0.37-compatible equivalents.
  • Elixir type conversions — fixed double-optional wrapping (map(Some)) and ambiguous From impl in generated _from methods.
  • Java checkstyle — added maven-checkstyle-plugin to pom.xml pointing to project checkstyle.xml (120-char limit), so mvn checkstyle:check uses our config instead of default Sun checks.
  • Ruby Rakefile — explicit Bundler::GemHelper.install_tasks name: for Bundler 4 compatibility.

[3.3.1] - 2026-04-23

Fixed

  • Java checkstyle — switched to 120-char line limit, added Spotless auto-formatting with Eclipse JDT formatter, added final params and javadoc to all generated code.
  • Elixir list type collisionNodeContent::List variant no longer redefines Elixir's built-in list/0 type (now emits list_variant).
  • Elixir NIF missing serde — added serde with derive feature as direct dependency to the NIF crate.
  • C# VisitResult.Continue — default visitor methods now use new VisitResult.Continue() instead of non-invocable VisitResult.Continue().
  • Node convert export — restored the missing #[napi] pub fn convert function dropped during binding regeneration.
  • Ruby CI — updated Bundler from 2.7.2 to 4.0.3 to match Gemfile.lock.

[3.3.0] - 2026-04-23

Added

  • exclude_selectors option — CSS selector-based element exclusion. Unlike strip_tags (which removes the wrapper but keeps children), excluded elements and all descendants are dropped entirely. Supports any CSS selector: .class, #id, [attribute], compound selectors. Works in both markdown and plain text output modes.
  • CLI flags--preserve-tags, --skip-images, --max-depth for full ConversionOptions parity.
  • Visitor pattern for all bindings (#314, #313) — restored visitor support across Python, TypeScript, Ruby, PHP, Go, Java, C#, Elixir, R, WASM, and C FFI.
  • R visitor support — added visitor callbacks for the R binding.
  • E2E test fixtures — 78 new fixtures for 100% ConversionOptions field coverage (35/35 fields). Added fixtures for exclude_selectors, ConversionResult.tables, and ConversionResult.warnings.
  • Ruby RBS type stubs — auto-generated via alef from the Rust IR, including VERSION constant. Gemspec now includes sig/**/*.
  • Alef pre-commit hookalef-verify hook added to .pre-commit-config.yaml to check generated code freshness. CI installs alef v0.5.3 binary.

Fixed

  • <h1> inside <header> not exported (#321) — top-level <header> elements were unconditionally dropped during preprocessing; now only <header> with navigation hints (e.g. class="site-header", role="navigation") is removed.
  • PreprocessingPreset not wired into preprocessing logic — the preset field on PreprocessingOptions was defined but never checked. Now Minimal/Standard/Aggressive presets have distinct behavior.
  • remove_forms flag was dead code<form> elements are now dropped when remove_forms: true and preset is Standard or Aggressive.
  • Aggressive preset — now drops navigation-hinted elements of any tag type, <noscript> elements, and noise-hinted elements (cookie banners, ad containers).
  • Python NodeContent type — binding wrapper now implements Default, Serialize, Deserialize via forwarding to core type, fixing compilation when DocumentNode (which contains NodeContent) derives these traits.

... (truncated)

Commits
  • 3134ef5 chore: bump version to v3.3.3
  • e9f16ed fix: remove unused serde_json deps, exclude test_apps from checkstyle, fix #3...
  • cfc6b43 fix: regenerate bindings, 120-char Elixir formatter, Java checkstyle plugin
  • 5b3f3ae fix(elixir): format generated Elixir files
  • a6cdab3 chore: bump version to v3.3.2
  • 7c459ab fix: Rakefile Bundler 4 compat, Elixir NIF rustler 0.37 compat
  • 6a04842 chore: bump version to v3.3.1
  • b728183 fix(python): enable abi3 stable ABI for Python 3.14+ support (#322)
  • fe90b19 chore: bump version to v3.3.0
  • 5868a63 fix: regenerate bindings, resolve all prek hook failures
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [html-to-markdown-rs](https://github.com/kreuzberg-dev/html-to-markdown) from 3.2.6 to 3.3.3.
- [Release notes](https://github.com/kreuzberg-dev/html-to-markdown/releases)
- [Changelog](https://github.com/kreuzberg-dev/html-to-markdown/blob/main/CHANGELOG.md)
- [Commits](kreuzberg-dev/html-to-markdown@v3.2.6...v3.3.3)

---
updated-dependencies:
- dependency-name: html-to-markdown-rs
  dependency-version: 3.3.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Apr 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants