v0.6.0: self-contained images, offline renderer, batch a11y
Sixth release. It makes converted Markdown self-contained, hardens the Markdown to PDF renderer against network and filesystem access, bounds the OCR pre-pass, and finishes a round of batch accessibility and localization work.
Highlights
Self-contained Markdown. pdf-to-md can embed extracted images as base64 data: URIs, so a single .md travels intact (API with_images, CLI --inline-images). GFM task lists are recognized behind an opt-in flag. (#372, #373, #172)
Offline, safer rendering. The Markdown to PDF renderer no longer fetches external resources and blocks network egress, WebSocket, popup, and file: escapes, so a hostile document cannot reach the network or the filesystem through Chromium. (#363, #369, #371)
Bounded OCR. MD_BRIDGE_OCR_MAX_PAGES caps how many pages the OCR pre-pass rasterizes, and MD_BRIDGE_OCR_PAGE_TIMEOUT (default 60s) bounds how long a single page may take. A timed-out page returns ocr_failed naming the page instead of pinning the worker. (#208, #364)
Batch accessibility and i18n. Keyboard reorder is discoverable through aria-describedby and a live region, replacing the deprecated aria-grabbed; toasts are keyboard-dismissable; and the batch and chrome strings are fully localized in en/pt/es. (#354, #355, #358)
Fixes
Content-Disposition is well-formed for any filename (#362), invalid options return 422 instead of crashing the handler (#361), a corrupt or non-PDF upload returns the error envelope (#360, #370), the success toast no longer fires over a failed batch (#353), removing a batch item mid-run aborts it (#357), a stale theme slug falls back to default (#356), the drop-zone highlight stops flickering (#359), and uploads are read once instead of buffered twice (#365).