unstale

pypi / markitdown

markitdown

What changed in markitdown 0.1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

2 breaking5 new APIs and options2 performance2 behavior and defaults36 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.0 on npm

markitdown 0.147 changes

Breaking changes 2

  • LLM API failures now raise an error instead of being handled gracefully.

    0.1.8release notes

  • Rejects UNC and Windows device paths.

    0.1.8release notes

New APIs and options 5

  • Allows Content Understanding conversion from stdin.

    0.1.8release notes

  • Adds MARKITDOWN_CU_ENDPOINT support for CLI Content Understanding conversion.

    0.1.8release notes

  • Adds MARKITDOWN_DOCINTEL_ENDPOINT support for CLI Document Intelligence conversion.

    0.1.8release notes

  • Adds an Azure Content Understanding converter.

    0.1.6release notes

  • Adds an OCR layer service for embedded images and PDF scans.

    0.1.6release notes

Performance 2

  • Value lookups in PPTX chart conversion avoid O(n^2) behavior.

    0.1.7release notes

  • Fixes O(n) memory growth in PDF conversion by calling page.close().

    0.1.6release notes

Behavior and default changes 2

Fixes and other changes 36

  • Avoids incorrect ASCII charset guesses for long files and avoids splitting UTF-8 characters during charset detection.

    0.1.8release notes

  • Buffers stdin before format detection on Windows.

    0.1.8release notes

  • Supports extended content-disposition filenames during conversion.

    0.1.8release notes

  • Strips UTF-8 BOMs, skips blank rows before table construction, preserves all columns by matching the widest row, and handles CR-only line endings.

    0.1.8release notes

  • Escapes pipes and newlines in CSV values when generating Markdown tables.

    0.1.8release notes

  • Ignores malformed styles missing a type, preserves namespaces when repairing stylesheets, handles inconsistent ZIP filename casing, and preserves underlined text.

    0.1.8release notes

  • Safely extracts metadata when node values are missing or nested, forwards conversion options to the HTML converter, and resolves percent-encoded manifest hrefs to ZIP entries.

    0.1.8release notes

  • Corrects the underleftarrow macro and math italic h mapping.

    0.1.8release notes

  • Handles a missing exiftool binary and decodes its JSON output as UTF-8.

    0.1.8release notes

  • Correctly handles percent-encoded Windows drive paths in file URIs.

    0.1.8release notes

  • Preserves strikethrough semantics from strike elements and line-through CSS.

    0.1.8release notes

  • Preserves percent-encoded octets in href paths.

    0.1.8release notes

  • Prefers data-src over a placeholder data URI in img src.

    0.1.8release notes

  • Truncates uppercase data image URIs and normalizes data URI parameter case.

    0.1.8release notes

  • Strips UTF-8 BOMs so notebooks are not emitted as raw JSON and preserves leading hash characters in heading titles.

    0.1.8release notes

  • Catches UnicodeDecodeError when checking non-decodable content.

    0.1.8release notes

  • Corrects the --list-plugins help text to reference --use-plugins.

    0.1.8release notes

  • Handles math runs without text children, missing oMath elements, and unknown math functions without crashing; also corrects accent templates.

    0.1.8release notes

  • Reads string properties saved in non-Unicode formats and improves ANSI decoding for Japanese code pages and padded strings.

    0.1.8release notes

  • Treats a top coordinate of zero as a value rather than as missing.

    0.1.8release notes

  • Tolerates missing shape and notes text, ignores empty LLM captions, avoids crashes for chart titles without text frames, and omits headings for empty slide titles or absent notes.

    0.1.8release notes

  • Falls back to plain text when RSS item content triggers RecursionError.

    0.1.8release notes

  • Preserves Atom XHTML and complete feed content, treats Atom text and summaries as plain text, supports namespace-prefixed feeds, removes layout whitespace from titles, and resolves relative links.

    0.1.8release notes

  • Initializes parsed text to prevent UnboundLocalError when processing RSS content.

    0.1.8release notes

  • Preserves strikethrough semantics for strike elements, line-through CSS, and Word w:dstrike.

    0.1.8release notes

  • Does not convert an undecodable file to the word 'None'.

    0.1.8release notes

  • Preserves whitespace underlines.

    0.1.8release notes

  • Handles URI schemes case-insensitively.

    0.1.8release notes

  • Avoids rendering a '# None' heading when a Wikipedia page has no title.

    0.1.8release notes

  • Tolerates legacy showZeroes sheet views.

    0.1.8release notes

  • Handles missing title metadata and falls back to HTML when no video content is extracted.

    0.1.8release notes

  • Forwards kwargs to nested conversions, preserves entries with duplicate filenames, and renders '(unknown)' rather than literal 'None' when a stream has no source information.

    0.1.8release notes

  • Corrects invalid LaTeX macros for mu, nu, tau, and down-arrow.

    0.1.7release notes

  • Fixes bugs in OMML templates.

    0.1.7release notes

  • Handles PPTX SVG images that do not have a rasterized fallback.

    0.1.7release notes

  • Handles deeply nested HTML that triggers RecursionError.

    0.1.6release notes