Skip to content

cli-v0.20.2

Choose a tag to compare

@superdoc-bot superdoc-bot released this 26 Jun 18:34

Table Rendering Fidelity

  • Compound borders β€” Double, triple, and thinThick variants now paint with measured band widths and interior gridlines matching Word's nested rectangle rendering.
  • Border conflict resolution β€” Shared cell edges resolve by weight, style, and color per ECMA-376 spec; no doubling or dropped lines.
  • Table styles β€” Base tcPr shading surfaces as the wholeTable conditional layer; firstRow/lastRow/firstColumn/lastColumn and banding resolve by grid column.
  • Percent-width tables β€” Now honor authored grid proportions instead of content-sizing; total width and column splits match Word.
  • Merged cells β€” vMerge-only rows retain one-line height; interior row boundaries paint continuously across both rows' extents.
  • Outset/inset borders β€” Render as separate-borders bevel (raised frame, sunken cells) instead of heavy black.

Fixes

  • Image rendering inside textbox β€” Images display correctly within textbox shapes.
  • Toolbar with mixed fonts β€” Shows blank instead of falling back to Arial when multiple fonts are selected.
  • Font picker dropdown β€” Opens on input click.
  • CJK wrapping after numeric β€” Breaks correctly after numeric runs in long-word line breaking.
  • Heading style conflicts β€” Resolves localized Word styles to inherit from built-in style definitions.
  • Nested SDT rendering β€” Structured document tags render when nested.
  • Tracked changes in editing mode β€” Typing remains plain text, not marked as change.
  • Tracked rewrite corruption β€” Large single tracked mutations now use coarse whole-range rewrite to prevent artifact anchors in projections.

Improvements

  • Document diffing β€” Enhanced algorithms for change detection.

Breaking Changes

Removed unstable operations from Document API:

  • blocks.split β€” Split paragraph at text offset
  • blocks.merge β€” Merge adjacent paragraphs
  • blocks.move β€” Move paragraph within story
  • lists.getState, lists.apply, lists.continue, lists.restart, lists.remove β€” Older list mutation operations
  • tables.moveRow β€” Move row within table
  • paragraphs.setMarkRunProps β€” Mark run properties on paragraph

These operations were not production-ready. Use core insert/delete/replace operations instead.