v1.11.0
What's Changed
- docs(examples): add drop-in CI workflows for the conversion-quality gate by @thomas-villani in #195
- fix(examples): correctness fixes in the vcs-converter example by @thomas-villani in #196
- docs(examples): consolidate the vcs-converter docs into one README by @thomas-villani in #198
- fix(html): only collect direct child cells in table rows by @santhreal in #199
- fix(dokuwiki): keep whole-line del/sub/sup as inline by @santhreal in #200
- fix(org): require space after list marker by @santhreal in #201
- fix(json): infer 1/0 as integers not booleans by @santhreal in #202
- test(roundtrip): generative round-trip fuzzing across the format matrix by @santhreal in #204
- fix(asciidoc): treat //// as block comment delimiter by @santhreal in #203
- fix(textile): handle rendering empty table without rows by @santhreal in #205
- fix(dokuwiki): tolerate a self-closing tag in the inline-markup check by @thomas-villani in #213
- docs(roadmap): record the fuzzer as the fourth instrument, choose the next batch by @thomas-villani in #214
- docs(changelog): credit santhreal's batch under Unreleased by @thomas-villani in #215
- test(roundtrip): give each format its own example budget, run the fuzzer on one leg by @thomas-villani in #216
- fix(render): always raise All2MdError when a renderer fails by @thomas-villani in #217
- fix(odf): unwrap nested links instead of emitting invalid ODF by @thomas-villani in #218
- test(roundtrip): move the generative gates off the per-PR run by @thomas-villani in #230
- fix(transforms): reset heading index when reusing GenerateTocTransform with set_ids_if_missing=True by @santhreal in #219
- fix(yaml): handle non-string dictionary keys and sort key comparisons in YamlParser by @santhreal in #220
- fix(markdown): tolerate null or non-dictionary attrs in MarkdownToAstConverter token processing by @santhreal in #221
- fix(pptx): clamp nesting_level to prevent list stack underflow in PptxRenderer by @santhreal in #222
- fix(mediawiki): include pipe separator between table cell attributes and text content by @santhreal in #223
- fix(ast): raise context-rich ValueError for invalid integer section range specs in parse_section_ranges by @santhreal in #224
- fix(markdown): calculate table columns across all rows in MarkdownRenderer by @santhreal in #226
- fix(bbcode): support depth-aware tag matching for nested block tags in BBCodeParser by @santhreal in #227
- fix(asciidoc): round-trip nested lists by @thomas-villani in #229
- fix(render): lay out table grids once, in the base renderer by @thomas-villani in #231
- fix(rtf): flatten nested lists before handing them to pyth by @thomas-villani in #232
- fix(parsers): decide str-is-path-or-content once, and fail loudly on a miss by @thomas-villani in #234
- test(roundtrip): correct four invariant-gap reasons and file the rest by @thomas-villani in #241
- fix(rst): clamp heading level to 6 for deeply nested sections in RestructuredTextParser by @santhreal in #225
- ci(fuzz): ask Hypothesis where the time goes by @thomas-villani in #242
- ci(omnidocbench): gate PDF fidelity against external ground truth by @santhreal in #243
- fix(benchmarks): lock the OmniDocBench cache portably by @thomas-villani in #244
- ci: test on Windows for Python 3.13 by @thomas-villani in #245
- fix(omnidocbench): require an identifiable block before crediting its position by @thomas-villani in #246
- ci: lint and type-check benchmarks/ by @thomas-villani in #247
- fix(org): stop deleting block delimiters above the first heading by @thomas-villani in #248
- fix(omnidocbench): locate blocks instead of pairing them, and split out structure by @thomas-villani in #254
- fix(asciidoc): end a table row after the last cell, not after a delimiter by @thomas-villani in #249
- fix(asciidoc): render one heading marker per level by @thomas-villani in #250
- fix(rst): give every heading level its own identity by @thomas-villani in #251
- fix(asciidoc,org): keep the number an ordered list starts at by @thomas-villani in #252
- fix(asciidoc,rst,org): carry a table caption in both directions by @thomas-villani in #253
- test(omnidocbench): record the bootstrap baseline by @thomas-villani in #255
- chore(release): prepare v1.11.0 by @thomas-villani in #258
- test(omnidocbench): record what the corpus actually contains by @thomas-villani in #259
- fix(docx): clamp heading levels above 6 by @santhreal in #262
- fix(odt): clamp heading outline levels above 6 by @santhreal in #263
- fix(ast): preserve non-text nodes during inline consolidation by @santhreal in #264
- fix(html): preserve table cell colspan, rowspan, and alignment by @santhreal in #266
- fix(epub): walk nested TOC tuples when building headings by @santhreal in #267
- fix(openapi): ignore null path items in paths mapping by @santhreal in #260
- fix(openapi): handle null components sections by @thomas-villani in #269
- fix(pdf): honor escaped pipes in markdown table row fallback by @santhreal in #268
- docs(changelog): record the eight fixes landed after release prep by @thomas-villani in #270
- fix(api): warn on unrecognized kwargs in to_ast and from_ast by @thomas-villani in #274
- fix(markdown): default comment_mode to html so comments stay comments by @thomas-villani in #276
- fix(omnidocbench): measure the scan shape by area, and stop blaming the parser for it by @thomas-villani in #277
- Updated changelog date for v1.11.0 release by @thomas-villani in #278
Full Changelog: v1.10.1...v1.11.0