Skip to content

MarkItDown 2Ways v0.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 23:41
a160eca

MarkItDown 2Ways v0.3.0 adds the first conservative XLSX bidirectional round-trip tranche and a typed capability/diagnostic kernel.

Highlights:

  • deterministic writable/read-only/derived capability decisions and coverage reports
  • safe update_sheet_cells typed edits for existing scalar XLSX cells
  • source-preserving SpreadsheetML reader, sparse patch writer, semantic readback, and native/package preservation verification
  • identity Markdown round trips only for lossless simple string-cell regions
  • no-op XLSX writes remain byte-identical
  • differential output validation with openpyxl plus a real XLSX corpus smoke test
  • hardened workbook/sheet authority: unique sheet IDs, relationship IDs, and worksheet targets
  • bounded merged-range processing and sparse-grid materialization to fail closed on resource-amplifying inputs
  • conflicting native value containers fail closed and patched value carriers preserve native XML ordering

XLSX tranche-one boundary:

  • formula cells are read/preserved but read-only
  • merged and rich-text cells are read-only
  • row/column/sheet structural edits are unsupported
  • styles, charts, drawings, formulas, merges, and other unsupported native structures are preserved rather than rebuilt
  • this is not a claim of full Excel editing or full XLSX feature parity

Validation before merge:

  • Python 3.10, 3.11, 3.12, and 3.13 package suites: green
  • 804 passed, 33 skipped on the final tested merge tree
  • OCR matrix Python 3.10–3.13: green
  • pre-commit: green
  • actual merge tree is byte-identical to the GitHub synthetic merge tree tested by CI

This is a fork-specific GitHub release; it does not replace the upstream MarkItDown PyPI package identity.