Skip to content

Fullbleed 2.5.9: inline wrapping and spacing

Choose a tag to compare

@krflol krflol released this 06 Oct 10:31
3661284

Update: Fullbleed 2.5.10 corrects extra wrapping in tracked flex and inline-block labels introduced by 2.5.9. Upgrade to retain the inline-overlap fix with the corrected intrinsic widths.

Fullbleed 2.5.9 fixes wrapped text overlapping its prefix in paragraphs such as Edit <code>print.css</code> to change the paper size.... Following words now use the remaining line width, collapsed spaces are handled at line edges, and built-in proportional fonts keep their correct word advances.

python -m pip install --upgrade "fullbleed==2.5.9"

Try the Markdown to PDF starter for editable print CSS, bundled fonts, a two-page example, and a runnable ZIP. Its 69 checks pass on both Windows and Linux.

Rust users can update the fullbleed crate to 2.5.9. Node.js and .NET bindings have separate release gates and retain their existing engine versions.

The correction handles space-separated horizontal, left-to-right text with collapsed whitespace. Bidi, vertical, preserved-whitespace, and no-wrap runs retain their existing paragraph path. The core gains no dependency or public API.

Upgrade note: Affected PDFs can change line breaks, pagination, and hashes. Review saved baselines. The internal extractor can separate positioned words with newlines; normalize whitespace for complete-phrase checks.

All 48 inline PDF cases pass on Linux and Windows, with independent text and word-bound checks and retained native/PDFium previews. The same script rejects 40 styled cases in public 2.5.8 while its eight plain-text controls pass. Fixed-template cases use an explicitly sufficient variable slot and check visual positions and single-copy text; their content-stream order is not claimed to equal reading order.

The 48 PDFs are byte-identical across Linux and Windows. Preview pixels differ for the eight non-embedded Helvetica/Times cases; the other 40 cases have matching preview pixels. Retained evidence includes both platforms.

Validation includes the Rust and Python suites, the Rust 1.85 packaged-crate consumer, 86 CSS fixtures, golden documents, designed examples, actual notebook execution, and PDF responses from FastAPI, Flask, and Django. Public package hashes and fresh Python/Rust consumers were verified. The dedicated PDF/VT validator remains unconfigured; this release does not establish PDF/VT conformance.

See PR #44 and the release runbook. Attached distributions and evidence include checksums and source provenance.