What's Changed
- CI: one test binary per crate, nextest, line tables only by @aiongg in #1642
- fix: keep package temp files owner-writable (SonarCloud rust:S2612) by @dylanmtaylor in #1658
- web: let the browser zoom the page (SonarCloud Web:S7926) by @dylanmtaylor in #1641
- packaging: harden shell scripts (SonarCloud S7688/S7679/S7682/S131) by @dylanmtaylor in #1640
- CI: shared gate workflow; FreeBSD nightly and on release by @aiongg in #1645
- Engine: fixed creation date for the print test's exports (flaky test) by @aiongg in #1680
- i18n: missing translations are reported, never a failure by @aiongg in #1677
- ci(sonar): stop cancelling main-branch runs so coverage is published by @dylanmtaylor in #1685
- Autoflow: fill the pages that follow before adding pages at the end by @marcoarnulfo in #1629
- Fix slice panics in the PDF post-passes on malformed page trees and metadata (#1591) by @MarekSpodBiedry in #1615
- Align towards/away from spine on parent-page folios by page side (#1577) by @MarekSpodBiedry in #1614
- IDML export: write the graphic placed in a table cell (#1551) by @MarekSpodBiedry in #1613
- Cursors: paint the tool cursors in the window on Wayland, so they keep the system size (#1544) by @MarekSpodBiedry in #1612
- Decode UTF-16 plain text files by BOM on import by @Silvertree2010 in #1609
- ui: the Discord button widens to fit its label instead of spilling out by @devius in #1608
- Skip control words and symbols used as RTF \uN fallbacks by @Silvertree2010 in #1607
- Drop out-of-range RTF \uN values instead of wrapping them by @Silvertree2010 in #1396
- A type size outside 0.1 to 1296 pt is refused by @Hamza0101 in #1574
- Save and export dialogs start in the document's folder, or the last one used (#1653) by @marcoarnulfo in #1683
- Keep non-finite IDML numbers out of imported documents by @Silvertree2010 in #1675
- Reload ICC profiles loaded in Color Settings at start-up by @Silvertree2010 in #1669
- Make the start screen scrollable on short windows (#1655) by @MarekSpodBiedry in #1667
- find: search and change text inside table cells in document scope (#1624) by @MarekSpodBiedry in #1665
- idml: explicit zero cell edge weights hide the default table border (#1623) by @MarekSpodBiedry in #1664
- Align: a click on one of several selected objects makes it the key object by @marcoarnulfo in #1661
- Regression tests for #248, #249 and #329 by @skylartaylor in #1631
- Clamp polygon side count before narrowing to u32 by @Silvertree2010 in #1369
- Fix "-0p0" for tiny negative pica/cicero values by @Silvertree2010 in #1368
- Remember the Preview checkbox in Paragraph/Character Style Options by @Silvertree2010 in #1383
- Graphics: the start-up log says which backend was chosen and how to change it by @Hamza0101 in #1371
- Refuse PDF page ranges in the Place PDF dialog instead of using page 1 by @Silvertree2010 in #1378
- Saturate table alternating-fill and index paragraph counts by @Silvertree2010 in #1376
- Keep ':', '<', '>' and '' in Tagged Text style names by @Silvertree2010 in #1397
- A text anchor's name is the document's, so it is not reused by @Hamza0101 in #1571
- A page named twice in an export list is exported once by @Hamza0101 in #1562
- Gradient panel: drag the gradient onto the Swatches panel to keep it by @PiMinusMax in #1553
- A page count Insert Pages cannot mean is refused by @Hamza0101 in #1567
- A right-to-left paragraph's first-line indent is at its right edge (#1448) by @Hamza0101 in #1561
- Rotated cell text is settable and reported, not silently flattened (#1468) by @Hamza0101 in #1560
- Clamp text frame column count before narrowing to u32 by @Silvertree2010 in #1550
- Keep a literal ':' in style names through an IDML round trip by @Silvertree2010 in #1547
- An underline runs across a tab, as the rest of the line's text (#1466) by @Hamza0101 in #1491
- Preferences: list the languages alphabetically by their own name by @nikolainyegaard in #1470
- Export placed greyscale TIFFs as DeviceGray by @HEOJUNFO in #1442
- Keep CDATA text in the DOCX/XLSX XML parser by @Silvertree2010 in #1319
- Drop out-of-range font sizes on DOCX import by @Silvertree2010 in #1310
- Truncate ASE swatch names that overflow the u16 length field by @Silvertree2010 in #1308
- PDF: report visible unembedded fonts in PDF/X-4 by @KnottyDyes in #1235
- fonts: Georgian UI text from craft-fonts' Noto Sans Georgian by @devius in #1270
- Links: resolve stored paths with craft-docpath's resolve_absolute by @aiongg in #1399
- ci: move release workflow write permission to job level (SonarCloud S8233) by @dylanmtaylor in #1697
- PDF: shared reader from craft-libs 9f75d3dc (input bounds and crash fixes) by @aiongg in #1701
- Anchored objects: Relative to Spine mirrors custom positions on right-hand pages by @aiongg in #1702
- Preserve PDF catalogs and object generations in layer variants by @andeecollard in #1670
- chore: resolve SonarCloud maintainability issues by @dylanmtaylor in #1698
- chore: remove redundant 'static lifetimes (Sonar S8863) by @dylanmtaylor in #1713
- chore: replace trivial closures with method paths (Sonar S1612) by @dylanmtaylor in #1714
- refactor(ui): reduce cognitive complexity in small panels (Sonar S3776) by @dylanmtaylor in #1721
- refactor(ui-egui): lower cognitive complexity in style options dialog (Sonar S3776) by @dylanmtaylor in #1719
- refactor(ui-egui): split Character Style Options General section (Sonar S3776) by @dylanmtaylor in #1720
- refactor(engine): reduce cognitive complexity in session, load_styles, table (Sonar) by @dylanmtaylor in #1726
- refactor: reduce cognitive complexity in several compose/doc/pdf/render functions (Sonar S3776) by @dylanmtaylor in #1724
- refactor(idml): reduce cognitive complexity in export, import and ruby (Sonar S3776) by @dylanmtaylor in #1723
- refactor(tools): S107 parameter bundles and TypeTool pointer split (Sonar) by @dylanmtaylor in #1725
- refactor: reduce cognitive complexity in ruby, warichu, pdf, render, epub (Sonar S3776) by @dylanmtaylor in #1728
- Integration batch: book-chapter IDML baseline grids, hyphenation, and the Paragraph panel stack by @aiongg in #1709
- Control panel: the text controls have InDesign's Character (A) and Paragraph (¶) modes by @moppeeer in #1459
- Hyphenation Settings: InDesign's dialog from the Paragraph panel menu, and in Paragraph Style Options by @moppeeer in #1565
- Hyphenate Across Column: no column or frame ends in a hyphen when it's off by @moppeeer in #1572
- Baseline grid: Relative To Top Margin starts the grid at each page's top margin by @aiongg in #1703
- Text frames: a custom baseline grid keeps its start and increment through IDML by @aiongg in #1704
- Properties: ••• expands Character and Paragraph in place, as in InDesign by @moppeeer in #1457
- Anchored text frames compose against the grid and page where they are placed by @aiongg in #1710
- Paragraph Style Options: Align to Grid (None, All Lines, First Line Only) in Indents and Spacing by @aiongg in #1759
- Text frames: a custom baseline grid's Relative To (page, margin, frame or inset) by @aiongg in #1758
- Story Optical Margin Alignment with a size, and Ignore Optical Margin (Story panel, engine and IDML) by @aiongg in #1705
- Detect smooth anchors on all open subpaths in from_bezpath by @Silvertree2010 in #1699
- Join underline and strikethrough into one text-decoration in EPUB CSS by @Silvertree2010 in #1700
- Saturate table style altRows counts instead of truncating to 32 bits by @Silvertree2010 in #1707
- Preflight: the missing-link test uses a path that is absolute on Windows too by @dotCooCoo in #1732
- Saturate footnote and endnote numbering at u32::MAX by @Silvertree2010 in #1740
- Package: the Windows redirect test falls back to a directory junction by @dotCooCoo in #1742
- Effects dialog: the Angle with Use Global Light stays editable and sets the global light by @PiMinusMax in #1744
- import: a value a file gives is one the engine can mean (#1593) by @Hamza0101 in #1752
- links: a linked file is read under a cap, not whole (#1596) by @Hamza0101 in #1751
- GREP styles: a scan and the pattern cache are bounded (#1598) by @Hamza0101 in #1753
- Type › Notes › Convert to Note: the selected text becomes a note, as in InDesign by @dotCooCoo in #1756
- Type › Notes › Previous Note and Next Note: the insertion point moves from note to note, as in InDesign by @dotCooCoo in #1762
- Layout: Go Back and Go Forward through the pages viewed, with InDesign's shortcuts by @marcoarnulfo in #1638
- Type › Text Variables › Convert Variable to Text: the selected instances, or every instance of one variable, become the text they show on their page by @marcoarnulfo in #1639
- MCP: --automation-read-root and --automation-write-root may each be given more than once (#1552) by @marcoarnulfo in #1678
- Optical margin alignment: lines with a tab hang their edges like other lines by @aiongg in #1760
- PDF: preserve placed optional-content visibility in vector exports by @KnottyDyes in #1241
- EPUB: Split Document (export option and per-style Export Tagging) by @aiongg in #1787
- Search: Delete Workspace is left out of Quick Apply and command search by @aiongg in #1791
- Styles: renaming a style keeps its Export Tagging by @aiongg in #1790
- M6: preserve placed-graphic layer settings across IDML and native saves by @andeecollard in #1647
- Keep explicit all-on PDF layer choices through saves and exports by @andeecollard in #1671
- Fix nested placed-PDF layer choices in PDF/A-2b export by @skylartaylor in #1799
- Fix Story Options explicit targets and baseline-grid validation text by @skylartaylor in #1804
- Keep nested placed-PDF layer choices in embedded IDML by @skylartaylor in #1806
New Contributors
- @nikolainyegaard made their first contribution in #1470
- @HEOJUNFO made their first contribution in #1442
- @andeecollard made their first contribution in #1670
Full Changelog: v0.12.0...v0.13.0