github storytold/wordcraft v0.10.0
WordCraft v0.10.0

4 hours ago

Note

FreeBSD aarch64 is dropped from this release. We had to cut releases, and we cannot build this target within the 5-hour CI limit for any of the Craft apps, so we are dropping it for now. This is a known blocker, flagged for a future fix in storytold/craft-common-actions#39. FreeBSD x86_64 and every other platform are included.

What's Changed

  • docs: add SonarCloud and CodeRabbit badges to README by @dylanmtaylor in #2935
  • Skip CodeRabbit reviews on Dependabot PRs by @echelon in #3302
  • CI: run cargo xtask ci on pull requests and pushes to main (#754) by @isaac-levine in #800
  • ci: switch to shared nix workflow from craft-common-actions by @dylanmtaylor in #2381
  • #3243: File › Recover follows the app theme by @benandez in #3435
  • Mini toolbar: scroll-under-ribbon test follows #1501's visible anchor (#1841) by @benandez in #1842
  • Proofing: Check spelling as you type is remembered across restarts (#1792) by @benandez in #1837
  • Double-clicking a later page's footer opens it without scrolling up (#2103) by @benandez in #2214
  • The I-beam pointer shows on white paper on Windows (#1746) by @benandez in #2230
  • Borders: triple borders draw as three lines on screen and in PDF (#1740) by @benandez in #2210
  • Layout: text above a float's anchor wraps around it (#2048) by @benandez in #2237
  • Focus fills the screen; Full Screen View is a bindable command (#1678) by @benandez in #1733
  • security: enforce HTTPS on curl downloads (SonarCloud S6506) by @dylanmtaylor in #3532
  • ci: pin GitHub Actions to full commit SHA (SonarCloud S7637) by @dylanmtaylor in #3531
  • Shape fills: gradients and transparency (#1500) by @benandez in #1605
  • Legacy menu keys: Alt, V, U and 17 more Word 2003 sequences (#1697) by @benandez in #1769
  • Use chrono instead of hand-rolled UTC conversion by @dylanmtaylor in #3427
  • #1281: English dialects in proofing — en-GB, en-CA, en-AU… flag each other's spellings (#1045) by @benandez in #2632
  • #2617: centre equation-array rows without & by @benandez in #2690
  • File › New: personal templates from a user templates folder (#2852) by @benandez in #3133
  • Merge 178 open PRs (backlog round 1) by @aiongg in #3555
  • Russian and Czech dictionaries are reported, not just checked (#3226) by @MichaelMuClaude in #3252
  • Find box and Results list borrow a document font for Georgian etc. (#3248) by @MichaelMuClaude in #3257
  • Docs: control protocol's Methods table renders again by @mikael2 in #3258
  • Unstyle TOC entry links whose Hyperlink style has a localized id by @Silvertree2010 in #3260
  • Markdown import: reference-style links by @Hamza0101 in #3267
  • #3003: Save to a NAS share mounted by GVFS keeps working when it refuses a mode change by @Jayesh-Prajapati9 in #3269
  • #3176: File › Home and New name each template and recent document for screen readers by @Jayesh-Prajapati9 in #3273
  • #3271: edit.replace / edit.replaceAll without text or an earlier search fail by @D13GOOOO in #3287
  • #2428: the table's move and resize handles show while the caret is in it by @rabis7575 in #3291
  • Fix table formula ROUND erroring on large numbers with many digits by @Silvertree2010 in #3295
  • M15: persist the default proofing language across restarts (#2882) by @LQRD in #3299
  • Map Windows-1255 byte 0xCA to U+05BA by @Silvertree2010 in #3304
  • fix(ui): shorten a long status message so it stops before the controls by @lab1207 in #3312
  • Reject signs and repeated '#' in Rgb::parse by @Silvertree2010 in #3315
  • Require hex digits in percent_decode escapes by @Silvertree2010 in #3320
  • wasm: use the browser clock only on wasm32-unknown-unknown, not on WASI by @alexwine36 in #3322
  • Translate the spooled sheet count in print confirmations by @Silvertree2010 in #3327
  • M15: correct Cuban and Peruvian Spanish decimal separators by @MMexicann in #3333
  • #3331: closing the header or footer returns to the body selection by @RatkoR in #3335
  • #3341: the scrollbar page tip stays on one line by @RatkoR in #3342
  • Spelling & Grammar button now shows suggestions by @MichaelMuClaude in #3351
  • Add regression coverage for replying to a comment via its balloon (#3268) by @MichaelMuClaude in #3355
  • Keep '&' in LaTeX \href and \url addresses on import by @Silvertree2010 in #3356
  • List AutoFormat triggers in front of already-written text by @MichaelMuClaude in #3358
  • #3368: right-clicking a link hides the hover tooltip by @SlavenDj in #3369
  • #3370: the AutoSave text is part of the switch by @SlavenDj in #3372
  • M2.1: stabilize font and shadow geometry checks by @finwarman in #3389
  • ODT: table column widths are read, so a resized column survives a save by @Faabyy in #3391
  • doc: a start override restarts only its own level by @urbanij in #3417
  • Equations: the equation being edited is framed as in Word by @pick2510 in #3419
  • Options: list the languages alphabetically by their own name by @nikolainyegaard in #3420
  • Scope the File page's back-arrow hit area to the chevron by @SofiaAFigueredo in #3425
  • #3415: banded rows shade the same rows in Word and WordCraft (table style band sizes) by @Nghiathan13 in #3429
  • Save As no longer swallows a failed save silently by @SofiaAFigueredo in #3434
  • A document with many content controls saves in the time they take by @matstrange in #3440
  • List labels: a right-to-left label mirrors its brackets (#2916) by @GabrielMatozo in #3441
  • Navigation pane: numbered headings show their list number (#3418) by @Bortlesboat in #3452
  • Layout: superscript and subscript lines are as tall as full-size text by @pick2510 in #3460
  • fix(docx): preserve East Asian language w:eastAsia on w:lang by @divyanshu2074 in #3463
  • fix(ui): preserve Ctrl+Alt+Q and allow typing @ on German layout by @divyanshu2074 in #3471
  • UI: the ribbon's font and size boxes say what they are to a screen reader (#3172) by @albayazid in #3476
  • fix(engine, layout): evaluate FILENAME field and support \p switch by @divyanshu2074 in #3478
  • fix(engine): toggle off style-inherited lists (#3459) by @OPUZZLES in #3481
  • Date pictures: accept uppercase D and Y by @SlavenDj in #3496
  • Date pictures: pad hh on the 12-hour clock by @SlavenDj in #3497
  • fix(engine): preserve existing table cell margins when side is omitted by @divyanshu2074 in #3509
  • fix(engine): validate bookmark names by character count and character classes by @divyanshu2074 in #3511
  • fix(engine): do not treat decimal points as sentence boundaries in Sentence case by @divyanshu2074 in #3526
  • Fonts: Times New Roman keeps Liberation Serif under the roman-font rule (#1613) by @xmaks82 in #2673
  • Layout: a Symbol bullet's line keeps Symbol's height without the font by @xmaks82 in #2681
  • Formatting revisions: track table, row, cell and section property changes by @vangel76 in #2692
  • i18n: add Dutch and Danish interfaces by @pechnikov2026-star in #2722
  • Layout: a line can break after a hyphen before a digit, like Word (#2712) by @albayazid in #2739
  • #2738: Home › Underline drop-down shows its lines, None, More Underlines… and Underline Color by @Nghiathan13 in #2784
  • Recovery: keep explicit New/Open visible after startup discovery by @ofdistress2 in #2886
  • UI: the Full Screen button leaves full screen on a second click (#2864) by @albayazid in #2928
  • Render: fade dimmed headers and footers as one layer by @dfgodvan in #2947
  • Cross-references are links: Ctrl+click goes to the target (#2945) by @dhruvLearner8 in #2960
  • #2959: show the formatting mini toolbar with text context menus by @Nghiathan13 in #2984
  • #2964: align list labels with text after leading page breaks by @Nghiathan13 in #2991
  • Insert Table of Figures: a dialog with the caption label (Table, Equation, your own) (#3013) by @tyrel in #3056
  • Rendering reuses one render context, so typing starts no threads (#3027) by @rabis7575 in #3068
  • Layout: Format Page Numbers dialog (#1113) by @PanSHIgg in #3071
  • #1549: a Thai run with Latin finds one installed font covering it all by @mikael2 in #3078
  • Breaks menu tests pin the English interface, so they pass on a non-English machine by @Axxxxpirine in #3098
  • Insert Caption picks the label used last, as Word does (#3120) by @RatkoR in #3121
  • Dark theme: the File page's side bar uses a deeper blue by @fluorine in #3125
  • Rename: a name given with the document's extension keeps it, once by @Hamza0101 in #3128
  • Fix #3137: Cannot insert a tab inside table cells (missing Ctrl+Tab shortcut) by @justinjohn0306 in #3139
  • #2958: the Print page's button leads the settings, in the primary accent by @SlavenDj in #3142
  • Crop any part of a picture: a side can take 95% of the source, not 45% (#3135) by @SlavenDj in #3147
  • Layout: anchored objects thinner than a point keep their size by @abweil-fsspx in #3153
  • Text: scaled letters (w:w) are stretched, not spaced out by @abweil-fsspx in #3155
  • Watermark: the text fills its shape's box, as Word's textpath does by @abweil-fsspx in #3156
  • Borders: dotted, dashed and dash-dot borders take Word's dash patterns by @abweil-fsspx in #3157
  • CLI: run without --file uses the region's paper, like convert (#3152) by @naxvog in #3163
  • Dragging a picture near the bottom of a page moves it off the page (#3169) by @RatkoR in #3178
  • #2986: Search and three other boxes stop resetting the input method every frame by @vangel76 in #3190
  • ODT: read an embedded equation's own MathML instead of its undecodable metafile preview by @vangel76 in #3193
  • Word signature lines stay signable after saving a .docx by @vangel76 in #3199
  • Go to Footer brings a new, empty footer into view by @przemek-arch in #3201
  • Layout: justified lines shrink their spaces by Word's measured limits by @vangel76 in #3202
  • G14: Romanian (ro) interface catalog by @vangel76 in #3203
  • DOCX: majorBidi/minorBidi theme fonts follow the theme font language by @vangel76 in #3204
  • #2802: Delete on whole table cells leaves one empty paragraph in each by @vangel76 in #3205
  • A floating picture in a table cell grows the row to hold it (#3108) by @MichaelMuClaude in #3213
  • A successful native print returns to the document (#3210) by @MichaelMuClaude in #3218
  • Wait for recovery cleanup before the app exits (#3140) by @MichaelMuClaude in #3220
  • Status bar names footnotes and endnotes, not just header/footer by @MichaelMuClaude in #3221
  • i18n: File › Home greeting in every interface language by @CRBBeesy in #3231
  • #2038: a click below a floating table goes to the text, not its last row by @rabis7575 in #3232
  • Restrict Editing: forms protection greys out the content-control buttons by @pick2510 in #3234
  • Substitute a system Khmer font for a missing Khmer document font by @inmean in #3245
  • Align opens a menu with Left, Center and Right, not just center (#3242) by @MichaelMuClaude in #3246
  • #1899: a picture cropped to a sliver is drawn at the size the file gives by @rabis7575 in #3247
  • Reject non-digit characters in numeric HTML entities by @Silvertree2010 in #3249
  • M15: fix Russian ё ordering and decomposed Cyrillic keys by @LQRD in #3289
  • Layout: a tab whose text doesn't fit goes to the next line with it (#1839) by @dfgodvan in #1840
  • Double-click switches between header and footer editing by @Silvertree2010 in #1943
  • Floating objects are drawn in their stacking order (relativeHeight) by @Morzilla in #2034
  • fix(export): pictures marked decorative are skipped by screen readers by @MyAIPlugins in #2086
  • Opening a named pipe or a device no longer hangs or eats memory, whatever its name (#1444 follow-up) by @asystemoffields in #2098
  • fix(pdf): shapes with a description are figures in tagged PDF by @MyAIPlugins in #2099
  • File: recovery copies and .json files store pictures as base64 (#586 follow-up) by @asystemoffields in #2101
  • Fonts: emoji prefer a colour emoji font on Windows (#1754, #1874) by @kilter-ecnvs in #2104
  • Return 0 for SIGN(0) in table formulas by @Silvertree2010 in #2110
  • Linux: scan the Flatpak host font folders (#1937) by @tydude001 in #2136
  • fix(formats): support left alignment in markdown tables by @divyanshu2074 in #2140
  • fix(formats): support distributed paragraph alignment in RTF by @divyanshu2074 in #2144
  • fix(formats): support tab-separated list markers in markdown by @divyanshu2074 in #2153
  • proof: emoji flags followed by U+FE0F load (RLA-ES Spanish) by @dmim2502-commits in #2164
  • fix(formats): support column break in RTF import and export by @divyanshu2074 in #2171
  • fix(formats): support small and big tags and relative/large font-size keywords in HTML by @divyanshu2074 in #2172
  • fix(docbin): preserve external URLs with sublocations in doc hyperlink fields by @divyanshu2074 in #2185
  • Typing: Option+Shift+- types an em dash outside Outline view (#1933) by @dhruvLearner8 in #2211
  • fix(formats): support borderless and bordered tables in LaTeX import and export by @divyanshu2074 in #2232
  • fix(docx, doc): support VML wrap side and case-insensitive float anchors by @divyanshu2074 in #2244
  • fix(formats): support 4/8-digit hex, space-separated rgb and hsl in parse_color by @divyanshu2074 in #2249
  • fix(docx): inspect textbox style for v-text-anchor and handle case-insensitivity by @divyanshu2074 in #2254
  • fix(formats): support case-insensitive and spaced !important in HTML CSS by @divyanshu2074 in #2258
  • fix(docx): correctly parse emu and case-insensitive units in measure by @divyanshu2074 in #2267
  • fix(formats): parse case-insensitive and pica units in ODT lengths by @divyanshu2074 in #2268
  • fix(formats): parse leading plus and case-insensitive units in LaTeX lengths by @divyanshu2074 in #2269
  • fix(formats): support asian/complex scripts and underline/strike types in ODT by @divyanshu2074 in #2273
  • fix(formats): support xs:time, string-value, and case-insensitive cell types in spreadsheets by @divyanshu2074 in #2280
  • fix(formats): support bullet, top, bot, hslash, accents, bm, and mod in LaTeX math by @divyanshu2074 in #2292
  • Comments: comments in headers, footers, notes and text boxes are listed, get balloons and are reached by Next/Previous (#2289) by @squaredcow in #2298
  • fix(mathml): support linethickness=none and menclose notations by @divyanshu2074 in #2331
  • fix(sheet/xls): track substream depth and support CONTINUE records on formula strings by @divyanshu2074 in #2334
  • Fix numbered list levels that start at 0 or are overridden to 1 by @Silvertree2010 in #2343
  • Tables: dragging a single selected cell's border resizes only that cell (UI gap) by @dkhlapov in #2373
  • Objects: preview rotated picture and shape pixels while dragging (#2277) by @Nghiathan13 in #2378
  • PDF export: lam-alef drawn as two glyphs at the same x extracts in reading order (#2310) by @rabis7575 in #2392
  • fix(ui): borrow fallback fonts and preserve visual order for recent files (#2067) by @harshpsi9194 in #2407
  • AltGr types ś, ł, ż… instead of opening KeyTips on Linux (#2388) by @D13GOOOO in #2412
  • fix(formats): support table cell vertical alignment in rtf, html, and odt by @divyanshu2074 in #2416
  • DOCX: keep Word's Table of Contents content control around a TOC the writer doesn't rebuild by @marcoarnulfo in #2429
  • Keep headings with indented list paragraphs by @finwarman in #2431
  • DOCX: preserve text boxes containing pictures by @finwarman in #2453
  • DOCX: a text frame in the paragraph defaults frames nothing (#2360) by @Nghiathan13 in #2460
  • File: a text file saved over itself closes without asking (#2376) by @Nghiathan13 in #2470
  • DOCX: HYPERLINK fields read as links, so Word for the web TOCs keep their tabs and page fields (#2174) by @Nghiathan13 in #2477
  • Resolve installed fonts by PostScript face name by @finwarman in #2500
  • #2233, #2234: inline pictures drag to a dashed insertion cursor and stay inline by @Nghiathan13 in #2506
  • #1653: RTF import decodes the East Asian multibyte code pages (932/936/949/950) by @midasdf in #2549
  • #1681: HTML export and import keep furigana (ruby) by @midasdf in #2557
  • Context menu: the ribbon's paste choices (Paste, Keep Text Only, Merge Formatting, Paste Special…) (#2583) by @Nghiathan13 in #2599
  • #2625: recovery does not retry a snapshot that cannot be copied until the document changes by @benandez in #2689
  • Equation arrays: centre &-less rows (First Property of Radicals, #2617) by @vangel76 in #2691
  • SmartArt Text Pane: Tab demotes, Shift+Tab promotes the focused item (#2701) by @vangel76 in #2704
  • ODT: read headers and footers from the master page (#863) by @NguyenDuc2309 in #873
  • i18n: add Slovenian (sl) interface translation by @StrajnarFilip in #1076
  • Ribbon: names for screen readers on the tab strip's drawn buttons (#1110) by @przemek-arch in #1249
  • fix(geom): reject measurements that overflow to infinity in parse_measure (#1359) by @saadkhantareen in #1430
  • Tables: a table with its own width is not squeezed to the margins (#1721) by @MarekSpodBiedry in #1728
  • Tables nest 24 deep at most, so pasting a table into its own cell can't build a document that crashes (#1596) by @rabis7575 in #1739
  • Tests: a table that starts mid-page never leaves a repeated header row alone (#1704) by @albayazid in #1749
  • Tables: rows with gridBefore/gridAfter keep their grid columns by @dfgodvan in #1760
  • Hyphenation: German text follows the German patterns by @naxvog in #1761
  • engine: read_file reads only a bounded regular file, so a pipe or device path can't hang or exhaust memory by @midasmatterhorn in #1786
  • formats: the Markdown code fence outgrows any backtick run in its content, so a round trip keeps it by @midasmatterhorn in #1788
  • Layout: paragraph borders take their room and same-bordered paragraphs join in one shaded box by @dfgodvan in #1800
  • test(layout): verify Farsi Yeh joins correctly in bidi shaping by @asmodeus-oos in #1831
  • test(zotero): verify citation at document end stays closed through typing and reload by @asmodeus-oos in #1832
  • test(formats): verify txt export preserves list item labels by @asmodeus-oos in #1833
  • engine: reject malformed comment IDs before editing or caret fallback by @MMexicann in #1847
  • engine: Check spelling as you type is saved with the proofing options, so it survives a restart by @midasmatterhorn in #1850
  • engine: Update Field evaluates DOCPROPERTY against custom and built-in properties by @midasmatterhorn in #1851
  • .doc import: symbol runs read their font and character, and paragraph borders are read by @midasmatterhorn in #1852
  • Length fields show their unit in the interface language (#1734) by @switch87 in #1882
  • Layout: floats in table cells are not pushed up by align center/bottom (#1887) by @vangel76 in #1889
  • Charts: draw radar charts instead of a placeholder (#1890) by @vangel76 in #1892
  • Draw EMF text records (EXTTEXTOUTW) in metafile pictures by @Silvertree2010 in #1915
  • i18n(sv): translate 32 new strings by @kler in #1967
  • Read ^0nnn character codes 128-159 as Windows-1252 characters by @Silvertree2010 in #1985
  • #1976: breaks_menu tests use the English interface by @rabis7575 in #2017
  • i18n(it): translate the 15 strings other catalogs added since #1244 by @fabiodalez-dev in #2041
  • feat(navigation): implement collapsible headings in the navigation pane by @guruswarupa in #2043
  • IME: the caret follows the composition text by @aiongg in #3556
  • Header and footer: a click in the other band edits it there by @aiongg in #3557
  • README: the app icon above the title by @bflatastic in #3598

New Contributors

Full Changelog: v0.9.0...v0.10.0

Don't miss a new wordcraft release

NewReleases is sending notifications on new releases.