Skip to content

Add PDFKit-backed PDF converter, update docs, tests, and CI matrix - #17

Merged
etherlink-intern merged 1 commit into
mainfrom
codex/identify-barriers-to-shipping-document-formats
Jun 2, 2026
Merged

etherlink-intern merged 1 commit into
mainfrom
codex/identify-barriers-to-shipping-document-formats

Conversation

@etherlink-intern

Copy link
Copy Markdown
Owner

Motivation

  • Implement embedded-text PDF extraction on Apple platforms so PDFs return Markdown when PDFKit is available.
  • Keep the documentation and README in sync with the new PDF capability and document remaining work (OCR fallback and cross-platform support).
  • Run tests and smoke tests across macOS and Linux in CI while making PDF tests conditional on PDFKit availability.

Description

  • Add PDFConverter (compiled behind #if canImport(PDFKit)) that extracts embedded page text, returns Markdown, and emits pageCount and extractedTextPageCount metadata.
  • Register PDFConverter in MarkItDown.defaultConverters so PDFs are handled by the default pipeline.
  • Add PDF fixtures (Tests/Fixtures/sample.pdf, Tests/Fixtures/empty.pdf) and an expected output (Tests/Expected/sample.md) and extend tests to conditionally exercise PDF conversion when PDFKit is available.
  • Update Scripts/smoke-test.sh to run or expect PDF behavior based on PDFKit availability, update documentation in README.md and Docs/NativeConverterBackends.md, and expand the GitHub Actions workflow to a matrix with macos-15 and ubuntu-latest.

Testing

  • Ran the unit test suite with swift test on macOS where PDFKit is available and the PDF tests were exercised and passed.
  • Ran the CLI fixture smoke tests with Scripts/smoke-test.sh on macOS (PDF cases exercised) and on Ubuntu (PDF cases asserted as unsupported), and the smoke tests passed.
  • CI is configured to run the same swift test and Scripts/smoke-test.sh checks across the new OS matrix via the updated workflow.

Codex Task

@etherlink-intern
etherlink-intern merged commit c07d8d6 into main Jun 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant