Skip to content

feat: support standalone HTML documents - #53

Open
xianjianlf2 wants to merge 2 commits into
firecrawl:mainfrom
xianjianlf2:feat/standalone-html
Open

feat: support standalone HTML documents#53
xianjianlf2 wants to merge 2 commits into
firecrawl:mainfrom
xianjianlf2:feat/standalone-html

Conversation

@xianjianlf2

@xianjianlf2 xianjianlf2 commented Aug 7, 2026

Copy link
Copy Markdown

Summary

Closes #52.

  • Add standalone HTML detection from <!doctype html> or an <html> root, including HTML exports saved with a .doc extension.
  • Reuse the EPUB HTML-to-model walker for headings, formatting, links, tables, lists, CSS visibility, and external images.
  • Treat HTML void elements such as unclosed <meta> and <img> as empty elements in the shared DOM parser.
  • Expose html / .html / .htm through the Rust, Node, Python, and WASM APIs and update docs/tests.
  • MHTML remains out of scope for this change.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --locked
  • npm test
  • python -m unittest discover -s python/tests
  • node --test wasm/test.mjs

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@xianjianlf2

Copy link
Copy Markdown
Author

Follow-up: synchronized node/package-lock.json so the CI npm ci step now succeeds.

Local validation after the follow-up commit:

  • npm ci --ignore-scripts
  • npm test (13/13)
  • cargo test --locked
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • Python and WASM binding tests

The upstream CI run is currently action_required, which requires a maintainer of firecrawl/anydoc to approve the fork workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: Support for HTML / MHTML files (e.g. Jira exports)

1 participant