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