Headline: full Apple Pages (iWork) support — read and write.
Pages (iWork)
- Extract
.pagesdocuments to Markdown — headings, inline code, links, frozen cell values, and implicit numeric-column alignment. - Render Markdown →
.pagesin 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
ArgumentParserandZIPFoundationso trait-specifying consumers can prune them.
Full changelog: 1.1.9...1.2.0