Skip to content

1.2.0

Latest

Choose a tag to compare

@odrobnik odrobnik released this 17 Jun 09:11
· 68 commits to main since this release
3076cdf

Headline: full Apple Pages (iWork) support — read and write.

Pages (iWork)

  • Extract .pages documents to Markdown — headings, inline code, links, frozen cell values, and implicit numeric-column alignment.
  • Render Markdown → .pages in both Single File and Package (directory bundle) forms, with byte-parity round-tripping via a faithful Snappy compressor and preserved ZIP metadata.
  • Native iWork (TST) tables: per-cell fill, alignment, borders, vertical alignment, headers, and in-cell bold/italic.
  • Native page-bottom footnotes, embedded inline images, clickable hyperlinks, a dedicated code-block style + inline-code highlight, block quotes with the HTML-style left bar, nested-list indentation, and comfortable body line spacing.
  • Typed iWork wire models generated from vendored protobuf schemas, and a cold-synthesis object-graph framework driving the writer.

DOCX

  • Emit native Word footnotes (MD→DOCX), round-tripping the reader.
  • Embed real inline images (MD→DOCX).
  • Preserve strikethrough formatting in both body text and headers.

HTML / Markdown

  • Replace the hand-rolled HTML→Markdown renderer with the swift-markdown AST.
  • Switch HTML parsing to XMLKit.
  • Add a raw-HTML pass-through option and complete footnote rendering.
  • Add HTML→Markdown core-element and round-trip test coverage.

Core & robustness

  • Centralize PNG/JPEG image-dimension parsing in SwiftTextCore (skips JPEG fill bytes when scanning for SOF markers).
  • Guard oversized protobuf/IWA lengths against trapping on corrupt input.
  • Trait-guard ArgumentParser and ZIPFoundation so trait-specifying consumers can prune them.

Full changelog: 1.1.9...1.2.0