Skip to content

Releases: Nolane-x/markitdown-2ways

MarkItDown 2Ways v1.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 01:58
12926e3

MarkItDown 2Ways v1.0.0

MarkItDown 2Ways v1.0.0 freezes the H1-H33 preservation-first bidirectional contract.

Highlights

  • 17 native format families with explicit bounded mutation authority.
  • 12 derived semantic surfaces with explicit native_writeback=false.
  • Evidence-driven DocumentIR, typed edits and capability reporting.
  • Source/native ownership revalidation and fail-closed mutation.
  • Canonical IR serialization with a machine-readable v1 compatibility corpus.
  • H31 adversarial capability hardening.
  • H32 golden compatibility court.
  • H33 deterministic engineering budgets.
  • Python 3.10-3.13 package/OCR CI coverage.

Native families

Text/Markdown, CSV, JSON, XML, HTML, IPYNB, EPUB, ZIP, PDF, PNG, JPEG, MP3, MSG, XLS, XLSX, PPTX and DOCX.

Derived surfaces

Wikipedia, Bing SERP, remote RSS/Atom, YouTube, Azure Document Intelligence, Azure Content Understanding, AudioConverter, ImageConverter, Outlook MSG converter, PdfConverter, XlsConverter and XlsxConverter.

Compatibility

The product contract is docs/twoways-v1-contract.json. The serialized IR schema remains MarkItDown2WaysDocument@0.1.0; product version 1.0.0 and IR schema version are intentionally separate compatibility axes.

Distribution

This release publishes GitHub wheel/sdist artifacts for this fork. It does not automatically publish or overwrite the upstream markitdown project on PyPI.

Upstream

MarkItDown 2Ways is derived from Microsoft MarkItDown and retains upstream license and attribution notices.

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.

MarkItDown 2Ways v0.2.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 11:57
fa89797

MarkItDown 2Ways v0.2.0

Phase E adds conservative native round trips for proven-simple DOCX and PPTX table cells while preserving the fail-closed fidelity model established in v0.1.0.

Included

  • identity Markdown tables can emit deterministic update_table_cells edits for changed coordinates only
  • table-level semantic/native-locator preconditions plus per-cell old_text stale-write evidence
  • DOCX simple table-cell text patching through existing native text carriers
  • PPTX simple table-cell text patching through existing DrawingML text carriers
  • semantic readback and native-target preservation verification for touched tables
  • fail-closed handling for merged/spanned cells, nested tables, multi-paragraph cells, ambiguous carriers, structural/style/layout mutations, and charts
  • hardening against Markdown boundary-whitespace loss, foreign local-name namespace spoofing, and mixed Transitional/Strict OOXML table namespaces

Verification

Release target tree 00a42aa66061ecbb27617fe2d2391935b7d5bacf is byte-identical to the synthetic PR merge candidate validated by GitHub Actions.

  • pre-commit: PASS
  • Python 3.10: 704 passed, 33 skipped, 0 failed
  • Python 3.11: 704 passed, 33 skipped, 0 failed
  • Python 3.12: 704 passed, 33 skipped, 0 failed
  • Python 3.13: 704 passed, 33 skipped, 0 failed
  • OCR matrix on Python 3.10–3.13: PASS

Scope

This remains a bounded two-way document layer, not a general Office editor. Table structure, style/layout, merged/spanned cell mutation, chart mutation, and unsupported complex native edits remain read-only or fail closed.

This is a fork-specific GitHub release tag. It does not replace or publish over the upstream markitdown PyPI package/version identity.

MarkItDown 2Ways v0.1.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 09:53
f9e38cc

MarkItDown 2Ways v0.1.0

First bounded GitHub release of the MarkItDown 2Ways layer in this fork.

Included

  • deterministic/versioned DocumentIR with provenance, resources, native locators and typed edit preconditions
  • clean + identity Markdown projection/import with deterministic manifests and fail-closed identity checks
  • PPTX round trips for compatible text and picture alt-text edits while preserving unsupported/native structures
  • DOCX round trips for compatible body/header/footer/hyperlink text and picture alt-text edits
  • source/package locks, OOXML safety limits, relationship validation, namespace authority and untouched-subtree/package verification
  • TWOWAYS.md quickstart and fidelity/safety boundaries

Verification

Release target tree 901cb8e7e067a915803952e850e7846d07841d2f is byte-identical to the PR merge candidate validated by GitHub Actions.

  • pre-commit: PASS
  • full packages/markitdown suite on Python 3.10: 667 passed, 33 skipped
  • full packages/markitdown suite on Python 3.11: 667 passed, 33 skipped
  • full packages/markitdown suite on Python 3.12: 667 passed, 33 skipped
  • full packages/markitdown suite on Python 3.13: 667 passed, 33 skipped
  • OCR package matrix on Python 3.10–3.13: PASS

Scope

This release remains intentionally focused on Core IR, Markdown, PPTX and DOCX. Unsupported mutations fail closed; this does not open a broader Office/workflow/platform phase.

This is a fork-specific GitHub release tag. It does not replace or publish over the upstream markitdown PyPI package/version identity.