Skip to content

Centralize configured publication exports in Rust#58

Merged
Iktahana merged 3 commits into
mainfrom
fix/publishable-configured-exports
Jul 23, 2026
Merged

Centralize configured publication exports in Rust#58
Iktahana merged 3 commits into
mainfrom
fix/publishable-configured-exports

Conversation

@Iktahana

Copy link
Copy Markdown
Contributor

Summary:

  • Move export-profile resolution, page-size data, DOCX and EPUB generation, and PDF print-profile logic into Rust.
  • Reduce JavaScript packages to thin adapters and remove duplicate generators.
  • Add Open XML SDK, LibreOffice, EPUBCheck, PDF.js, and Nu HTML contracts.
  • Gate contracts on every platform job and releases on complete CI.

Local verification:

  • Node unit tests, typecheck, coverage, and publishable consumer install passed.
  • Rust 54 unit plus 8 platform tests, fmt, clippy, and coverage gates passed.
  • Python 19 tests at 100% coverage; Android dual-ABI build and Kotlin coverage passed.
  • Contracts passed: 65 DOCX plus 9 specified Word-limit rejections, 7 LibreOffice imports, 74 PDF, 7 EPUB, and 3 HTML.

Rust crate release: mdi-core 2.0.4. npm patch versions are computed only after complete CI succeeds on main.

@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.29862% with 55 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
mdi-core/src/publication_profile.rs 96.67% 30 Missing ⚠️
mdi-core/src/lib.rs 96.31% 16 Missing ⚠️
mdi-core/src/docx.rs 98.77% 8 Missing ⚠️
nodejs/packages/mdast-util-mdi/src/source.ts 96.77% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@Iktahana
Iktahana marked this pull request as ready for review July 23, 2026 06:08
@Iktahana
Iktahana merged commit 53e66f5 into main Jul 23, 2026
16 checks passed
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.

1 participant