fix(xlsx): preserve cell hyperlinks

SE
5d ago
+154-3

Summary

XLSX worksheet cell
- plain text when a hyperlink relationship is present
+ linked text using the worksheet relationship target

Closes #192. Resolve worksheet hyperlink relationships and render linked cell content using the existing document link model.

Evidence

  • Before: an XLSX cell displaying Firecrawl docs converted as plain text, while the equivalent ODS cell became [Firecrawl docs](https://docs.firecrawl.dev).
  • After: the regression test verifies external worksheet relationship URLs and in-sheet locations become cell links.
  • cargo test -p anydoc --locked --offline: 287 unit tests passed; integration tests 2 + 1 passed; 9 snapshot tests passed, 1 ignored; doc tests 0.
  • cargo fmt --all -- --check: passed.

Merge Danger

Door: Two-way; the change can be reverted in one commit.

Blast Radius: Narrow; only XLSX cell hyperlinks affect Markdown output.


Summary by cubic

Fixes #192: preserves XLSX cell hyperlinks so linked cell content renders as a link instead of plain text when the worksheet is converted.

  • Resolves worksheet relationships for external hyperlink targets and location attributes for in-sheet anchors, mapping them onto the existing document link model.
  • Wraps hyperlinked cell content in Inline::Link when the cell has a resolvable target; cells without targets keep their plain text, and in-sheet links render only when the target cell exists.
  • Adds regression tests covering external URLs, in-sheet locations, and rendered target anchors.