What’s New

markitdown v0.1.0

v0.1.0
Added
  • Organized dependencies into optional feature groups installable with pip install markitdown[all]
  • Plugin-based architecture allowing 3rd-party developers to add functionality
  • Support for EPUB format
  • Option to keep data URIs in converted Markdown
  • CLI options to override MIME type, extension, and charset
Changed
  • All conversions are now performed in-memory without temporary files
  • convert_stream() now requires a binary file-like object instead of text file-like objects
  • DocumentConverter class interface changed to read from file-like streams rather than file paths
Fixed
  • Skip generating markdown links in pre blocks
  • Fix UnboundLocalError in MarkItDown._convert
  • Implement retry logic for YouTube transcript fetching and fix URL decoding issue
  • Add support for PPTX shape groups to not miss slide content
  • Make extensions unique in MarkItDown's convert methods
  • Print and log better exceptions when file conversions fail
  • Fixed deepcopy failure when passing llm_client
  • Sort PPTX shapes to be parsed in top-to-bottom, left-to-right order
  • Fix exiftool in well-known paths
  • Switch from puremagic to magika for file type detection
  • Minimize guesses when guesses are compatible
  • Fix string formatting in FileConversionException error message
  • Handle unsupported plot types in PPTX
  • Have magika read from the stream
Overview

Version 0.1.0 (previously 0.1.0a6) is a large release, bringing many improvements over the previous 0.0.2 version.

High-level changes include:

  • Organized dependencies into feature groups — install only the converters you need, or get everything with pip install markitdown[all]
  • A new plugin-based architecture, allowing 3rd-party developers to add functionality to MarkItDown (see the sample plugin)
  • All conversions are performed in-memory — no more temporary files
  • Support for new formats including EPUB
  • Option to keep data URIs in converted Markdown
  • Option to override MIME type, extension, and charset in the command-line interface (useful when reading input from a pipe or stdin)
Breaking changes
  • As noted above, dependencies are now organized into optional feature groups. Use pip install markitdown[all] for backward-compatible behavior.
  • convert_stream() now requires a binary file-like object (e.g., a file opened in binary mode, or an io.BytesIO object). This is a breaking change from the previous version, which also accepted text file-like objects, like io.StringIO.
  • The DocumentConverter class interface has changed to read from file-like streams rather than file paths. No temporary files are created anymore. If you are the maintainer of a plugin or custom DocumentConverter, you likely need to update your code. Otherwise, if you're only using the MarkItDown class or CLI (as in these examples), you should not need to change anything.  
Detailed list of contributions
New Contributors

Full Changelog: https://github.com/microsoft/markitdown/compare/v0.0.2...v0.1.0

View original