WordCraft v0.12.0
- Parse \genfrac in LaTeX import so binomials survive export by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4242
- Linux desktop entry: stop declaring text/plain by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/4206
- Lists: draw Arabic letter numbering (arabicAlpha, arabicAbjad) by @7mz410 in https://github.com/storytold/wordcraft/pull/4218
- Cap list label length when expanding level template text by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4003
- Limit DOCX XML attributes by @Higgs32584 in https://github.com/storytold/wordcraft/pull/3857
- Indent a whole selected paragraph on Tab instead of replacing it by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4291
- Layout: a bookmark is no line-break opportunity by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/4211
- Layout: a no-break space is as wide as a space, not as the font's own U+00A0 glyph by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/4210
- Stretch justified lines that end in a manual line break (#3924) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/4023
- fix(formats): support backslash space, soft breaks and zero-width spaces in RTF by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2250
- fix(formats): ignore block and inline HTML comments in markdown import by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2225
- Fix Markdown code span line endings by @Lucenx9 in https://github.com/storytold/wordcraft/pull/3804
- fix(formats): support negative timezone offsets and author fallback in ODT metadata by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2189
- fix(docx): support sym hex prefixes and normalize break types and note references by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2413
- Cover repeated DOCX style replacement across saves by @finwarman in https://github.com/storytold/wordcraft/pull/2469
- Keep Arabic-Indic digits as typed in Arabic numeral mode by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3329
- Mini toolbar: the alignment buttons mark the alignment seen on the page, as the ribbon does by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/3886
- #4177: regex Replace expands capture groups by @benandez in https://github.com/storytold/wordcraft/pull/4201
- Keep a document's own styles and defaults when applying a style set by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4013
- #1475: Scale all style font sizes at once by @dkhlapov in https://github.com/storytold/wordcraft/pull/2620
- AutoFormat As You Type: optional "Add a period with double-space", and an AutoCorrect Options button in Options › Proofing (#2848) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/3318
- Bound total LCS work per review.compare by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4006
- Bound MCP stdio request and bridge reply line reads by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3950
- fix/canvas-picture-crop-activation by @will1788 in https://github.com/storytold/wordcraft/pull/2440
- Make three-column header/footer presets editable tables (#2197) by @MMexicann in https://github.com/storytold/wordcraft/pull/2266
- #1845: filter-as-you-type command search in Customize Ribbon, QAT and Keyboard pickers by @SlavenDj in https://github.com/storytold/wordcraft/pull/1848
- #2982: File ▸ Info Custom Document Properties dialog by @maxm11 in https://github.com/storytold/wordcraft/pull/2997
- Gap 9: open AES-encrypted Word files (Standard encryption) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2628
- ci(deps): bump Swatinem/rust-cache from 2.9.2 to 2.9.3 in the actions group across 1 directory by @dependabot[bot] in https://github.com/storytold/wordcraft/pull/3945
- Security: bounded file reads, Read Aloud and macOS signing temp file (#3680, #3666) by @benandez in https://github.com/storytold/wordcraft/pull/3877
- Port WordCraft to egui 0.37 with current-main editing changes by @skylartaylor in https://github.com/storytold/wordcraft/pull/4241
- feat: startup update prompt modal and direct self-updating by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4298
- Small fixes: MERGEFIELD in any case, 18 SonarCloud closures, one unused constructor by @VoiceLessQ in https://github.com/storytold/wordcraft/pull/4233
- build: pin craft-update to craft-libs main (495e597) by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4345
- build: pin craft-update to craft-libs main (495e597) by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4352
- chore(deps): safe dependency refresh by @skylartaylor in https://github.com/storytold/wordcraft/pull/4356
- #39: per-user Windows installer that needs no administrator rights by @benandez in https://github.com/storytold/wordcraft/pull/2560
- Security: layout runs in linear time on hostile documents (#3706) by @benandez in https://github.com/storytold/wordcraft/pull/3866
- Security: bound proofing work in affixes, hyphenation and Turkish (#3661, #3657, #3625) by @benandez in https://github.com/storytold/wordcraft/pull/3868
- Security: legacy .doc reader budgets (#3642, #3708–#3712) by @benandez in https://github.com/storytold/wordcraft/pull/3871
- Security: Zotero bridge budgets; loopback-only client, same-user check on Linux only by @benandez in https://github.com/storytold/wordcraft/pull/3876
- Security: render, PDF and metafile budgets by @benandez in https://github.com/storytold/wordcraft/pull/3870
- Security: import/export format fixes — LaTeX verbatim escape, Markdown link escaping, importer limits (#3713, #3714, #3705) by @benandez in https://github.com/storytold/wordcraft/pull/3873
- Security: document model work bounds for media, math and paste (part of #3614) by @benandez in https://github.com/storytold/wordcraft/pull/3874
- Security: font ingestion checks sizes and counts before allocating (#3703, #3716) by @benandez in https://github.com/storytold/wordcraft/pull/3869
- Security: DOCX package/writer hardening — glossary privacy scrub, case-insensitive part names, chart and font limits, Flat OPC inlining (#3692, #3704, #3742, #3648) by @benandez in https://github.com/storytold/wordcraft/pull/3872
- Security: bound layout memory (linked text boxes, repeated headers, crops, gridAfter) by @benandez in https://github.com/storytold/wordcraft/pull/3867
- tests(layout): build the nbsp test document without struct-update syntax by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4380
- #3874 follow-up: text box paste charges only what it copies (PDF imports keep their text) by @benandez in https://github.com/storytold/wordcraft/pull/4381
- #3871 follow-up: .doc picture decode charges zlib input and DIB copies; budget scales with the file by @benandez in https://github.com/storytold/wordcraft/pull/4382
- Security: engine and MCP authority checks (#3699, #3735–#3737, #3698) by @benandez in https://github.com/storytold/wordcraft/pull/3875
- #3869 follow-up: WOFF2 pre-check counts contours as wuff does (crash on open); tripped hinting isn't cached by @benandez in https://github.com/storytold/wordcraft/pull/4384
- #3876 follow-up: Zotero owner check streams the socket table and refuses when it can't read it by @benandez in https://github.com/storytold/wordcraft/pull/4383
- Task panes: draw them with craft_ui::panes; Styles docks left or right or floats by @aiongg in https://github.com/storytold/wordcraft/pull/3109
- Task panes: drop a pane outside or inside a docked pane to order a side by @aiongg in https://github.com/storytold/wordcraft/pull/4386
- Cover formatting copy and paste shortcuts after the egui 0.37 migration by @skylartaylor in https://github.com/storytold/wordcraft/pull/4355
- View › New Window opens another window on the same document by @aiongg in https://github.com/storytold/wordcraft/pull/4391
- Several open documents: File › New opens another, and MCP, control and CLI address a document by id by @aiongg in https://github.com/storytold/wordcraft/pull/4388
- Several open documents: recovery per document, Document1 naming, warnings for hidden documents by @aiongg in https://github.com/storytold/wordcraft/pull/4389
- One native window per open document by @aiongg in https://github.com/storytold/wordcraft/pull/4390
- Sonar: clear S1612, S2208 and S7688 new-code issues by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4376
- Sonar: reduce cognitive complexity in four engine commands by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4377
- #3866 follow-up: PDF export draws items with authors and cell clips built once per page; endnote selection linear by @benandez in https://github.com/storytold/wordcraft/pull/4392
- #3866: fix main's layout test build (tests_linear imports Page and Rgb) by @benandez in https://github.com/storytold/wordcraft/pull/4401
- Sonar: reduce cognitive complexity in highlight, review and outline commands by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4378
- Sonar: reduce cognitive complexity in replace parser and reroute tests by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4379
- ci: require nextest 0.9.150 by @skylartaylor in https://github.com/storytold/wordcraft/pull/4487
- refactor: shared module layout (craft-contrib#20) by @aiongg in https://github.com/storytold/wordcraft/pull/4489
- fix(ui): dropdown menus grow back after a search with no matches by @aiongg in https://github.com/storytold/wordcraft/pull/4577
- #3995: Thai one-face fallback tests skip unless a Thai font with Latin is installed by @benandez in https://github.com/storytold/wordcraft/pull/4060
- #3872 follow-up: font table found by its stored spelling; privacy scrub keeps attribute values well-formed by @benandez in https://github.com/storytold/wordcraft/pull/4387
- #3907: continuous sections running off a page go onto the next; empty section marks in a row stack to the page bottom by @benandez in https://github.com/storytold/wordcraft/pull/3936
- Speed up PDF export by about 24 % by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4602
- Windows installation policy: WordCraft by @Jeremy8776 in https://github.com/storytold/wordcraft/pull/4492
- Enforce Rust coding standards via Clippy by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4501
- @7mz410 made their first contribution in https://github.com/storytold/wordcraft/pull/4218
- @Lucenx9 made their first contribution in https://github.com/storytold/wordcraft/pull/3804
- @will1788 made their first contribution in https://github.com/storytold/wordcraft/pull/2440
- @dependabot[bot] made their first contribution in https://github.com/storytold/wordcraft/pull/3945
- @Jeremy8776 made their first contribution in https://github.com/storytold/wordcraft/pull/4492
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.11.0...v0.12.0
WordCraft v0.11.0
- Restrict Editing: the file commands, the user name and the post-check by @matstrange in https://github.com/storytold/wordcraft/pull/3285
- The inspector's removals are tracked, and a version snapshot belongs to its document by @matstrange in https://github.com/storytold/wordcraft/pull/3286
- test: mark the portal test's blocking sleep as intentional (SonarCloud rust:S7488) by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/3989
- Engine: no dead-code warnings on wasm by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3542
- Drop U+FFFE and U+FFFF from ODT export text by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3817
- Cap the number of VML path commands parsed from a path attribute by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3951
- Return None from parse_number when the value overflows f64 by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3577
- Fix spurious 零 after a group's trailing zeros in Chinese numerals by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3745
- picture.corrections: a tiny sharpen value no longer panics in the blur (#3646) by @fluorine in https://github.com/storytold/wordcraft/pull/3830
- Reject signs and non-digits in parse_date fields by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3575
- Layout: keep with next takes the 0.01 pt of slack the other fit checks take by @dfgodvan in https://github.com/storytold/wordcraft/pull/3816
- Parse the Flat OPC part root tag once when inheriting namespaces by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3944
- Write a text-box story shared by many shapes only once on docx save by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3983
- Keep pending formatting revisions when Style Inspector clears formatting by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3971
- Cap the headless ui_requests queue and keep one Paste Special request by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3997
- Validate PNG extension in file.exportPng by @Higgs32584 in https://github.com/storytold/wordcraft/pull/3837
- Khmer: ignore w14:ligatures when shaping Khmer text by @inmean in https://github.com/storytold/wordcraft/pull/3921
- Skip quoted attribute values when scanning settings.xml tags by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3954
- Rename kept docx parts whose names are not valid OPC part names by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3947
- #3637: A table cell span from a .json file no longer overflows by @Jayesh-Prajapati9 in https://github.com/storytold/wordcraft/pull/3927
- #3663: "NaN" in the Font dialog's Size box no longer closes the app by @Jayesh-Prajapati9 in https://github.com/storytold/wordcraft/pull/3928
- Load ui.json with many unknown keys in linear time by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3968
- docbin: mark format-mandated SHA-1 as reviewed (SonarCloud S4790) by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4020
- Cap and deduplicate the .aff TRY alphabet at parse time by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3981
- Render: a dimmed header's borders keep one tone where they meet (#2946) by @GabrielMatozo in https://github.com/storytold/wordcraft/pull/3725
- Refuse arrange.group when members exceed the group child cap by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3958
- Ignore docx chart number-format codes longer than 255 bytes by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3963
- Format Painter: show the copy pointer over the text while armed (#3453) by @MatRanc in https://github.com/storytold/wordcraft/pull/3560
- Ruler: dragging a margin edge leaves the view where it is by @pakiat in https://github.com/storytold/wordcraft/pull/3900
- Save, export and print keep the view where it is by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/3895
- Layout: an empty paragraph with a hidden mark shows nothing, not even its list number (#3982) by @Menonro in https://github.com/storytold/wordcraft/pull/3992
- Tables: a row fits on a page only with room for the border below it (#3814) by @dfgodvan in https://github.com/storytold/wordcraft/pull/3815
- #3734: ui.resize refuses sizes that aren't positive and clamps to the GPU's limit by @mercuryVM in https://github.com/storytold/wordcraft/pull/3920
- Backstage: non-Latin file names in the Recover list draw, not boxes by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3545
- Print and PDF export use the Numeral setting (#3784) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/3824
- Fix .doc bookmark table desync on names longer than 40 characters by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3949
- Status bar names the page in view, not only the caret's page (#3880) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/3901
- Inline shared Word 2003 headers, notes and comments once by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3985
- G14: Romanian: translate the rows left in English; adjective agreement by @vioreltus in https://github.com/storytold/wordcraft/pull/3558
- Keep inline content and formatting in Convert Text to Table by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3937
- Compare: don't let a character-level diff scramble a reordered digit run by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3224
- Regression tests for #2 and #504 by @skylartaylor in https://github.com/storytold/wordcraft/pull/3860
- Restrict Editing: read only and comments-only protection grey out edits by @pick2510 in https://github.com/storytold/wordcraft/pull/3264
- Font: a selected text box's Font commands format all its text by @pakiat in https://github.com/storytold/wordcraft/pull/3898
- packaging: use [[ for bash conditional tests (SonarCloud S7688) by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4024
- A document with many relationships takes minutes to open by @matstrange in https://github.com/storytold/wordcraft/pull/3809
- A word with no break opportunity in it makes the layout quadratic by @matstrange in https://github.com/storytold/wordcraft/pull/3808
- doc: preserve rotated free endpoints when rerouting connectors by @mrzv in https://github.com/storytold/wordcraft/pull/3882
- Selection bar: right margin for right-to-left text, and beside table rows (UI gap) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2042
- Mail merge: go to any record, and merge or print a range of records (#3028) by @VoiceLessQ in https://github.com/storytold/wordcraft/pull/3894
- Translate ribbon disabled-reason tooltips (#2678) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2680
- CI: one test binary per crate, nextest, line tables only by @aiongg in https://github.com/storytold/wordcraft/pull/4025
- CI: shared gate workflow; FreeBSD nightly and on release by @aiongg in https://github.com/storytold/wordcraft/pull/3913
- i18n tests: missing translations never fail; one report lists them by @aiongg in https://github.com/storytold/wordcraft/pull/4043
- ci(sonar): stop cancelling main-branch runs so coverage is published by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4070
- Packaging: pin the signing client and appimagetool, and check their hashes by @aiongg in https://github.com/storytold/wordcraft/pull/3326
- Change Case follows each run's language for Turkic casing by @SlavenDj in https://github.com/storytold/wordcraft/pull/3480
- Options › Language names the proofing language at the caret (#3150) by @naxvog in https://github.com/storytold/wordcraft/pull/3177
- i18n: interface translations from craft-i18n (pilot) by @benandez in https://github.com/storytold/wordcraft/pull/4072
- Proofing options reach the Czech, Croatian, Indonesian, Italian, Polish and Portuguese checks by @FedeOlivares in https://github.com/storytold/wordcraft/pull/3966
- PDF: pin craft-libs 9f75d3dc for the PNG and PDF input bounds by @aiongg in https://github.com/storytold/wordcraft/pull/4084
- chore: resolve SonarCloud maintainability issues by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4083
- Sonar S1612: fn paths instead of trivial method closures by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4103
- Sonar S1612: use PoisonError::into_inner for poisoned locks by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4102
- Sonar S7682: explicit return in packaging/env.sh helpers by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4105
- Format negative zero as 0 in spreadsheet import by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4040
- Ignore quoted text when detecting recipient CSV delimiter by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4125
- Cap label and envelope text length in mailings commands by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4008
- DOCX: a hinted East Asian or complex-script font no longer replaces the Latin font by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/4067
- Phonetic Guide dialog puts the keyboard in the Ruby text box on open (#3914) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/4021
- Route ui.screenshot path writes through the guarded engine writer by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4048
- Dialogs: draw real tabs (Paragraph, Find, About) by @fluorine in https://github.com/storytold/wordcraft/pull/4029
- Outline: re-match collapsed headings only after edits, via a hash index by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4014
- DOCX: write the default font size when the document leaves it unset by @narain1 in https://github.com/storytold/wordcraft/pull/4092
- #3994: watermark font names round-trip through the textpath's CSS style by @SusieeTheLinuxUser in https://github.com/storytold/wordcraft/pull/4071
- Keep the direction of left, up and down block arrows (#3919) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/4022
- Insert › Table: the grid previews the hovered table on the page (#3931) by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/4052
- #3360, #3553: Spanish proofing (es-ES, es-MX, es-419, es-UY) by @FedeOlivares in https://github.com/storytold/wordcraft/pull/3562
- Bump craft-print, craft-pdf, krilla and craft-i18n to craft-libs 1774443 by @aiongg in https://github.com/storytold/wordcraft/pull/4184
- Merge 27 open PRs (tested batch) by @aiongg in https://github.com/storytold/wordcraft/pull/4194
- #4001: A command that changes nothing is not an edit by @matstrange in https://github.com/storytold/wordcraft/pull/4004
- Layout: a document of many pages paid a body-length scan per page by @MoriartyPuth in https://github.com/storytold/wordcraft/pull/4090
- AutoCorrect: words after a no-break space are corrected by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4101
- Proofing: web addresses after a no-break space are not marked as misspelled by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4109
- MCP: type_text with paragraphs is one command, not a snapshot of the document per line (#3973) by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/4112
- AutoFormat: Tab and Backspace at the start of a line set the paragraph's indents by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4113
- Engine: keep cell widths in step after Insert Column; validate a version restore before saving by @galagersharp-code in https://github.com/storytold/wordcraft/pull/4120
- MCP: keep serving when the app isn't open yet (#4078) by @galagersharp-code in https://github.com/storytold/wordcraft/pull/4121
- AutoFormat: Enter twice after a short line makes it a heading by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4123
- AutoFormat: border lines and +---+ tables track the characters they delete by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4129
- Reject '+' sign in print page ranges by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4147
- Import LaTeX ^{} and ~{} as plain ^ and ~ by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/4170
- Read Mode: a Page color menu shows the columns on white, sepia or a dark page by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4172
- DOCX: a malformed main document part is an error, not a truncated document (#3599) by @fluorine in https://github.com/storytold/wordcraft/pull/3818
- Web: a ?host=parent bridge for pages that keep WordCraft's files by @RobHones in https://github.com/storytold/wordcraft/pull/3822
- Layout: a multiple-spaced line stays on the page while its text fits, as in Word by @jpc7k1 in https://github.com/storytold/wordcraft/pull/3836
- SmartArt and charts: resize handles on the canvas and a Size group on SmartArt Design (#3852) by @fluorine in https://github.com/storytold/wordcraft/pull/3853
- Release: embed the current craft-fonts, with the Georgian face by @devius in https://github.com/storytold/wordcraft/pull/3888
- Resolve note separator revisions in Accept/Reject All by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3998
- #3889, #3891: Update Table keeps a localized Word TOC's styles and columns by @RatkoR in https://github.com/storytold/wordcraft/pull/4039
- cu20we: fix box float paragraph origins and preserve shape line caps by @nexotiq in https://github.com/storytold/wordcraft/pull/4074
- Comments: times in the user's own time zone, in the pane and the balloons (#2322, #2337) by @seif9116 in https://github.com/storytold/wordcraft/pull/4079
- Layout: include exact line-bottom contact for floating tables (#3977) by @OPUZZLES in https://github.com/storytold/wordcraft/pull/4097
- Match highlight icon to selected color by @Vernsmoke in https://github.com/storytold/wordcraft/pull/4099
- Merge the latest commits of #4100, #4133 and #4171 by @aiongg in https://github.com/storytold/wordcraft/pull/4215
- autoscroll: make the cursor follow the scroll direction by @Galex-Z in https://github.com/storytold/wordcraft/pull/4100
- #4085: toggle the last highlight colour with the keyboard shortcut by @LQRD in https://github.com/storytold/wordcraft/pull/4133
- Picture memory limits for 6 audit issues: one decoder, TIFF strips, styles, Remove Background, Windows paste, render cache by @VoiceLessQ in https://github.com/storytold/wordcraft/pull/4171
- security: require the data integrity check on encrypted DOCX packages by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/4223
- Merge 10 open PRs (fields, tables, AutoFormat, Track Changes; tested batch) by @aiongg in https://github.com/storytold/wordcraft/pull/4232
- AutoFormat: border and table lines stay text in a paragraph numbered by its style by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4139
- Tables: Convert to Text asks for the separator and converts only the selected rows by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4155
- Tables: Split Table fixes the vertical merges and row content controls it splits by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4162
- Parity catalog: the checklist counts Read Mode's Column Width, Page Color and Layout by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4182
- Track Changes: Accept and Reject can move to the next change or stop tracking by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4205
- Fields: SUBJECT, KEYWORDS, COMMENTS, LASTSAVEDBY, REVNUM and NUMCHARS update with the others by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4217
- Restrict Editing: Enter and typing at the start or end of an exception line go inside it by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4225
- Fields: * DollarText and * Hex write the result, and PAGE reads * ArabicDash by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4226
- Merge the late commits of #4098 and #4224 by @aiongg in https://github.com/storytold/wordcraft/pull/4238
- AutoFormat: bold and italic become real formatting as you type by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4098
- Fields: * Upper, * Lower, * Caps and * FirstCap change the result, and CardText is lowercase by @dotCooCoo in https://github.com/storytold/wordcraft/pull/4224
- @MatRanc made their first contribution in https://github.com/storytold/wordcraft/pull/3560
- @pakiat made their first contribution in https://github.com/storytold/wordcraft/pull/3900
- @Menonro made their first contribution in https://github.com/storytold/wordcraft/pull/3992
- @mercuryVM made their first contribution in https://github.com/storytold/wordcraft/pull/3920
- @vioreltus made their first contribution in https://github.com/storytold/wordcraft/pull/3558
- @mrzv made their first contribution in https://github.com/storytold/wordcraft/pull/3882
- @VoiceLessQ made their first contribution in https://github.com/storytold/wordcraft/pull/3894
- @FedeOlivares made their first contribution in https://github.com/storytold/wordcraft/pull/3966
- @narain1 made their first contribution in https://github.com/storytold/wordcraft/pull/4092
- @SusieeTheLinuxUser made their first contribution in https://github.com/storytold/wordcraft/pull/4071
- @MoriartyPuth made their first contribution in https://github.com/storytold/wordcraft/pull/4090
- @galagersharp-code made their first contribution in https://github.com/storytold/wordcraft/pull/4120
- @RobHones made their first contribution in https://github.com/storytold/wordcraft/pull/3822
- @jpc7k1 made their first contribution in https://github.com/storytold/wordcraft/pull/3836
- @devius made their first contribution in https://github.com/storytold/wordcraft/pull/3888
- @nexotiq made their first contribution in https://github.com/storytold/wordcraft/pull/4074
- @Vernsmoke made their first contribution in https://github.com/storytold/wordcraft/pull/4099
- @Galex-Z made their first contribution in https://github.com/storytold/wordcraft/pull/4100
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.10.0...v0.11.0
WordCraft v0.10.0
[!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.
- docs: add SonarCloud and CodeRabbit badges to README by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/2935
- Skip CodeRabbit reviews on Dependabot PRs by @echelon in https://github.com/storytold/wordcraft/pull/3302
- CI: run cargo xtask ci on pull requests and pushes to main (#754) by @isaac-levine in https://github.com/storytold/wordcraft/pull/800
- ci: switch to shared nix workflow from craft-common-actions by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/2381
- #3243: File › Recover follows the app theme by @benandez in https://github.com/storytold/wordcraft/pull/3435
- Mini toolbar: scroll-under-ribbon test follows #1501's visible anchor (#1841) by @benandez in https://github.com/storytold/wordcraft/pull/1842
- Proofing: Check spelling as you type is remembered across restarts (#1792) by @benandez in https://github.com/storytold/wordcraft/pull/1837
- Double-clicking a later page's footer opens it without scrolling up (#2103) by @benandez in https://github.com/storytold/wordcraft/pull/2214
- The I-beam pointer shows on white paper on Windows (#1746) by @benandez in https://github.com/storytold/wordcraft/pull/2230
- Borders: triple borders draw as three lines on screen and in PDF (#1740) by @benandez in https://github.com/storytold/wordcraft/pull/2210
- Layout: text above a float's anchor wraps around it (#2048) by @benandez in https://github.com/storytold/wordcraft/pull/2237
- Focus fills the screen; Full Screen View is a bindable command (#1678) by @benandez in https://github.com/storytold/wordcraft/pull/1733
- security: enforce HTTPS on curl downloads (SonarCloud S6506) by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/3532
- ci: pin GitHub Actions to full commit SHA (SonarCloud S7637) by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/3531
- Shape fills: gradients and transparency (#1500) by @benandez in https://github.com/storytold/wordcraft/pull/1605
- Legacy menu keys: Alt, V, U and 17 more Word 2003 sequences (#1697) by @benandez in https://github.com/storytold/wordcraft/pull/1769
- Use chrono instead of hand-rolled UTC conversion by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/3427
- #1281: English dialects in proofing — en-GB, en-CA, en-AU… flag each other's spellings (#1045) by @benandez in https://github.com/storytold/wordcraft/pull/2632
- #2617: centre equation-array rows without & by @benandez in https://github.com/storytold/wordcraft/pull/2690
- File › New: personal templates from a user templates folder (#2852) by @benandez in https://github.com/storytold/wordcraft/pull/3133
- Merge 178 open PRs (backlog round 1) by @aiongg in https://github.com/storytold/wordcraft/pull/3555
- Russian and Czech dictionaries are reported, not just checked (#3226) by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3252
- Find box and Results list borrow a document font for Georgian etc. (#3248) by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3257
- Docs: control protocol's Methods table renders again by @mikael2 in https://github.com/storytold/wordcraft/pull/3258
- Unstyle TOC entry links whose Hyperlink style has a localized id by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3260
- Markdown import: reference-style links by @Hamza0101 in https://github.com/storytold/wordcraft/pull/3267
- #3003: Save to a NAS share mounted by GVFS keeps working when it refuses a mode change by @Jayesh-Prajapati9 in https://github.com/storytold/wordcraft/pull/3269
- #3176: File › Home and New name each template and recent document for screen readers by @Jayesh-Prajapati9 in https://github.com/storytold/wordcraft/pull/3273
- #3271: edit.replace / edit.replaceAll without text or an earlier search fail by @D13GOOOO in https://github.com/storytold/wordcraft/pull/3287
- #2428: the table's move and resize handles show while the caret is in it by @rabis7575 in https://github.com/storytold/wordcraft/pull/3291
- Fix table formula ROUND erroring on large numbers with many digits by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3295
- M15: persist the default proofing language across restarts (#2882) by @LQRD in https://github.com/storytold/wordcraft/pull/3299
- Map Windows-1255 byte 0xCA to U+05BA by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3304
- fix(ui): shorten a long status message so it stops before the controls by @lab1207 in https://github.com/storytold/wordcraft/pull/3312
- Reject signs and repeated '#' in Rgb::parse by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3315
- Require hex digits in percent_decode escapes by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3320
- wasm: use the browser clock only on wasm32-unknown-unknown, not on WASI by @alexwine36 in https://github.com/storytold/wordcraft/pull/3322
- Translate the spooled sheet count in print confirmations by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3327
- M15: correct Cuban and Peruvian Spanish decimal separators by @MMexicann in https://github.com/storytold/wordcraft/pull/3333
- #3331: closing the header or footer returns to the body selection by @RatkoR in https://github.com/storytold/wordcraft/pull/3335
- #3341: the scrollbar page tip stays on one line by @RatkoR in https://github.com/storytold/wordcraft/pull/3342
- Spelling & Grammar button now shows suggestions by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3351
- Add regression coverage for replying to a comment via its balloon (#3268) by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3355
- Keep '&' in LaTeX \href and \url addresses on import by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3356
- List AutoFormat triggers in front of already-written text by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3358
- #3368: right-clicking a link hides the hover tooltip by @SlavenDj in https://github.com/storytold/wordcraft/pull/3369
- #3370: the AutoSave text is part of the switch by @SlavenDj in https://github.com/storytold/wordcraft/pull/3372
- M2.1: stabilize font and shadow geometry checks by @finwarman in https://github.com/storytold/wordcraft/pull/3389
- ODT: table column widths are read, so a resized column survives a save by @Faabyy in https://github.com/storytold/wordcraft/pull/3391
- doc: a start override restarts only its own level by @urbanij in https://github.com/storytold/wordcraft/pull/3417
- Equations: the equation being edited is framed as in Word by @pick2510 in https://github.com/storytold/wordcraft/pull/3419
- Options: list the languages alphabetically by their own name by @nikolainyegaard in https://github.com/storytold/wordcraft/pull/3420
- Scope the File page's back-arrow hit area to the chevron by @SofiaAFigueredo in https://github.com/storytold/wordcraft/pull/3425
- #3415: banded rows shade the same rows in Word and WordCraft (table style band sizes) by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/3429
- Save As no longer swallows a failed save silently by @SofiaAFigueredo in https://github.com/storytold/wordcraft/pull/3434
- A document with many content controls saves in the time they take by @matstrange in https://github.com/storytold/wordcraft/pull/3440
- List labels: a right-to-left label mirrors its brackets (#2916) by @GabrielMatozo in https://github.com/storytold/wordcraft/pull/3441
- Navigation pane: numbered headings show their list number (#3418) by @Bortlesboat in https://github.com/storytold/wordcraft/pull/3452
- Layout: superscript and subscript lines are as tall as full-size text by @pick2510 in https://github.com/storytold/wordcraft/pull/3460
- fix(docx): preserve East Asian language w:eastAsia on w:lang by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/3463
- fix(ui): preserve Ctrl+Alt+Q and allow typing @ on German layout by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/3471
- UI: the ribbon's font and size boxes say what they are to a screen reader (#3172) by @albayazid in https://github.com/storytold/wordcraft/pull/3476
- fix(engine, layout): evaluate FILENAME field and support \p switch by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/3478
- fix(engine): toggle off style-inherited lists (#3459) by @OPUZZLES in https://github.com/storytold/wordcraft/pull/3481
- Date pictures: accept uppercase D and Y by @SlavenDj in https://github.com/storytold/wordcraft/pull/3496
- Date pictures: pad hh on the 12-hour clock by @SlavenDj in https://github.com/storytold/wordcraft/pull/3497
- fix(engine): preserve existing table cell margins when side is omitted by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/3509
- fix(engine): validate bookmark names by character count and character classes by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/3511
- fix(engine): do not treat decimal points as sentence boundaries in Sentence case by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/3526
- Fonts: Times New Roman keeps Liberation Serif under the roman-font rule (#1613) by @xmaks82 in https://github.com/storytold/wordcraft/pull/2673
- Layout: a Symbol bullet's line keeps Symbol's height without the font by @xmaks82 in https://github.com/storytold/wordcraft/pull/2681
- Formatting revisions: track table, row, cell and section property changes by @vangel76 in https://github.com/storytold/wordcraft/pull/2692
- i18n: add Dutch and Danish interfaces by @pechnikov2026-star in https://github.com/storytold/wordcraft/pull/2722
- Layout: a line can break after a hyphen before a digit, like Word (#2712) by @albayazid in https://github.com/storytold/wordcraft/pull/2739
- #2738: Home › Underline drop-down shows its lines, None, More Underlines… and Underline Color by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2784
- Recovery: keep explicit New/Open visible after startup discovery by @ofdistress2 in https://github.com/storytold/wordcraft/pull/2886
- UI: the Full Screen button leaves full screen on a second click (#2864) by @albayazid in https://github.com/storytold/wordcraft/pull/2928
- Render: fade dimmed headers and footers as one layer by @dfgodvan in https://github.com/storytold/wordcraft/pull/2947
- Cross-references are links: Ctrl+click goes to the target (#2945) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/2960
- #2959: show the formatting mini toolbar with text context menus by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2984
- #2964: align list labels with text after leading page breaks by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2991
- Insert Table of Figures: a dialog with the caption label (Table, Equation, your own) (#3013) by @tyrel in https://github.com/storytold/wordcraft/pull/3056
- Rendering reuses one render context, so typing starts no threads (#3027) by @rabis7575 in https://github.com/storytold/wordcraft/pull/3068
- Layout: Format Page Numbers dialog (#1113) by @PanSHIgg in https://github.com/storytold/wordcraft/pull/3071
- #1549: a Thai run with Latin finds one installed font covering it all by @mikael2 in https://github.com/storytold/wordcraft/pull/3078
- Breaks menu tests pin the English interface, so they pass on a non-English machine by @Axxxxpirine in https://github.com/storytold/wordcraft/pull/3098
- Insert Caption picks the label used last, as Word does (#3120) by @RatkoR in https://github.com/storytold/wordcraft/pull/3121
- Dark theme: the File page's side bar uses a deeper blue by @fluorine in https://github.com/storytold/wordcraft/pull/3125
- Rename: a name given with the document's extension keeps it, once by @Hamza0101 in https://github.com/storytold/wordcraft/pull/3128
- Fix #3137: Cannot insert a tab inside table cells (missing Ctrl+Tab shortcut) by @justinjohn0306 in https://github.com/storytold/wordcraft/pull/3139
- #2958: the Print page's button leads the settings, in the primary accent by @SlavenDj in https://github.com/storytold/wordcraft/pull/3142
- Crop any part of a picture: a side can take 95% of the source, not 45% (#3135) by @SlavenDj in https://github.com/storytold/wordcraft/pull/3147
- Layout: anchored objects thinner than a point keep their size by @abweil-fsspx in https://github.com/storytold/wordcraft/pull/3153
- Text: scaled letters (w:w) are stretched, not spaced out by @abweil-fsspx in https://github.com/storytold/wordcraft/pull/3155
- Watermark: the text fills its shape's box, as Word's textpath does by @abweil-fsspx in https://github.com/storytold/wordcraft/pull/3156
- Borders: dotted, dashed and dash-dot borders take Word's dash patterns by @abweil-fsspx in https://github.com/storytold/wordcraft/pull/3157
- CLI: run without --file uses the region's paper, like convert (#3152) by @naxvog in https://github.com/storytold/wordcraft/pull/3163
- Dragging a picture near the bottom of a page moves it off the page (#3169) by @RatkoR in https://github.com/storytold/wordcraft/pull/3178
- #2986: Search and three other boxes stop resetting the input method every frame by @vangel76 in https://github.com/storytold/wordcraft/pull/3190
- ODT: read an embedded equation's own MathML instead of its undecodable metafile preview by @vangel76 in https://github.com/storytold/wordcraft/pull/3193
- Word signature lines stay signable after saving a .docx by @vangel76 in https://github.com/storytold/wordcraft/pull/3199
- Go to Footer brings a new, empty footer into view by @przemek-arch in https://github.com/storytold/wordcraft/pull/3201
- Layout: justified lines shrink their spaces by Word's measured limits by @vangel76 in https://github.com/storytold/wordcraft/pull/3202
- G14: Romanian (ro) interface catalog by @vangel76 in https://github.com/storytold/wordcraft/pull/3203
- DOCX: majorBidi/minorBidi theme fonts follow the theme font language by @vangel76 in https://github.com/storytold/wordcraft/pull/3204
- #2802: Delete on whole table cells leaves one empty paragraph in each by @vangel76 in https://github.com/storytold/wordcraft/pull/3205
- A floating picture in a table cell grows the row to hold it (#3108) by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3213
- A successful native print returns to the document (#3210) by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3218
- Wait for recovery cleanup before the app exits (#3140) by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3220
- Status bar names footnotes and endnotes, not just header/footer by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3221
- i18n: File › Home greeting in every interface language by @CRBBeesy in https://github.com/storytold/wordcraft/pull/3231
- #2038: a click below a floating table goes to the text, not its last row by @rabis7575 in https://github.com/storytold/wordcraft/pull/3232
- Restrict Editing: forms protection greys out the content-control buttons by @pick2510 in https://github.com/storytold/wordcraft/pull/3234
- Substitute a system Khmer font for a missing Khmer document font by @inmean in https://github.com/storytold/wordcraft/pull/3245
- Align opens a menu with Left, Center and Right, not just center (#3242) by @MichaelMuClaude in https://github.com/storytold/wordcraft/pull/3246
- #1899: a picture cropped to a sliver is drawn at the size the file gives by @rabis7575 in https://github.com/storytold/wordcraft/pull/3247
- Reject non-digit characters in numeric HTML entities by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3249
- M15: fix Russian ё ordering and decomposed Cyrillic keys by @LQRD in https://github.com/storytold/wordcraft/pull/3289
- Layout: a tab whose text doesn't fit goes to the next line with it (#1839) by @dfgodvan in https://github.com/storytold/wordcraft/pull/1840
- Double-click switches between header and footer editing by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1943
- Floating objects are drawn in their stacking order (relativeHeight) by @Morzilla in https://github.com/storytold/wordcraft/pull/2034
- fix(export): pictures marked decorative are skipped by screen readers by @MyAIPlugins in https://github.com/storytold/wordcraft/pull/2086
- Opening a named pipe or a device no longer hangs or eats memory, whatever its name (#1444 follow-up) by @asystemoffields in https://github.com/storytold/wordcraft/pull/2098
- fix(pdf): shapes with a description are figures in tagged PDF by @MyAIPlugins in https://github.com/storytold/wordcraft/pull/2099
- File: recovery copies and .json files store pictures as base64 (#586 follow-up) by @asystemoffields in https://github.com/storytold/wordcraft/pull/2101
- Fonts: emoji prefer a colour emoji font on Windows (#1754, #1874) by @kilter-ecnvs in https://github.com/storytold/wordcraft/pull/2104
- Return 0 for SIGN(0) in table formulas by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2110
- Linux: scan the Flatpak host font folders (#1937) by @tydude001 in https://github.com/storytold/wordcraft/pull/2136
- fix(formats): support left alignment in markdown tables by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2140
- fix(formats): support distributed paragraph alignment in RTF by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2144
- fix(formats): support tab-separated list markers in markdown by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2153
- proof: emoji flags followed by U+FE0F load (RLA-ES Spanish) by @dmim2502-commits in https://github.com/storytold/wordcraft/pull/2164
- fix(formats): support column break in RTF import and export by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2171
- fix(formats): support small and big tags and relative/large font-size keywords in HTML by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2172
- fix(docbin): preserve external URLs with sublocations in doc hyperlink fields by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2185
- Typing: Option+Shift+- types an em dash outside Outline view (#1933) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/2211
- fix(formats): support borderless and bordered tables in LaTeX import and export by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2232
- fix(docx, doc): support VML wrap side and case-insensitive float anchors by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2244
- fix(formats): support 4/8-digit hex, space-separated rgb and hsl in parse_color by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2249
- fix(docx): inspect textbox style for v-text-anchor and handle case-insensitivity by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2254
- fix(formats): support case-insensitive and spaced !important in HTML CSS by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2258
- fix(docx): correctly parse emu and case-insensitive units in measure by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2267
- fix(formats): parse case-insensitive and pica units in ODT lengths by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2268
- fix(formats): parse leading plus and case-insensitive units in LaTeX lengths by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2269
- fix(formats): support asian/complex scripts and underline/strike types in ODT by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2273
- fix(formats): support xs:time, string-value, and case-insensitive cell types in spreadsheets by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2280
- fix(formats): support bullet, top, bot, hslash, accents, bm, and mod in LaTeX math by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2292
- Comments: comments in headers, footers, notes and text boxes are listed, get balloons and are reached by Next/Previous (#2289) by @squaredcow in https://github.com/storytold/wordcraft/pull/2298
- fix(mathml): support linethickness=none and menclose notations by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2331
- fix(sheet/xls): track substream depth and support CONTINUE records on formula strings by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2334
- Fix numbered list levels that start at 0 or are overridden to 1 by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2343
- Tables: dragging a single selected cell's border resizes only that cell (UI gap) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2373
- Objects: preview rotated picture and shape pixels while dragging (#2277) by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2378
- PDF export: lam-alef drawn as two glyphs at the same x extracts in reading order (#2310) by @rabis7575 in https://github.com/storytold/wordcraft/pull/2392
- fix(ui): borrow fallback fonts and preserve visual order for recent files (#2067) by @harshpsi9194 in https://github.com/storytold/wordcraft/pull/2407
- AltGr types ś, ł, ż… instead of opening KeyTips on Linux (#2388) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/2412
- fix(formats): support table cell vertical alignment in rtf, html, and odt by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2416
- DOCX: keep Word's Table of Contents content control around a TOC the writer doesn't rebuild by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2429
- Keep headings with indented list paragraphs by @finwarman in https://github.com/storytold/wordcraft/pull/2431
- DOCX: preserve text boxes containing pictures by @finwarman in https://github.com/storytold/wordcraft/pull/2453
- DOCX: a text frame in the paragraph defaults frames nothing (#2360) by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2460
- File: a text file saved over itself closes without asking (#2376) by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2470
- DOCX: HYPERLINK fields read as links, so Word for the web TOCs keep their tabs and page fields (#2174) by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2477
- Resolve installed fonts by PostScript face name by @finwarman in https://github.com/storytold/wordcraft/pull/2500
- #2233, #2234: inline pictures drag to a dashed insertion cursor and stay inline by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2506
- #1653: RTF import decodes the East Asian multibyte code pages (932/936/949/950) by @midasdf in https://github.com/storytold/wordcraft/pull/2549
- #1681: HTML export and import keep furigana (ruby) by @midasdf in https://github.com/storytold/wordcraft/pull/2557
- Context menu: the ribbon's paste choices (Paste, Keep Text Only, Merge Formatting, Paste Special…) (#2583) by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/2599
- #2625: recovery does not retry a snapshot that cannot be copied until the document changes by @benandez in https://github.com/storytold/wordcraft/pull/2689
- Equation arrays: centre &-less rows (First Property of Radicals, #2617) by @vangel76 in https://github.com/storytold/wordcraft/pull/2691
- SmartArt Text Pane: Tab demotes, Shift+Tab promotes the focused item (#2701) by @vangel76 in https://github.com/storytold/wordcraft/pull/2704
- ODT: read headers and footers from the master page (#863) by @NguyenDuc2309 in https://github.com/storytold/wordcraft/pull/873
- i18n: add Slovenian (sl) interface translation by @StrajnarFilip in https://github.com/storytold/wordcraft/pull/1076
- Ribbon: names for screen readers on the tab strip's drawn buttons (#1110) by @przemek-arch in https://github.com/storytold/wordcraft/pull/1249
- fix(geom): reject measurements that overflow to infinity in parse_measure (#1359) by @saadkhantareen in https://github.com/storytold/wordcraft/pull/1430
- Tables: a table with its own width is not squeezed to the margins (#1721) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/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 https://github.com/storytold/wordcraft/pull/1739
- Tests: a table that starts mid-page never leaves a repeated header row alone (#1704) by @albayazid in https://github.com/storytold/wordcraft/pull/1749
- Tables: rows with gridBefore/gridAfter keep their grid columns by @dfgodvan in https://github.com/storytold/wordcraft/pull/1760
- Hyphenation: German text follows the German patterns by @naxvog in https://github.com/storytold/wordcraft/pull/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 https://github.com/storytold/wordcraft/pull/1786
- formats: the Markdown code fence outgrows any backtick run in its content, so a round trip keeps it by @midasmatterhorn in https://github.com/storytold/wordcraft/pull/1788
- Layout: paragraph borders take their room and same-bordered paragraphs join in one shaded box by @dfgodvan in https://github.com/storytold/wordcraft/pull/1800
- test(layout): verify Farsi Yeh joins correctly in bidi shaping by @asmodeus-oos in https://github.com/storytold/wordcraft/pull/1831
- test(zotero): verify citation at document end stays closed through typing and reload by @asmodeus-oos in https://github.com/storytold/wordcraft/pull/1832
- test(formats): verify txt export preserves list item labels by @asmodeus-oos in https://github.com/storytold/wordcraft/pull/1833
- engine: reject malformed comment IDs before editing or caret fallback by @MMexicann in https://github.com/storytold/wordcraft/pull/1847
- engine: Check spelling as you type is saved with the proofing options, so it survives a restart by @midasmatterhorn in https://github.com/storytold/wordcraft/pull/1850
- engine: Update Field evaluates DOCPROPERTY against custom and built-in properties by @midasmatterhorn in https://github.com/storytold/wordcraft/pull/1851
- .doc import: symbol runs read their font and character, and paragraph borders are read by @midasmatterhorn in https://github.com/storytold/wordcraft/pull/1852
- Length fields show their unit in the interface language (#1734) by @switch87 in https://github.com/storytold/wordcraft/pull/1882
- Layout: floats in table cells are not pushed up by align center/bottom (#1887) by @vangel76 in https://github.com/storytold/wordcraft/pull/1889
- Charts: draw radar charts instead of a placeholder (#1890) by @vangel76 in https://github.com/storytold/wordcraft/pull/1892
- Draw EMF text records (EXTTEXTOUTW) in metafile pictures by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1915
- i18n(sv): translate 32 new strings by @kler in https://github.com/storytold/wordcraft/pull/1967
- Read ^0nnn character codes 128-159 as Windows-1252 characters by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1985
- #1976: breaks_menu tests use the English interface by @rabis7575 in https://github.com/storytold/wordcraft/pull/2017
- i18n(it): translate the 15 strings other catalogs added since #1244 by @fabiodalez-dev in https://github.com/storytold/wordcraft/pull/2041
- feat(navigation): implement collapsible headings in the navigation pane by @guruswarupa in https://github.com/storytold/wordcraft/pull/2043
- IME: the caret follows the composition text by @aiongg in https://github.com/storytold/wordcraft/pull/3556
- Header and footer: a click in the other band edits it there by @aiongg in https://github.com/storytold/wordcraft/pull/3557
- README: the app icon above the title by @bflatastic in https://github.com/storytold/wordcraft/pull/3598
- @aiongg made their first contribution in https://github.com/storytold/wordcraft/pull/3555
- @MichaelMuClaude made their first contribution in https://github.com/storytold/wordcraft/pull/3252
- @mikael2 made their first contribution in https://github.com/storytold/wordcraft/pull/3258
- @Jayesh-Prajapati9 made their first contribution in https://github.com/storytold/wordcraft/pull/3269
- @LQRD made their first contribution in https://github.com/storytold/wordcraft/pull/3299
- @lab1207 made their first contribution in https://github.com/storytold/wordcraft/pull/3312
- @alexwine36 made their first contribution in https://github.com/storytold/wordcraft/pull/3322
- @RatkoR made their first contribution in https://github.com/storytold/wordcraft/pull/3335
- @urbanij made their first contribution in https://github.com/storytold/wordcraft/pull/3417
- @nikolainyegaard made their first contribution in https://github.com/storytold/wordcraft/pull/3420
- @SofiaAFigueredo made their first contribution in https://github.com/storytold/wordcraft/pull/3425
- @Bortlesboat made their first contribution in https://github.com/storytold/wordcraft/pull/3452
- @ofdistress2 made their first contribution in https://github.com/storytold/wordcraft/pull/2886
- @tyrel made their first contribution in https://github.com/storytold/wordcraft/pull/3056
- @Axxxxpirine made their first contribution in https://github.com/storytold/wordcraft/pull/3098
- @abweil-fsspx made their first contribution in https://github.com/storytold/wordcraft/pull/3153
- @CRBBeesy made their first contribution in https://github.com/storytold/wordcraft/pull/3231
- @inmean made their first contribution in https://github.com/storytold/wordcraft/pull/3245
- @MyAIPlugins made their first contribution in https://github.com/storytold/wordcraft/pull/2086
- @asystemoffields made their first contribution in https://github.com/storytold/wordcraft/pull/2098
- @kilter-ecnvs made their first contribution in https://github.com/storytold/wordcraft/pull/2104
- @tydude001 made their first contribution in https://github.com/storytold/wordcraft/pull/2136
- @dmim2502-commits made their first contribution in https://github.com/storytold/wordcraft/pull/2164
- @harshpsi9194 made their first contribution in https://github.com/storytold/wordcraft/pull/2407
- @midasdf made their first contribution in https://github.com/storytold/wordcraft/pull/2549
- @NguyenDuc2309 made their first contribution in https://github.com/storytold/wordcraft/pull/873
- @asmodeus-oos made their first contribution in https://github.com/storytold/wordcraft/pull/1831
- @kler made their first contribution in https://github.com/storytold/wordcraft/pull/1967
- @bflatastic made their first contribution in https://github.com/storytold/wordcraft/pull/3598
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.9.0...v0.10.0
WordCraft v0.9.0
[!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.
- Resolve exact OpenType full font names by @finwarman in https://github.com/storytold/wordcraft/pull/2516
- Recognize the Symbol PCL6 font alias by @finwarman in https://github.com/storytold/wordcraft/pull/2521
- Retain cell top insets across table row page breaks by @finwarman in https://github.com/storytold/wordcraft/pull/2524
- Remember Navigation Pane visibility across launches (#2526) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/2528
- Keep leading U+3000/NBSP in Markdown import and round trip by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2538
- #1876: Web Layout text fills the window width by @dkhlapov in https://github.com/storytold/wordcraft/pull/2539
- A new source's Tag follows Word's format; editing keeps the Tag (#2094) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2571
- #2592: Split Cells and Convert Text to Table dialogs by @dkhlapov in https://github.com/storytold/wordcraft/pull/2593
- Preserve REF field hyperlinks in PDF exports by @finwarman in https://github.com/storytold/wordcraft/pull/2597
- Font list: entries of tall-ascent fonts are no longer cut off (#2570) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2598
- Preserve cached field result formatting by @finwarman in https://github.com/storytold/wordcraft/pull/2605
- Read Mode keeps the keyboard and shows whole, unobscured columns (#1772) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2591
- Comments readable in the dark theme (#2045) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2563
- Prefer a covering text face for missing black-circle glyphs by @finwarman in https://github.com/storytold/wordcraft/pull/2582
- DOCX: keep the glossary document (building blocks) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2631
- #498: Indonesian (id-ID) spelling proofing by @benandez in https://github.com/storytold/wordcraft/pull/2576
- Keep custom footnote/endnote marks as text inside the note on DOCX save by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2647
- Promote the cell below when deleting a vertical merge's first row by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2649
- fix(commands): Export PDF and PNG without a path ask where to save by @charan-rathore in https://github.com/storytold/wordcraft/pull/2665
- #2634: a table inserted in right-to-left text is right to left, so Tab moves left by @benandez in https://github.com/storytold/wordcraft/pull/2688
- Format Painter: double-click keeps it on, armed and sticky look different (#2785) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/2822
- Update ROADMAP.md by @EncodeE55 in https://github.com/storytold/wordcraft/pull/2020
- DOCX: a style ID defined twice is its last definition by @Morzilla in https://github.com/storytold/wordcraft/pull/2031
- Automatic text in a styled text box takes the shape style's font colour by @Morzilla in https://github.com/storytold/wordcraft/pull/2032
- A cell emptied by widow control takes its row to the next page by @Morzilla in https://github.com/storytold/wordcraft/pull/2035
- Tests: the Alt+0233 test expects the system code page's character by @alik654zx in https://github.com/storytold/wordcraft/pull/2040
- Fonts: keep Arial Unicode MS fallbacks proportional by @finwarman in https://github.com/storytold/wordcraft/pull/2657
- CLI: allow explicit field updates during conversion by @finwarman in https://github.com/storytold/wordcraft/pull/2014
- #1297: copied equations go in the MathML clipboard formats Word reads by @benandez in https://github.com/storytold/wordcraft/pull/2614
- Shapes: preserve DrawingML outline dashes by @finwarman in https://github.com/storytold/wordcraft/pull/2661
- #1270: pasted HTML blockquote is an indented paragraph, not Quote by @benandez in https://github.com/storytold/wordcraft/pull/2737
- Different First Page: page 1's header can be edited and inserted (#2826) by @benandez in https://github.com/storytold/wordcraft/pull/2833
- Text effects: legacy outline, shadow, emboss and imprint are drawn (#2534) by @naxvog in https://github.com/storytold/wordcraft/pull/2548
- Give the status bar zoom percentage a fixed width by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2059
- Columns on selected text go in their own section (#2024) by @alik654zx in https://github.com/storytold/wordcraft/pull/2071
- Tab strip never draws tabs over Comments / Editing / Share (#2026) by @HyakoV3 in https://github.com/storytold/wordcraft/pull/2084
- fix(engine): ensure nextFootnote navigates only footnotes and skips endnotes by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2114
- fix(engine): exclude carriage returns from word count character statistics by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2116
- Fix Find navigation to show search results (#2096) by @FredApps in https://github.com/storytold/wordcraft/pull/2118
- Ribbon tab clicks no longer scroll the page to the caret while a footer is edited (#2054) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/2121
- fix(engine): use table_formula parse_number for table sorting by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2126
- Backspace and Delete remove a section break, imported or not by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2133
- fix(engine): support switches and quoted bookmarks when updating REF and PAGEREF fields by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2149
- Lists: Enter on an empty nested item numbered by its paragraph style moves it up a level (#2143) by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2151
- Layout: the caret after spaces hanging past the margin stays at the margin by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2152
- fix(engine): resolve section and section pages context when unlinking fields by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2156
- fix(doc): preserve overparen, underparen, and brackets in LaTeX group characters by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2163
- #1549: one Thai face for a run in a missing Thai font by @C00kieMonsta in https://github.com/storytold/wordcraft/pull/2175
- fix(engine): support nested quotations and opening delimiters in smart quotes by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2176
- #2068: Recently Used Fonts at the top of the font list by @C00kieMonsta in https://github.com/storytold/wordcraft/pull/2192
- Web: keep preferences such as dark mode between visits (#2132) by @benandez in https://github.com/storytold/wordcraft/pull/2205
- Draw undrawable private-use list bullets as the level's default bullet, not an icon-font glyph (#1683) by @benandez in https://github.com/storytold/wordcraft/pull/2206
- #1885: dialog close box fills red on hover, whole box clickable by @C00kieMonsta in https://github.com/storytold/wordcraft/pull/2090
- Context menu: Remove Table of Contents on a TOC entry (#2179) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/2217
- fix(docx): support hex without hash, rgb(), and case-insensitive color names in VML and DrawingML by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2222
- AutoCorrect: reversing a capitalisation adds an automatic exception, as in Word (#1857) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2227
- fix(engine): support none in wordart reflection and outline color by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2238
- Numbered headings: heading-linked multilevel list presets keep the heading styles (#1793) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2239
- fix(docx): trim marker id, bound bookmarks map, and support bookmarkEnd name fallback by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2252
- AutoCorrect: replace the double-hyphen arrow (#2223) by @FredApps in https://github.com/storytold/wordcraft/pull/2263
- Hover tip on a table of contents link says Current Document (#2177) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/2281
- Theme: default to system appearance by @GhostMitra in https://github.com/storytold/wordcraft/pull/718
- Focus the Insert Hyperlink address box (#1610) by @FredApps in https://github.com/storytold/wordcraft/pull/1642
- DOCX: read every VML shape in a
w:pict, and av:group's members by @Hamza0101 in https://github.com/storytold/wordcraft/pull/1662 - i18n(pl): citation style names, audit coverage and attribution (#750) by @olekkut in https://github.com/storytold/wordcraft/pull/1720
- UI: Font dropdown list height doesn't update when filter results increase by @mbaksa in https://github.com/storytold/wordcraft/pull/1732
- Ink to Shape: two-stroke arrows and closed-triangle heads (gap 12) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1778
- Track Changes Options: Moves (move tracking, Moved from/to marks and colours) (gap 5) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1779
- Update Field works in headers, footers, notes and text boxes; printing updates every field (#1706) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1780
- #1906: content-control Properties OK inherits theme text by @SlavenDj in https://github.com/storytold/wordcraft/pull/1920
- macOS: dialogs put Cancel left of the default button, and ⌘. cancels by @kkilchrist in https://github.com/storytold/wordcraft/pull/1835
- #1861: searchable Interface Theme command (View, light/dark/system + toggle) by @SlavenDj in https://github.com/storytold/wordcraft/pull/1868
- #1902: clipboard and styles pane actions return focus to the document by @SlavenDj in https://github.com/storytold/wordcraft/pull/1914
- #1904: bookmark dialog placeholder when no bookmarks by @SlavenDj in https://github.com/storytold/wordcraft/pull/1917
- #1905: empty keys list shows (none) by @SlavenDj in https://github.com/storytold/wordcraft/pull/1919
- Fonts: bounded family caches; math follows font changes (#1354) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1929
- Clamp negative margins before checking they leave text room by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1941
- Web: input-method rewrites erase before retyping, so non-Latin typing no longer repeats (part of #1480) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1949
- DOCX: mixed Hebrew/Latin keeps its order in Word (runs split by direction, w:rtl and language) (#1543) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1950
- Rendering and PDF check image limits before allocating (#1321) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2001
- Tables: Backspace removes a selected table, rows or columns; Delete clears them (part of #1844) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2005
- Hebrew: field results like STYLEREF draw right to left; smart quotes match Word (#1670) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2007
- A mouse drag on a table no longer scrolls the view to the caret (#1738) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2008
- Turkish case mapping: i/İ and ı/I capitalise correctly (#1923) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2009
- fix(formats): support none and dual scripts in mmultiscripts, mpadded phantoms, menclose borders, and mtable column align by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2300
- Contributors: add Marco Arnulfo by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2302
- fix(docbin): handle default codepage, VT_I4, multiple property sets, and FILETIME dates by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2304
- Copying a picture or shape replaces the clipboard's old text, so Paste duplicates it by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2306
- fix(docbin): correct sprmTCellWidth operand parsing and handle percentage widths by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2312
- Keep spaces that follow a tab in the ODT round trip by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2317
- fix(math): parse array column specs, support starred operatorname and tag, preserve delim sep in latex by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2353
- fix(pdf): scale bookmark destination coordinates with page Fit and support case-insensitive bookmark lookup by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2364
- fix(smart_art): normalize layout and color identifiers and preserve item text with leading whitespace by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2365
- #1743: Ctrl+wheel zoom no longer scrolls the document by @dkhlapov in https://github.com/storytold/wordcraft/pull/2386
- DOCX: positional tabs (w:ptab) keep their alignment, base and leader and go to the margins or indents, as in Word (#2367) by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2387
- Fonts: restore missing strokes in hint-reliant Chinese fonts by @xyz9516 in https://github.com/storytold/wordcraft/pull/2389
- Layout: automatic space between Asian text and Latin text or digits (autoSpaceDE, autoSpaceDN) (#2358) by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2397
- fix(formats): support html entities, wbr zero-width break, and page-break-after by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2400
- Refresh DATE/TIME fields when opening .doc/.dot by extension by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2418
- #1843: Read Aloud speaks Russian text with a Russian voice by @dkhlapov in https://github.com/storytold/wordcraft/pull/2430
- Share AutoFit donor reductions equally by @finwarman in https://github.com/storytold/wordcraft/pull/2464
- Include table-cell headings in regenerated TOCs by @finwarman in https://github.com/storytold/wordcraft/pull/2482
- Fix PDF outline targets after leading page breaks by @finwarman in https://github.com/storytold/wordcraft/pull/2484
- DOCX: two lines in one and horizontal in vertical (
w:eastAsianLayout) survive a save by @imachus in https://github.com/storytold/wordcraft/pull/2486 - Honor table row keep-next during pagination by @finwarman in https://github.com/storytold/wordcraft/pull/2494
- Word's Spike: Ctrl+F3 collects cuts, Ctrl+Shift+F3 inserts them by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2507
- docs: how to install spelling dictionaries (pt_BR example) by @JoaoAugusto00 in https://github.com/storytold/wordcraft/pull/2510
- ODT export: sections are saved (gap 19) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1777
- Restrict Editing: exceptions don't open page setup or styles; tracked-changes protection keeps revisions by @dfgodvan in https://github.com/storytold/wordcraft/pull/1881
- mcp: let open_document take a password by @Bra1nZ in https://github.com/storytold/wordcraft/pull/1796
- #1873: Backstage back chevron uses plain inset in macOS full screen by @SlavenDj in https://github.com/storytold/wordcraft/pull/1879
- #1895: recovery page buttons keep theme text colors by @SlavenDj in https://github.com/storytold/wordcraft/pull/1898
- Grey out and guard ribbon split buttons when disabled by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1918
- Equations: a script runs until a space or operator, as in Word (V_dd, x_2a) (#1609) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1951
- Fonts: the font scan leaves out faces with no outline or color bitmap tables by @dotCooCoo in https://github.com/storytold/wordcraft/pull/1972
- PDF tests read ActualText spans, so RTL extraction no longer depends on the installed Arabic font (#1773) by @Sriram-PR in https://github.com/storytold/wordcraft/pull/1973
- Escape block syntax after manual line breaks in Markdown export by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1980
- Keep font-cache tests valid with optional Thai fonts by @IanHollow in https://github.com/storytold/wordcraft/pull/1981
- Contributors: dotCooCoo's entry shows the GitHub profile name again by @dotCooCoo in https://github.com/storytold/wordcraft/pull/1982
- File › Close closes the document and keeps the window (#1712) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/1996
- Fonts: bold Arial Black is not emboldened again, as in Word by @naxvog in https://github.com/storytold/wordcraft/pull/1750
- cli: open a password-protected Word file with --password by @Bra1nZ in https://github.com/storytold/wordcraft/pull/1770
- RTF export: sections are saved (gap 19) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1776
- Proofing: -ically adverbs such as "specifically" are no longer flagged (#1694) by @benandez in https://github.com/storytold/wordcraft/pull/1854
- Tables: include behind-text frames in cell alignment by @finwarman in https://github.com/storytold/wordcraft/pull/1871
- #1903: undo-history footer Cancel closes the popup by @SlavenDj in https://github.com/storytold/wordcraft/pull/1916
- Tables: add editable Cell Margins dialog (#1960) by @justinjohn0306 in https://github.com/storytold/wordcraft/pull/1988
- Lowercase list items no longer get a grammar underline (#1741) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1783
- ASK and SET fields show nothing (#1765) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1785
- Tables: at-least rows taller than a page start on a fresh page; header rows follow (#1742) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2004
- DOCX: a w:u without w:val draws no underline by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2380
- OpenType ligatures follow w14:ligatures: model, DOCX read and write, shaping by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2351
- Text boxes: framed paragraphs run with the box's text, not drawn over each other by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2383
- Paste: plain text keeps the formatting of the paragraph it lands in by @seif9116 in https://github.com/storytold/wordcraft/pull/2424
- Preserve zero effect extents on rotated drawings by @finwarman in https://github.com/storytold/wordcraft/pull/2432
- #1789: Add Font imports every selected font file by @dkhlapov in https://github.com/storytold/wordcraft/pull/2404
- Layout: preserve additive spacing after section breaks by @finwarman in https://github.com/storytold/wordcraft/pull/2433
- Layout: keep narrow cell line widths by @finwarman in https://github.com/storytold/wordcraft/pull/2436
- DOCX: strict line heights with a unit are points under auto (#2329) by @PanSHIgg in https://github.com/storytold/wordcraft/pull/2439
- Preserve inherited cell margins on partial overrides by @finwarman in https://github.com/storytold/wordcraft/pull/2434
- Layout: preserve equation baselines under exact line spacing by @finwarman in https://github.com/storytold/wordcraft/pull/2435
- fix(ui): offer Save As for imported Word files by @OPUZZLES in https://github.com/storytold/wordcraft/pull/2448
- Layout: exclude floating anchors from line font metrics by @finwarman in https://github.com/storytold/wordcraft/pull/2462
- DOCX: opening no longer copies the document's pictures by @arcanii in https://github.com/storytold/wordcraft/pull/2441
- Update Field after save and reopen of a table of contents (#2182) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2553
- Preserve direct TOC number tabs during refresh by @finwarman in https://github.com/storytold/wordcraft/pull/2475
- fix(ui): expose save confirmation context to screen readers by @OPUZZLES in https://github.com/storytold/wordcraft/pull/2489
- fix(ui): deliver control input in inactive windows by @OPUZZLES in https://github.com/storytold/wordcraft/pull/2530
- Fonts Word embeds as subsets lay out the text set in them (#2240) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/2540
- i18n: French interface catalog completed (2,615 entries) with native-speaker review by @rem5411 in https://github.com/storytold/wordcraft/pull/2492
- Insert › Shapes keeps the selected shape and text (#2019) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/2030
- A floating object's anchor takes no room on a line by @Morzilla in https://github.com/storytold/wordcraft/pull/2033
- Symbols keep their symbol font when the text font changes (#2036) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2037
- Legacy form fields are drawn: check boxes, and drop-downs' selected entry by @Morzilla in https://github.com/storytold/wordcraft/pull/2076
- Proofing: a hyphenated word added to the dictionary is no longer flagged by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2085
- RTF: formatting and paragraph-mark revisions are read and written (gap 19) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2088
- #1945: Hide the Quick Access Toolbar and show it again by @C00kieMonsta in https://github.com/storytold/wordcraft/pull/2089
- #1878: Rulers thin out with the zoom and span the caret's page by @C00kieMonsta in https://github.com/storytold/wordcraft/pull/2093
- DOCX: ink inside groups and drawing canvases survives saving (gap 2) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2097
- fix(render, pdf): fix vertical double and wave border rendering by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2113
- fix(doc): strip negative sign when formatting numbers rounded to zero by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2122
- fix(formats): support relative font size values in HTML font tags by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2130
- fix(docx): support self-closing w:compat in settings merge by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2131
- fix(formats): trim whitespace when parsing numeric XML attributes in ODT by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2137
- Insert › Shapes menu: an icon for each shape and connector by @fluorine in https://github.com/storytold/wordcraft/pull/2142
- fix(web): download after asynchronous save-picker rejection by @FredApps in https://github.com/storytold/wordcraft/pull/2145
- fix(layout): support field format switches without whitespace after * by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2147
- Picture Styles, Border and Artistic Effects replace the last one instead of stacking (#2052) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/2148
- fix(formats): handle negative timezone offsets and flexible day digits in spreadsheet iso_datetime by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2154
- fix(formats): emit \landscape in RTF export when section is landscape by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2159
- Save writes the chosen file when its folder refuses a temporary file (macOS privacy protection) (#2138) by @benandez in https://github.com/storytold/wordcraft/pull/2167
- fix(layout): support quoted bookmark names with spaces in PAGEREF fields by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2169
- SmartArt: type into items; open the Text Pane by double-click or frame button by @fluorine in https://github.com/storytold/wordcraft/pull/2170
- fix(formats): support quoted and non-latin charset declarations in HTML decode by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2180
- fix(formats): resolve sub-location and external URLs in RTF HYPERLINK fields by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2181
- #1552: no spelling squiggle under the word being typed by @C00kieMonsta in https://github.com/storytold/wordcraft/pull/2183
- fix(doc, formats): support OEM character set 255 in charset_code_page by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2195
- fix(engine): count multi-column spanning cells once in table formula ranges by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2200
- fix(formats): preserve tilde characters in LaTeX URLs and raw arguments by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2202
- fix(formats): support cell and paragraph borders in RTF export by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2207
- Highlight: No Color becomes the button's choice (#2105) by @benandez in https://github.com/storytold/wordcraft/pull/2208
- fix(formats): enforce tag boundary when skipping raw text elements in HTML by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/2257
- Font dialog: Kerning for fonts and its Points and above size by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/2295
- #537: test that System pins the title bar to the desktop's light/dark answer on Linux by @benandez in https://github.com/storytold/wordcraft/pull/2559
- fix(ui): keep note editing text readable (#2545) by @OPUZZLES in https://github.com/storytold/wordcraft/pull/2562
- #1963: wordcraft-cli runs a script file by @dkhlapov in https://github.com/storytold/wordcraft/pull/2566
- Ignore explicit page breaks inside table cells by @finwarman in https://github.com/storytold/wordcraft/pull/2574
- Reserve footer flow-table border clearance by @finwarman in https://github.com/storytold/wordcraft/pull/2585
- Dragging the scrollbar names the page at the top of the window (#2551) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/2575
- layout: preserve subpoint table grid widths by @finwarman in https://github.com/storytold/wordcraft/pull/2589
- Watermarks in header table cells drawn behind the text (#1775) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2580
- Ribbon tooltips show why a control is disabled (#1086) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2623
- Drop Cap Options dialog (#2601) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2602
- Keep the line in an empty section starting a page by @finwarman in https://github.com/storytold/wordcraft/pull/2609
- #1273: equations from Word files keep all their content by @benandez in https://github.com/storytold/wordcraft/pull/2613
- #1230: Insert Caption on pictures and shapes; Different First Page in Page Setup by @benandez in https://github.com/storytold/wordcraft/pull/2615
- #1327: protection checks cover tables, Paste Formatting and recipient refresh by @dkhlapov in https://github.com/storytold/wordcraft/pull/2618
- Recipient list: find box and merged-only view (#1576) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2621
- Keep explicit text:s spaces at paragraph ends on ODT import by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2641
- Use the Default Paragraph Style font when importing ODT (#2804) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/2823
- Keep the ODT paragraph 'Keep with next' option on import and export (#2813) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/2825
- Count shared continuous-section pages in SECTIONPAGES by @finwarman in https://github.com/storytold/wordcraft/pull/2654
- Fix page-relative footer table height and body wrapping by @finwarman in https://github.com/storytold/wordcraft/pull/2659
- Page setup: resolve section correctly when focus is in a header, footer or note (#2072) by @GhostMitra in https://github.com/storytold/wordcraft/pull/2663
- Fix stray leading space in RTF list items on export by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2667
- #2108: File › Print scales pages to another paper size by @benandez in https://github.com/storytold/wordcraft/pull/2699
- Keep floating body tables clear of header tables by @finwarman in https://github.com/storytold/wordcraft/pull/2660
- fix: a dragged picture, shape or text box is no longer left behind on its page by @GavinQiEr in https://github.com/storytold/wordcraft/pull/2720
- fix: dropping an object near the top of the next page no longer sends it back by @GavinQiEr in https://github.com/storytold/wordcraft/pull/2829
- Count shared table borders in row minimums by @finwarman in https://github.com/storytold/wordcraft/pull/2789
- fix(macos): skip wgpu indirect validation on Intel Macs so launch no longer exits (#2652) by @Higgs32584 in https://github.com/storytold/wordcraft/pull/2845
- File page: the back arrow no longer ends WordCraft when accessibility is on by @arcanii in https://github.com/storytold/wordcraft/pull/2856
- Decode ISO 8859-1 Hunspell dictionaries so the original pt_BR works (#2824) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/2904
- Proofing: say when a dictionary is installed but unreadable, with file and reason (#2830) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/2900
- Keep the Insert SmartArt dialog within the window (#2832) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/2902
- DOCX: Word 2007 WordArt (VML textpath) in the body is shown as text, not dropped (#2875) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/2903
- Keep the selection's font when typing over a backward selection by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2911
- Fit inline text boxes with Resize shape to fit text to their text by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2912
- #2573: Picture Format › Size takes sizes in any unit, pixels too, and opens a Size dialog by @matteo-andreuzza in https://github.com/storytold/wordcraft/pull/2889
- References: Word sources file import in Manage Sources (#2640) by @PanSHIgg in https://github.com/storytold/wordcraft/pull/2897
- Split Cells on merged cells: divisor message and 1x1 top-row cut (#2592) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2913
- Ribbon groups shrink to fit the window (#662) by @dkhlapov in https://github.com/storytold/wordcraft/pull/708
- Mail merge review follow-ups: keep the filter on failure, cap spreadsheet text (#1287) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1295
- Comments: a draft survives a failed commit (#1348) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1512
- Tests: fitting exact-height rows move on whole by @finwarman in https://github.com/storytold/wordcraft/pull/1641
- Italian: fixes from a native speaker review by @lucAmbr0 in https://github.com/storytold/wordcraft/pull/1717
- File (Backstage): an icon beside each side-menu item (#1714) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/1723
- Scroll the selected command into view in Customize Keyboard by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1731
- Ribbon collapse review follow-ups: collapsed groups stay open, Styles kept (#1285) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1293
- ci: configure Dependabot for Cargo and GitHub Actions by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/2951
- cli: keep the non-UTF-8 file name test off macOS by @maxm11 in https://github.com/storytold/wordcraft/pull/2993
- render: keep the legacy font effect test off antialiasing by @maxm11 in https://github.com/storytold/wordcraft/pull/2990
- Layout: a word after a slash wraps whole, like Word (#2963) by @Faabyy in https://github.com/storytold/wordcraft/pull/2985
- Ruler: margin handles on even mirrored pages edit the visible edge's stored margin (#2914) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/2975
- Selection rectangles walk only the paragraphs the range reaches by @dfgodvan in https://github.com/storytold/wordcraft/pull/2967
- Layout: a roman page number in the footer stays roman when the body shows the page count by @dfgodvan in https://github.com/storytold/wordcraft/pull/2966
- Cross-reference: caption labels of your own are Reference types (#2940) by @dhruvLearner8 in https://github.com/storytold/wordcraft/pull/2957
- A Word 2003 XML or web page saved as .doc opens by what it holds (#2853) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/2942
- fix(ui): keep recent fonts visible after an unmatched query (#2068) by @OPUZZLES in https://github.com/storytold/wordcraft/pull/2929
- Limit table row deferral to genuine widow splits by @finwarman in https://github.com/storytold/wordcraft/pull/2925
- Keep a single trailing space when exporting a paragraph to ODT by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3066
- Clippy passes on Windows and Linux again (#2845 follow-up) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/3006
- Add @SlavenDj to contributors/people.toml by @SlavenDj in https://github.com/storytold/wordcraft/pull/3048
- #3035: WordArt reflection swatch follows the theme text colour by @SlavenDj in https://github.com/storytold/wordcraft/pull/3055
- #3034: SmartArt Pyramid separators follow the theme line colour by @SlavenDj in https://github.com/storytold/wordcraft/pull/3052
- #3033: file browser Open/Save uses the themed primary button by @SlavenDj in https://github.com/storytold/wordcraft/pull/3047
- #2892: rules end flat on screen, like the PDF export by @SlavenDj in https://github.com/storytold/wordcraft/pull/3061
- #3037: file browser says when a folder (or the filter) shows no items by @SlavenDj in https://github.com/storytold/wordcraft/pull/3054
- #3036: AutoCorrect Replace list says when the filter matches nothing by @SlavenDj in https://github.com/storytold/wordcraft/pull/3053
- #3032: Styles pane greys out Delete for built-in styles by @SlavenDj in https://github.com/storytold/wordcraft/pull/3051
- #3031: Tabs dialog says the list is empty instead of a blank box by @SlavenDj in https://github.com/storytold/wordcraft/pull/3050
- #3040: undo-history row returns focus to the document by @SlavenDj in https://github.com/storytold/wordcraft/pull/3044
- #3038: mini toolbar highlight swatch returns focus to the document by @SlavenDj in https://github.com/storytold/wordcraft/pull/3042
- #3039: mini toolbar font colour Automatic returns focus to the document by @SlavenDj in https://github.com/storytold/wordcraft/pull/3043
- Paste: Ctrl+V pastes a clipboard picture even when Ctrl is released before V (#3049) by @jcagudelo12 in https://github.com/storytold/wordcraft/pull/3058
- #2999: a file dialog that "cancels" at once asks again without a parent, then shows the built-in browser by @benandez in https://github.com/storytold/wordcraft/pull/3030
- #2972: regression tests for File page AccessKit focus paths (mac chevron, Options back, Blank document) by @benandez in https://github.com/storytold/wordcraft/pull/3019
- Opening a missing recent file keeps File open and shows the error (#2938) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/3012
- Size the text cursor by the font, not the line spacing (#2920) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/3011
- #3045: the empty window's ribbon tabs stay live, so File reaches the Start screen by @SlavenDj in https://github.com/storytold/wordcraft/pull/3064
- Navigation pane: a long heading wraps within the pane instead of ending in an ellipsis (#3015) by @GabrielMatozo in https://github.com/storytold/wordcraft/pull/3029
- #3067: script parse test compares paths with Path::join by @D13GOOOO in https://github.com/storytold/wordcraft/pull/3106
- Write large whole numbers without decimals in format_number by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3107
- Keep a single leading space in HTML export paragraphs by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3102
- Keep an ordered list's start number in Markdown import by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3103
- Fix Paragraph::sentence_at at the first character of a sentence by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/3105
- Restrict Editing: forms protection keeps a form's content controls by @pick2510 in https://github.com/storytold/wordcraft/pull/3112
- Content controls: typed text takes the control's formatting, in any language by @pick2510 in https://github.com/storytold/wordcraft/pull/3116
- RTF import: heading and code formatting compared with the file's own stylesheet (gap 19 follow-up) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2236
- The caret and clicks land between the letters of a ligature (#1974) by @dkhlapov in https://github.com/storytold/wordcraft/pull/2006
- docs: drop references to competing commercial software by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/2854
- @dhruvLearner8 made their first contribution in https://github.com/storytold/wordcraft/pull/2528
- @charan-rathore made their first contribution in https://github.com/storytold/wordcraft/pull/2665
- @EncodeE55 made their first contribution in https://github.com/storytold/wordcraft/pull/2020
- @FredApps made their first contribution in https://github.com/storytold/wordcraft/pull/2118
- @C00kieMonsta made their first contribution in https://github.com/storytold/wordcraft/pull/2175
- @olekkut made their first contribution in https://github.com/storytold/wordcraft/pull/1720
- @SlavenDj made their first contribution in https://github.com/storytold/wordcraft/pull/1920
- @xyz9516 made their first contribution in https://github.com/storytold/wordcraft/pull/2389
- @imachus made their first contribution in https://github.com/storytold/wordcraft/pull/2486
- @JoaoAugusto00 made their first contribution in https://github.com/storytold/wordcraft/pull/2510
- @Bra1nZ made their first contribution in https://github.com/storytold/wordcraft/pull/1796
- @Sriram-PR made their first contribution in https://github.com/storytold/wordcraft/pull/1973
- @IanHollow made their first contribution in https://github.com/storytold/wordcraft/pull/1981
- @seif9116 made their first contribution in https://github.com/storytold/wordcraft/pull/2424
- @PanSHIgg made their first contribution in https://github.com/storytold/wordcraft/pull/2439
- @rem5411 made their first contribution in https://github.com/storytold/wordcraft/pull/2492
- @fluorine made their first contribution in https://github.com/storytold/wordcraft/pull/2142
- @GavinQiEr made their first contribution in https://github.com/storytold/wordcraft/pull/2720
- @Higgs32584 made their first contribution in https://github.com/storytold/wordcraft/pull/2845
- @matteo-andreuzza made their first contribution in https://github.com/storytold/wordcraft/pull/2889
- @lucAmbr0 made their first contribution in https://github.com/storytold/wordcraft/pull/1717
- @maxm11 made their first contribution in https://github.com/storytold/wordcraft/pull/2993
- @Faabyy made their first contribution in https://github.com/storytold/wordcraft/pull/2985
- @jcagudelo12 made their first contribution in https://github.com/storytold/wordcraft/pull/3058
- @GabrielMatozo made their first contribution in https://github.com/storytold/wordcraft/pull/3029
- @pick2510 made their first contribution in https://github.com/storytold/wordcraft/pull/3112
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.8.0...v0.9.0
WordCraft v0.8.0
- CI: main passes again (Word 2003 check reads through io; first keystroke after a chrome click isn't dropped) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1578
- Interface-translation audit green and back in CI (#1128) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1143
- Double-click the margin to create and edit a header or footer (#960) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1144
- Alt+numpad character codes (#961) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1146
- Review › Language reaches every proofing language (#860) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1151
- Dark theme: the ruler text area is lighter than its margins by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1154
- Print: the preview fills the pane, with a zoom bar and scrolling both ways by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1157
- Zotero: text typed just after a citation goes outside its field by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1162
- Layout: a list label moves with its text when the paragraph is aligned (#1159) by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1163
- CI: translate Croatian in every interface catalog by @echelon in https://github.com/storytold/wordcraft/pull/1719
- Full screen on F11 and View › Window › Full Screen (#980) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1153
- Layout: a paragraph ending with a page break leaves its space after on the old page by @naxvog in https://github.com/storytold/wordcraft/pull/1168
- Picture transparency/corrections/color are absolute from the original + transparency slider by @DevCoderMax in https://github.com/storytold/wordcraft/pull/1175
- Fonts embedded in a .docx lay out and export its text by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1176
- Layout: table rows share their cell margins and split across pages like Word by @naxvog in https://github.com/storytold/wordcraft/pull/1177
- Stop Space and Enter from resetting the X11 input context by @raythurman2386 in https://github.com/storytold/wordcraft/pull/1179
- Equations: bound parser tree depth, escape \text in LaTeX, merge runs everywhere (#1456) by @vangel76 in https://github.com/storytold/wordcraft/pull/1457
- i18n: add Vietnamese (vi) interface translation by @Nghiathan13 in https://github.com/storytold/wordcraft/pull/1458
- Tables: thick cell borders meet in closed corners by @dfgodvan in https://github.com/storytold/wordcraft/pull/1461
- Close prompt: a failed Save says why and keeps the document open (#1445) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1465
- Metafile: WMF object table without scanning, in-place shape ops, cropped DIB decode (#1463) by @vangel76 in https://github.com/storytold/wordcraft/pull/1466
- i18n(hu): align two new rows with the catalog terms by @Skaywalker in https://github.com/storytold/wordcraft/pull/1469
- References: TOC entries carry their headings' list numbers by @dfgodvan in https://github.com/storytold/wordcraft/pull/1470
- PDF: draw horizontal and vertical lines inside groups by @cyril265 in https://github.com/storytold/wordcraft/pull/1474
- Layout: PAGE fields on the later pages of a paragraph show their own page (#1352) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1481
- fix(proof): classify each whitespace token once when checking spelling (#1335) by @saadkhantareen in https://github.com/storytold/wordcraft/pull/1490
- Shapes: rounded rectangles keep their own corner radius by @cyril265 in https://github.com/storytold/wordcraft/pull/1476
- Fields: PAGEREF in headers and footers shows its bookmark's page by @cyril265 in https://github.com/storytold/wordcraft/pull/1477
- Ctrl+A stays on this page, and in a table grows cell, then row, then table, then the document (#1424) by @ImpotStite in https://github.com/storytold/wordcraft/pull/1478
- Word 365 cover pages: page-relative positions and freeforms drawn back to their start (#743) by @benandez in https://github.com/storytold/wordcraft/pull/1487
- Fix Replace All bypassing content-control locks by @MMexicann in https://github.com/storytold/wordcraft/pull/1488
- RTF import: keep section breaks and their page settings (#1378) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1495
- Save As: fill the file type list (#1399) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1497
- HTML import: bold header cells, cell alignment and the region paper (#1381) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1494
- Custom page sizes: Size › More Paper Sizes and Page Setup width/height (#1433) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1496
- Dark page: highlights are dimmed so the text on them stays readable (#1252) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1498
- Fix mini toolbar positioning while scrolling by @shlok2721-web in https://github.com/storytold/wordcraft/pull/1501
- Canvas: draw colour emoji on screen as the PDF does (#1269) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1504
- .doc import: cell shading, column count and merged cells (#1380) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1507
- Layout: long tables keep one layout per cell and relayout without re-measuring by @dfgodvan in https://github.com/storytold/wordcraft/pull/1492
- Layout: a paragraph continued into the next column wraps around a shape there (#1374) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1505
- ODT import: keep each section’s page properties (#1379) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1506
- PDF export: Hebrew and Arabic text extracts in reading order (#1383) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1508
- Web: image paste goes to the active edit target (#1349) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1513
- Track Changes and content controls: table delete, Change Case and Unlink Fields respect them (#1329) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1514
- PDF export: All Caps text extracts correctly (#1473) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1509
- Web: New/Open waits for Save before discarding the document (#1315) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1510
- Document Inspector: find hidden text outside the body and from styles (#1344) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1515
- RTF: read and write tracked changes (insertions, deletions, authors, times) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1516
- Canvas: alignment guides while dragging pictures and shapes by @dkhlapov in https://github.com/storytold/wordcraft/pull/1519
- Draw: Ink to Shape recognises arrows by @dkhlapov in https://github.com/storytold/wordcraft/pull/1520
- fix(math): preserve equation text color on save/load (#1467) by @mjohnson7cd in https://github.com/storytold/wordcraft/pull/1525
- fix(proof): British spellings such as honour and prioritise are not flagged (#40) by @HyakoV3 in https://github.com/storytold/wordcraft/pull/1536
- ODT: read and write tracked changes (text:tracked-changes) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1517
- fix(pdf): inline pictures keep their alt text in tagged PDF (#1502) by @HyakoV3 in https://github.com/storytold/wordcraft/pull/1526
- proof: Turkish spelling, suggestions, grammar and hyphenation by @yeniufuklar-com in https://github.com/storytold/wordcraft/pull/1527
- ODT and .doc import: pictures are read once, within their byte budget (#1334) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1554
- macOS: the title bar fits around the traffic lights as macOS draws them by @kkilchrist in https://github.com/storytold/wordcraft/pull/1559
- CI: Turkish review-command test skips without a Turkish dictionary by @echelon in https://github.com/storytold/wordcraft/pull/1752
- --help and -h print the usage for the app and every CLI command (#968) by @Nael-Nathanael in https://github.com/storytold/wordcraft/pull/977
- fix(cli): reject invalid page and scale arguments by @NavidZamanKhan in https://github.com/storytold/wordcraft/pull/982
- Native print test: fixed PDF creation date, no flaky byte comparison (#987) by @dkhlapov in https://github.com/storytold/wordcraft/pull/990
- Tables: AutoFit in a nested table, whole cells shaded for a selection through a table, Shift+Right at a cell's end by @rabis7575 in https://github.com/storytold/wordcraft/pull/1004
- Reset table tools on table deletion and preserve Draw Table outside tables by @y2w8 in https://github.com/storytold/wordcraft/pull/1006
- fix(markdown): preserve table cells containing code spans and pipes by @NavidZamanKhan in https://github.com/storytold/wordcraft/pull/1009
- Focus hides the ribbon, status bar and panes; Escape brings them back by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1017
- Ribbon tabs that don't fit move to a » menu instead of under Comments by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/958
- i18n(cs): wording fixes after #387 by @Losminek in https://github.com/storytold/wordcraft/pull/973
- #916: Cross-reference opens a dialog by @justinjohn0306 in https://github.com/storytold/wordcraft/pull/1003
- feat(engine): rename documents from the title bar and open account settings from the badge by @neupaneprashant in https://github.com/storytold/wordcraft/pull/1016
- Track Changes: rejecting a whole inserted paragraph keeps the next paragraph's style and numbering by @przemek-arch in https://github.com/storytold/wordcraft/pull/1020
- Caret: Down and Up from a line start beside a table go into it, not past it by @rabis7575 in https://github.com/storytold/wordcraft/pull/1021
- macOS: Control-click opens the context menu, with its spelling suggestions by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1025
- DOCX: a hyperlink with an empty target is no link (#1005) by @vangel76 in https://github.com/storytold/wordcraft/pull/1030
- i18n(cs): complete the Czech catalog (built-in styles, equation gallery) by @Losminek in https://github.com/storytold/wordcraft/pull/978
- One Page and the zoom are saved with the document and restored when it is reopened by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1023
- DOCX: keep Office 2016 charts (cx:chart) and their data when saving by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1029
- Table eraser: borders beside vertically merged cells merge as in Word (#1039) by @vangel76 in https://github.com/storytold/wordcraft/pull/1044
- Layout: keep with next moves the heading when the next paragraph moves for widow control (#966) by @albayazid in https://github.com/storytold/wordcraft/pull/1049
- Ribbon menu buttons carry their name for accessibility by @tarpescu in https://github.com/storytold/wordcraft/pull/1050
- Page background: picture and texture fills are drawn and kept on save (#999) by @vangel76 in https://github.com/storytold/wordcraft/pull/1036
- Ribbon: holding a press no longer scrolls the document (#1019) by @lasse-tech in https://github.com/storytold/wordcraft/pull/1041
- Track Changes: deletions inside a field result are tracked, accepted and saved (#1037) by @vangel76 in https://github.com/storytold/wordcraft/pull/1043
- feat(ui): implement Ctrl+drag to copy objects on canvas by @guruswarupa in https://github.com/storytold/wordcraft/pull/1046
- fonts: Add platform-specific Hebrew font support by @H0ruu1 in https://github.com/storytold/wordcraft/pull/1052
- DOCX: merge settings.xml into the original instead of regenerating it (#1034) by @przemek-arch in https://github.com/storytold/wordcraft/pull/1059
- CI: Hebrew font substitution test expects David only on Windows by @echelon in https://github.com/storytold/wordcraft/pull/1790
- Comments: a click inside a selected balloon moves the caret in its text (#1013) by @lasse-tech in https://github.com/storytold/wordcraft/pull/1051
- UI: mini toolbar steps aside for the ribbon by @Toddpe in https://github.com/storytold/wordcraft/pull/1069
- Docs: encrypted DOCX row, duplicate document-grid rows, dated issue count by @vangel76 in https://github.com/storytold/wordcraft/pull/1072
- Contributors: add Sazid Al Bayazid (albayazid) to people.toml by @albayazid in https://github.com/storytold/wordcraft/pull/1074
- UI: combo boxes join their dropdown arrow (field rounded left, arrow right) by @Toddpe in https://github.com/storytold/wordcraft/pull/1083
- Proofing: a Dictionaries folder setting, and the dictionary each language found (#1063) by @witkowski01 in https://github.com/storytold/wordcraft/pull/1084
- CI: park the mini-toolbar scroll test that #1501 and #1069 disagree on by @echelon in https://github.com/storytold/wordcraft/pull/1834
- DOCX: carry unmodelled parts; keep comment ids, style defaults, latent styles, list ids and app props (#1034) by @przemek-arch in https://github.com/storytold/wordcraft/pull/1060
- Comments: an option to show only the selected text's comment (#1055) by @lasse-tech in https://github.com/storytold/wordcraft/pull/1066
- Docs: gaps.md re-audited against main by @vangel76 in https://github.com/storytold/wordcraft/pull/1071
- README: install on Gentoo from the ::snakebyte overlay by @switch87 in https://github.com/storytold/wordcraft/pull/16
- macOS packaging: strip extended attributes before signing and verify the DMG's app strictly (#525) by @vangel76 in https://github.com/storytold/wordcraft/pull/527
- fix(layout): match Word's contextual paragraph spacing by @OPUZZLES in https://github.com/storytold/wordcraft/pull/568
- STYLEREF fields show each page's result in headers and footers (#775) by @dkhlapov in https://github.com/storytold/wordcraft/pull/882
- Mail merge: .xls recipients, legacy encodings, Filter and Sort (#778) by @dkhlapov in https://github.com/storytold/wordcraft/pull/885
- .doc: open password-protected Word 97–2003 files (RC4, RC4 CryptoAPI, XOR) (#1079) by @vangel76 in https://github.com/storytold/wordcraft/pull/1087
- fix(layout): prevent list labels from inflating line height by @OPUZZLES in https://github.com/storytold/wordcraft/pull/601
- Russian proofing: spelling, suggestions, grammar and word division by @xmaks82 in https://github.com/storytold/wordcraft/pull/894
- File: recover unsaved work after a crash (#518) by @OPUZZLES in https://github.com/storytold/wordcraft/pull/586
- fix(layout): preserve legacy table paragraph spacing by @OPUZZLES in https://github.com/storytold/wordcraft/pull/577
- STYLEREF review follow-ups: headers stay cached, switch labels in our own words (#1286) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1294
- CI: recovery pruning test retries a scan that a lock race skipped by @echelon in https://github.com/storytold/wordcraft/pull/1849
- Word forms keep their legacy form fields and rows' skipped grid columns when saved by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1184
- Keytips: Alt, J, T and Alt, J, L open the table tabs like Word by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1185
- Modify Style picks its font from the font box the ribbon uses by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1187
- UI: fix Select icon polygon rendering by @marc-antoine-girard in https://github.com/storytold/wordcraft/pull/1193
- Desktop: a maximized window no longer flashes on and off at start-up on Windows (#23) by @tlomts-dev in https://github.com/storytold/wordcraft/pull/1194
- Tables: Select All then Delete removes a table the document starts with; right-click Delete offers Delete Table again by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1202
- Right-click on a table of contents entry offers Update Field by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1203
- Navigation pane headings align left, indented under their parent by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1204
- Layout menus mark the current margins, orientation, size and columns by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1214
- Ctrl+Q resets the paragraph without also closing the window by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1220
- Ctrl+wheel zoom keeps the place under the pointer instead of scrolling the page away by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1226
- Harden against hostile-document DoS and non-web link export by @JeremyYao in https://github.com/storytold/wordcraft/pull/1235
- i18n(it): translate the 24 strings other catalogs added since #598 by @fabiodalez-dev in https://github.com/storytold/wordcraft/pull/1244
- Fonts: the interface CJK fallback skips faces without outlines by @dotCooCoo in https://github.com/storytold/wordcraft/pull/1250
- fix: remove dead-code unwrap_or magic string in percent_decode by @ahutsunshin in https://github.com/storytold/wordcraft/pull/1257
- Cut copies to the system clipboard from every control by @tarpescu in https://github.com/storytold/wordcraft/pull/1256
- fix: remove unreachable empty-string branch in open_bytes_with match by @ahutsunshin in https://github.com/storytold/wordcraft/pull/1258
- Accessibility: Windows Magnifier follows the caret onto a new line (#1119) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1247
- Desktop: a window too big for its screen shrinks to fit when it opens (#1215) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1253
- feat: add SVG and ICO MIME types to mime_of helper by @ahutsunshin in https://github.com/storytold/wordcraft/pull/1262
- Table Layout: the Cell Size boxes apply to the whole selection (#1242) by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1276
- Insert › Bookmark: Delete and Go To, laid out as Word's (#1236) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1277
- Improve Polish spelling suggestions for final consonant devoicing by @neronek22 in https://github.com/storytold/wordcraft/pull/1298
- fix(ui): prevent options pane labels from overflowing (#1266) by @Zaxaerith in https://github.com/storytold/wordcraft/pull/1301
- CI: Select All + Delete test presses Select All until the document is selected by @echelon in https://github.com/storytold/wordcraft/pull/1865
- Layout: inside/outside floats swap sides on even pages; Page Setup shows mirror margins (#1181) by @LloydNicholson in https://github.com/storytold/wordcraft/pull/1239
- refactor: deduplicate ZIP and OLE magic number constants in io.rs by @ahutsunshin in https://github.com/storytold/wordcraft/pull/1260
- UI: view-mode tooltips, SmartArt labels and TOC style names follow the interface language by @andrejskvorc in https://github.com/storytold/wordcraft/pull/1272
- Restrict Editing: filling in forms opens fillable content controls (#1077) by @edurbs in https://github.com/storytold/wordcraft/pull/1309
- fix(ui): drag a Behind Text picture or shape over the text it overlaps by @mute-09 in https://github.com/storytold/wordcraft/pull/1313
- Word's text watermark in DOCX: drawn on screen and in the PDF, and kept on save (#1290) by @mmazzieri in https://github.com/storytold/wordcraft/pull/1328
- Insert Hyperlink: Link to › Place in This Document (#1234) by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/1370
- An empty .docx opens as a blank document that saves back to it (#1384) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1387
- Scripts can't close a document with unsaved changes without force (#1268) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1391
- Paragraph dialog: leave mixed formatting alone, apply as one undo step (#1346) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1397
- fix(geom): measurement parser rejects overflow to infinity during unit conversion (#1359) by @krinry in https://github.com/storytold/wordcraft/pull/1398
- xtask assets: fail when git ls-files fails, read raw NUL-separated paths (#1364) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1401
- Mouse wheel keeps scrolling while a text selection is being dragged (#1388) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1402
- Save preferences through a temporary file and log write failures (#1361) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1404
- RTF import decodes Unicode escapes in font names (#1360) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1406
- MCP type_text reports a refused paragraph break instead of typing the next line (#1356) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1407
- Print to PDF and PNG export replace the file only after it is fully written (#1355) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1408
- Restart Numbering keeps the list's own level definitions (#1351) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1409
- Document::delete_range checks both ends before editing, so an error leaves the document unchanged (#1350) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1410
- Styles gallery shows Word's quick styles for DOCX files that mark none, e.g. from LibreOffice (#1238) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1394
- Outline Promote, Demote, Move Up and Move Down add one undo step instead of two (#1363) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1403
- DOCX: cap the depth of header/footer parts that reference further headers/footers (#1322) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1415
- Convert Text to Table refuses to drop fields or a table in the selection (#1318) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1416
- Layout: formats past 65,536 in one paragraph keep their own style (#1340) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1421
- #967: keep with next, keep lines together, page break before and widow control list their {"value"?: bool} by @Nael-Nathanael in https://github.com/storytold/wordcraft/pull/1427
- wordcraft --control checks its port (#1426) by @Nael-Nathanael in https://github.com/storytold/wordcraft/pull/1436
- #1376: a word too wide for the strip beside a floating picture moves on whole by @Nael-Nathanael in https://github.com/storytold/wordcraft/pull/1439
- DOCX: draw VML preset shapes such as Word's right arrow (#1377) by @Nael-Nathanael in https://github.com/storytold/wordcraft/pull/1442
- Picture Format › Crop: crop handles on the canvas by @dkhlapov in https://github.com/storytold/wordcraft/pull/1447
- Canvas: a redrawn page goes to egui as rendered, without a round trip through straight alpha by @spiritbearlabs in https://github.com/storytold/wordcraft/pull/1450
- Markdown import: brackets no longer turn later links in the paragraph into plain text (#1452) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1453
- JSON open repairs hostile run lengths (#1337) by @justinjohn0306 in https://github.com/storytold/wordcraft/pull/1412
- Free part, list and comment ids after a file's largest ones (#1338) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1428
- Page Setup: Justified vertical alignment (#1320) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1435
- insert.picture and insert.icon leave the caret after the picture (#965) by @Nael-Nathanael in https://github.com/storytold/wordcraft/pull/1437
- macOS: Word for Mac's keys for Save As, Insert Endnote, New Comment, Replace and the ribbon (gap #24) by @spiritbearlabs in https://github.com/storytold/wordcraft/pull/1438
- Proofing: status bar flags a language whose dictionary isn't installed (#1167) by @vangel76 in https://github.com/storytold/wordcraft/pull/1441
- A file name that isn't valid Unicode no longer crashes wordcraft-cli or the app (#1440) by @Nael-Nathanael in https://github.com/storytold/wordcraft/pull/1444
- fix(engine): handle multi-byte UTF-8 characters before em-dash in dash_autoformat by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/1570
- fix(engine): trim arguments when parsing sample text formulas by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/1571
- .doc import: notes, headers and text boxes read their text once (#1319) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1572
- Layout: widow control moves a three-line paragraph whole by @przemek-arch in https://github.com/storytold/wordcraft/pull/1575
- Lists: Russian letter numbering draws а) б) в) instead of digits by @alik654zx in https://github.com/storytold/wordcraft/pull/1577
- Flat OPC: reading bounded everywhere in the file, CDATA base64 read (#1353) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1580
- Text boxes in tables nested deeper than 16 survive edits (#1339) by @rabis7575 in https://github.com/storytold/wordcraft/pull/1591
- Layout: a table's percentage width past 100% is kept by @finwarman in https://github.com/storytold/wordcraft/pull/1598
- Layout: page numbers can restart at 0 by @finwarman in https://github.com/storytold/wordcraft/pull/1601
- Save Changes prompt takes the keyboard from the page (#1597) by @alik654zx in https://github.com/storytold/wordcraft/pull/1602
- Comments: deleting a comment leaves no dangling anchors or replies (#1345) by @squaredcow in https://github.com/storytold/wordcraft/pull/1565
- All Caps draws ß as SS, as Word does (#1581) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1583
- Italian proofing: po', qual è, È and un/un' grammar rules; more elisions in spelling by @lupant in https://github.com/storytold/wordcraft/pull/1585
- Respect the image byte limit during DOC DIB conversion by @haranishi in https://github.com/storytold/wordcraft/pull/1590
- Shapes: a right triangle keeps its right angle by @finwarman in https://github.com/storytold/wordcraft/pull/1599
- Equations: a multi-letter subscript stays whole after build-up by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1623
- Tabs left of the margin stay on a default stop they already sit on (Word) by @Morzilla in https://github.com/storytold/wordcraft/pull/1631
- CI: VML shape type 6 is a right triangle in the preset-mapping test by @echelon in https://github.com/storytold/wordcraft/pull/1900
- CI: the rtTriangle VML fixture draws a right triangle by @echelon in https://github.com/storytold/wordcraft/pull/1909
- Layout: a page break followed by another page start makes one page by @finwarman in https://github.com/storytold/wordcraft/pull/1611
- Layout: a bookmark after a page break takes no line by @finwarman in https://github.com/storytold/wordcraft/pull/1615
- Layout: a numbered paragraph opening with a page break takes its number along by @finwarman in https://github.com/storytold/wordcraft/pull/1616
- Tables: text running past an exact-height row is cut off by @finwarman in https://github.com/storytold/wordcraft/pull/1617
- Tables: a row with less room than its minimum height moves on whole by @finwarman in https://github.com/storytold/wordcraft/pull/1618
- Layout: an empty section mark stays on a full page by @finwarman in https://github.com/storytold/wordcraft/pull/1614
- Layout: an inherited footer sizes its percentage tables by its own section by @finwarman in https://github.com/storytold/wordcraft/pull/1620
- Layout: paragraph spacing adds up when HTML auto spacing is off by @finwarman in https://github.com/storytold/wordcraft/pull/1612
- Fonts: a missing roman font is drawn in Cambria, as in Word by @finwarman in https://github.com/storytold/wordcraft/pull/1613
- Fonts: a Bidi theme slot names the theme's complex-script font by @finwarman in https://github.com/storytold/wordcraft/pull/1619
- Escape selects a text box or WordArt, so Delete removes it (#1538) by @Yasas-Sri in https://github.com/storytold/wordcraft/pull/1604
- i18n(it): the interface audit checks Italian; Privacy Settings wording; envelope label test by @D13GOOOO in https://github.com/storytold/wordcraft/pull/1627
- A floating object anchored after a page break stays on the page its paragraph starts on by @Morzilla in https://github.com/storytold/wordcraft/pull/1632
- View Gridlines outlines header and footer tables (#1628) by @benandez in https://github.com/storytold/wordcraft/pull/1633
- DOCX: keep a bare w:pgNumType when saving by @lhymes in https://github.com/storytold/wordcraft/pull/1634
- DOCX: keep an explicit horizontal w:textDirection when saving by @lhymes in https://github.com/storytold/wordcraft/pull/1635
- Draw arrowheads on open freeform paths by @finwarman in https://github.com/storytold/wordcraft/pull/1645
- DOCX: keep w:formProt when saving by @lhymes in https://github.com/storytold/wordcraft/pull/1636
- DOCX: keep row-level w:tblPrEx when saving by @lhymes in https://github.com/storytold/wordcraft/pull/1637
- M12: preserve document properties when importing legacy DOC and DOT by @LabDennis in https://github.com/storytold/wordcraft/pull/1640
- Shapes: draw flowchart OR spokes by @finwarman in https://github.com/storytold/wordcraft/pull/1644
- ODT import: text after a drawing shape stays in its paragraph (#1654) by @benandez in https://github.com/storytold/wordcraft/pull/1657
- Layout: empty line breaks do not move floating tables by @finwarman in https://github.com/storytold/wordcraft/pull/1658
- RTF import: Mac OS Roman and DOS code pages (
\mac,\pc,\pca) (#1653) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/1661 - Dropping several images inserts all of them (#1592) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1664
- Copy puts the formatted text on the system clipboard as HTML, not only copies with equations (#1523) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1667
- CLI PDF export: Arabic and Persian fall back to the craft-fonts Arabic face (#1652) by @benandez in https://github.com/storytold/wordcraft/pull/1668
- TOC page numbers reach the right margin of the TOC's section, and no blank line above imported entries by @dfgodvan in https://github.com/storytold/wordcraft/pull/1686
- engine: store replacement images under their true format extension by @midasmatterhorn in https://github.com/storytold/wordcraft/pull/1691
- Open on the Home tab every launch, as in Word (#1699) by @matstrange in https://github.com/storytold/wordcraft/pull/1700
- Tables: repeated header rows move to the next page with the first row (#1704) by @dfgodvan in https://github.com/storytold/wordcraft/pull/1705
- Text typed after a footnote or endnote number is no longer superscript (#1593) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1663
- Layout: field instructions do not add blank paragraphs by @finwarman in https://github.com/storytold/wordcraft/pull/1665
- Layout: hide labels on page-break-only list paragraphs by @finwarman in https://github.com/storytold/wordcraft/pull/1673
- Shift+Delete cuts the selection on macOS and Linux too (#1669) by @D13GOOOO in https://github.com/storytold/wordcraft/pull/1676
- M15.1: print-area strings translated in every interface catalog by @leoncral in https://github.com/storytold/wordcraft/pull/1702
- A click on the ribbon's chrome keeps typing in the document (#1093 follow-up) by @matstrange in https://github.com/storytold/wordcraft/pull/1703
- Tables: honor consistent preferred cell widths by @finwarman in https://github.com/storytold/wordcraft/pull/1709
- Docs: merge table rows that conflict resolutions left duplicated by @echelon in https://github.com/storytold/wordcraft/pull/1936
- Legacy VML freeforms (header rule lines) are drawn and kept on save by @mmazzieri in https://github.com/storytold/wordcraft/pull/1659
- CI: both recovery scan-error tests retry a scan a lock race skipped by @echelon in https://github.com/storytold/wordcraft/pull/1939
- Fix blurred text in Web and Draft Layout on long documents by @ripdog in https://github.com/storytold/wordcraft/pull/1152
- Shortcuts: more of Word's default keys (Insert-key clipboard, F2 file keys, field and outline keys) (gap #24) by @rp6186030 in https://github.com/storytold/wordcraft/pull/1166
- feat(print): add orientation support and pass landscape options to spooler by @emre-clk91 in https://github.com/storytold/wordcraft/pull/1389
- perf: lowercase HTML tag names during collection to avoid double String allocation by @ahutsunshin in https://github.com/storytold/wordcraft/pull/1261
- Proofing: Vietnamese text under the default English language gets no marks by @haisondb35-blip in https://github.com/storytold/wordcraft/pull/1553
- fix(formats): preserve leading whitespace in markdown escape_line_start by @divyanshu2074 in https://github.com/storytold/wordcraft/pull/1568
- Web: add option to load system installed fonts in dropdown by @GhostMitra in https://github.com/storytold/wordcraft/pull/1390
- Table Layout › Sort opens a Sort dialog: column, order and header row by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1205
- Table Layout › Formula opens a Formula dialog with Word's suggested formula by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1210
- i18n: add Korean UI catalog and font fallback (from #1216) by @echelon in https://github.com/storytold/wordcraft/pull/1955
- CI: recovery tests retry a load a lock race refused by @echelon in https://github.com/storytold/wordcraft/pull/1957
- i18n: add Swedish (sv) interface translation by @holmbom in https://github.com/storytold/wordcraft/pull/1219
- i18n: add Croatian (hr) interface translation by @andrejskvorc in https://github.com/storytold/wordcraft/pull/1271
- Ita Translate: Italian Reading Mode column widths (from #1040) by @echelon in https://github.com/storytold/wordcraft/pull/1959
- Margins and page sizes: follow the measurement unit and keep translated names by @andrejskvorc in https://github.com/storytold/wordcraft/pull/1274
- Tables: Backspace after a nested table stays in its cell by @rbr48 in https://github.com/storytold/wordcraft/pull/906
- get_text and CLI text omit tracked deletions (#866) by @ImpotStite in https://github.com/storytold/wordcraft/pull/944
- M1: fields keep w:dirty through saves; computing a result clears it (#877) by @edurbs in https://github.com/storytold/wordcraft/pull/946
- Docs: drop a stray merge marker from the ROADMAP progress log by @echelon in https://github.com/storytold/wordcraft/pull/1962
- fix(references): clear imported TOC field result on update (#878) by @Totopo27 in https://github.com/storytold/wordcraft/pull/953
- Tables: one selected cell's border drags in its row only by @rabis7575 in https://github.com/storytold/wordcraft/pull/970
- Tab stops: edit on the ruler (corner selector, click, drag, drag off) and an inline-edit table in the Tabs dialog by @iot-root in https://github.com/storytold/wordcraft/pull/976
- proof: Czech (cs-CZ) spelling from the installed Hunspell dictionary by @Losminek in https://github.com/storytold/wordcraft/pull/1048
- CI: rustfmt the proofing language list by @echelon in https://github.com/storytold/wordcraft/pull/1970
- layout.pageSetup validates its section values (#1582) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1584
- Tables: preserve row table border exceptions by @finwarman in https://github.com/storytold/wordcraft/pull/1708
- Fields: refresh unlocked DATE and TIME when a document is opened by @Hamza0101 in https://github.com/storytold/wordcraft/pull/1679
- Table style editor formats every table style part (#714) by @dkhlapov in https://github.com/storytold/wordcraft/pull/887
- CI: drop a duplicate contributor entry in people.toml by @echelon in https://github.com/storytold/wordcraft/pull/1977
- Recovery: a record lock held for a moment is waited out, not skipped by @echelon in https://github.com/storytold/wordcraft/pull/1979
- Table style review follow-ups: No Border on inherited parts, cell Top beats the style (#1288) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1296
- Tables: formulas with cell references, functions, number formats and F9 by @rbr48 in https://github.com/storytold/wordcraft/pull/907
- fix(ui): draw Arabic and other non-Latin comment text in balloons by @ms-youssef in https://github.com/storytold/wordcraft/pull/950
- #954: macOS ⌘←/⌘→ go to the line's start and end by @justinjohn0306 in https://github.com/storytold/wordcraft/pull/972
- Use the shared PDF writer while preserving WordCraft export behavior by @skylartaylor in https://github.com/storytold/wordcraft/pull/1558
- ci: add nix check workflow by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/2307
- Shorten Russian "Accessibility" label so it fits the options sidebar by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/2672
- #2717: keep inherited proofing choices in Language dialog by @OPUZZLES in https://github.com/storytold/wordcraft/pull/2736
- @raythurman2386 made their first contribution in https://github.com/storytold/wordcraft/pull/1179
- @Nghiathan13 made their first contribution in https://github.com/storytold/wordcraft/pull/1458
- @dfgodvan made their first contribution in https://github.com/storytold/wordcraft/pull/1461
- @cyril265 made their first contribution in https://github.com/storytold/wordcraft/pull/1474
- @saadkhantareen made their first contribution in https://github.com/storytold/wordcraft/pull/1490
- @ImpotStite made their first contribution in https://github.com/storytold/wordcraft/pull/1478
- @benandez made their first contribution in https://github.com/storytold/wordcraft/pull/1487
- @MMexicann made their first contribution in https://github.com/storytold/wordcraft/pull/1488
- @shlok2721-web made their first contribution in https://github.com/storytold/wordcraft/pull/1501
- @mjohnson7cd made their first contribution in https://github.com/storytold/wordcraft/pull/1525
- @HyakoV3 made their first contribution in https://github.com/storytold/wordcraft/pull/1536
- @kkilchrist made their first contribution in https://github.com/storytold/wordcraft/pull/1559
- @y2w8 made their first contribution in https://github.com/storytold/wordcraft/pull/1006
- @Losminek made their first contribution in https://github.com/storytold/wordcraft/pull/973
- @neupaneprashant made their first contribution in https://github.com/storytold/wordcraft/pull/1016
- @albayazid made their first contribution in https://github.com/storytold/wordcraft/pull/1049
- @tarpescu made their first contribution in https://github.com/storytold/wordcraft/pull/1050
- @lasse-tech made their first contribution in https://github.com/storytold/wordcraft/pull/1041
- @guruswarupa made their first contribution in https://github.com/storytold/wordcraft/pull/1046
- @H0ruu1 made their first contribution in https://github.com/storytold/wordcraft/pull/1052
- @Toddpe made their first contribution in https://github.com/storytold/wordcraft/pull/1069
- @marc-antoine-girard made their first contribution in https://github.com/storytold/wordcraft/pull/1193
- @tlomts-dev made their first contribution in https://github.com/storytold/wordcraft/pull/1194
- @dotCooCoo made their first contribution in https://github.com/storytold/wordcraft/pull/1250
- @ahutsunshin made their first contribution in https://github.com/storytold/wordcraft/pull/1257
- @neronek22 made their first contribution in https://github.com/storytold/wordcraft/pull/1298
- @Zaxaerith made their first contribution in https://github.com/storytold/wordcraft/pull/1301
- @andrejskvorc made their first contribution in https://github.com/storytold/wordcraft/pull/1272
- @mute-09 made their first contribution in https://github.com/storytold/wordcraft/pull/1313
- @mmazzieri made their first contribution in https://github.com/storytold/wordcraft/pull/1328
- @krinry made their first contribution in https://github.com/storytold/wordcraft/pull/1398
- @spiritbearlabs made their first contribution in https://github.com/storytold/wordcraft/pull/1450
- @divyanshu2074 made their first contribution in https://github.com/storytold/wordcraft/pull/1570
- @alik654zx made their first contribution in https://github.com/storytold/wordcraft/pull/1577
- @finwarman made their first contribution in https://github.com/storytold/wordcraft/pull/1598
- @squaredcow made their first contribution in https://github.com/storytold/wordcraft/pull/1565
- @lupant made their first contribution in https://github.com/storytold/wordcraft/pull/1585
- @haranishi made their first contribution in https://github.com/storytold/wordcraft/pull/1590
- @Morzilla made their first contribution in https://github.com/storytold/wordcraft/pull/1631
- @D13GOOOO made their first contribution in https://github.com/storytold/wordcraft/pull/1627
- @lhymes made their first contribution in https://github.com/storytold/wordcraft/pull/1634
- @LabDennis made their first contribution in https://github.com/storytold/wordcraft/pull/1640
- @midasmatterhorn made their first contribution in https://github.com/storytold/wordcraft/pull/1691
- @matstrange made their first contribution in https://github.com/storytold/wordcraft/pull/1700
- @leoncral made their first contribution in https://github.com/storytold/wordcraft/pull/1702
- @emre-clk91 made their first contribution in https://github.com/storytold/wordcraft/pull/1389
- @haisondb35-blip made their first contribution in https://github.com/storytold/wordcraft/pull/1553
- @holmbom made their first contribution in https://github.com/storytold/wordcraft/pull/1219
- @rbr48 made their first contribution in https://github.com/storytold/wordcraft/pull/906
- @Totopo27 made their first contribution in https://github.com/storytold/wordcraft/pull/953
- @iot-root made their first contribution in https://github.com/storytold/wordcraft/pull/976
- @Hamza0101 made their first contribution in https://github.com/storytold/wordcraft/pull/1679
- @ms-youssef made their first contribution in https://github.com/storytold/wordcraft/pull/950
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.7.0...v0.8.0
WordCraft v0.7.0
- Font list previews no longer keep every family in memory (#848) by @dkhlapov in https://github.com/storytold/wordcraft/pull/874
- Layout: blank pages put sections on the right side, and paragraph spacing is the larger of after and before (#733, rebased) by @echelon in https://github.com/storytold/wordcraft/pull/964
- Insert › Picture takes WMF and EMF metafiles (#802) by @dkhlapov in https://github.com/storytold/wordcraft/pull/869
- Wingdings, Webdings and Symbol text draws as Unicode symbols (#776) by @dkhlapov in https://github.com/storytold/wordcraft/pull/876
- Fonts: treat Windows charset names (Times New Roman Cyr, Arial CE…) as the font itself by @xmaks82 in https://github.com/storytold/wordcraft/pull/904
- i18n: French wording fixes after #729 by @tellebma in https://github.com/storytold/wordcraft/pull/901
- Open RTF in its code page, and Word/RTF files whose extension is wrong by @xmaks82 in https://github.com/storytold/wordcraft/pull/896
- RTF: read page size and margins, lay tables out on their cell edges by @xmaks82 in https://github.com/storytold/wordcraft/pull/902
- M15: Polish catalog covers style names, watermarks, paper sizes and the equation gallery by @witkowski01 in https://github.com/storytold/wordcraft/pull/871
- Print: select printers and submit jobs through craft-print by @skylartaylor in https://github.com/storytold/wordcraft/pull/783
- styles.modify takes the hex colours format.color takes (#865) by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/881
- Docs: list the CharProps and ParaProps fields (#865) by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/899
- Drawing ink no longer jumps the view back to the caret (#859) by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/892
- fix(doc): count generated numbered-list labels as words by @NavidZamanKhan in https://github.com/storytold/wordcraft/pull/908
- Track Changes: Accept All no longer joins an extra paragraph after a tracked delete from a paragraph end (#864) by @Silvertree2010 in https://github.com/storytold/wordcraft/pull/914
- ribbon: remove no-op drop(run) flagged by clippy::drop_non_drop by @Nael-Nathanael in https://github.com/storytold/wordcraft/pull/1431
- DOCX: keep Word ink placed directly in a run when saving (gap #2) by @rp6186030 in https://github.com/storytold/wordcraft/pull/1098
- Props colours take RRGGBB too: shading, underlineColor, border colour by @itrycodinganditsbad in https://github.com/storytold/wordcraft/pull/1089
- wordcraft-cli text keeps bullet and number labels on list items (#1080) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1094
- Save as Word 2003 XML Document (#1081) by @vangel76 in https://github.com/storytold/wordcraft/pull/1088
- Italian proofing: it_IT and it_CH spelling, suggestions, grammar and hyphenation (#951) by @regalf in https://github.com/storytold/wordcraft/pull/1090
- Table selection arrow stays visible on dark paper (#1078) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/1095
- Shapes: the drag preview shows the shape alone, not what was behind it by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1097
- LaTeX: a "[" after a line break or at the start of a list item stays text by @webdevtodayjason in https://github.com/storytold/wordcraft/pull/1099
- Markdown: list items that start like a block keep their text by @webdevtodayjason in https://github.com/storytold/wordcraft/pull/1100
- Charts of undrawn types (radar, stock...) show a placeholder by @itrycodinganditsbad in https://github.com/storytold/wordcraft/pull/1092
- Layout: a picture after a content control's start stays on its line (regression from #392) by @naxvog in https://github.com/storytold/wordcraft/pull/1102
- Export: page images draw headers and footers at full strength by @przemek-arch in https://github.com/storytold/wordcraft/pull/1106
- Canvas: handle keys before laying out, so a keystroke shows in its own frame by @przemek-arch in https://github.com/storytold/wordcraft/pull/1107
- Tools: ui.wheel control method and a headless perf_probe example by @przemek-arch in https://github.com/storytold/wordcraft/pull/1108
- Tools: cargo xtask visual-diff compares two PDFs of a document page by page by @przemek-arch in https://github.com/storytold/wordcraft/pull/1112
- Expand sample-text formulas on Enter (#1067) by @lokinmodar in https://github.com/storytold/wordcraft/pull/1101
- Backstage: add Close to the side menu, after Export by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1125
- Regression test: DrawingML shapes survive saving a .docx (#886) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1130
- Add Croatian spelling and grammar support by @mbaksa in https://github.com/storytold/wordcraft/pull/1114
- Drawings: VML text boxes keep their margins, fit and alignment; hidden drawings are kept but not shown by @naxvog in https://github.com/storytold/wordcraft/pull/1118
- Canvas: middle-click scrolls the document, like Word by @marcoarnulfo in https://github.com/storytold/wordcraft/pull/1121
- Honour Remove personal information / date and time on save (#1062) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1131
- Comment balloon buttons work, so an empty comment can be deleted (#1085) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1132
- Start screen: no blank document behind File › Home (#1129) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1134
- Caret contrasts with the page colour, shading or highlight under it (#299) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1137
- Clicks on ribbon and status-bar chrome keep typing in the document (#1093) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1138
- A dragged shape anchors in the column it lands in, so that column's text wraps around it (#884) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1139
- Keep a paragraph's space after clear of the footnote separator (#1116) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1140
- A chosen interface size is absolute; Auto keeps the display scale (#822) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1142
- Copied equations reach other programs as MathML (#816) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1147
- Equation pictures share a few atlas textures instead of hundreds (#1002) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1149
- Read Aloud starts PowerShell without a console window (#1122) by @dkhlapov in https://github.com/storytold/wordcraft/pull/1150
- @xmaks82 made their first contribution in https://github.com/storytold/wordcraft/pull/904
- @tellebma made their first contribution in https://github.com/storytold/wordcraft/pull/901
- @skylartaylor made their first contribution in https://github.com/storytold/wordcraft/pull/783
- @marcoarnulfo made their first contribution in https://github.com/storytold/wordcraft/pull/881
- @NavidZamanKhan made their first contribution in https://github.com/storytold/wordcraft/pull/908
- @Silvertree2010 made their first contribution in https://github.com/storytold/wordcraft/pull/914
- @Nael-Nathanael made their first contribution in https://github.com/storytold/wordcraft/pull/1431
- @rp6186030 made their first contribution in https://github.com/storytold/wordcraft/pull/1098
- @webdevtodayjason made their first contribution in https://github.com/storytold/wordcraft/pull/1099
- @przemek-arch made their first contribution in https://github.com/storytold/wordcraft/pull/1106
- @lokinmodar made their first contribution in https://github.com/storytold/wordcraft/pull/1101
- @mbaksa made their first contribution in https://github.com/storytold/wordcraft/pull/1114
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.6.1...v0.7.0
WordCraft v0.6.1
- Hyperlinks cover only their own text (#413) by @vangel76 in https://github.com/storytold/wordcraft/pull/449
- Groups keep rotated members' orientation; group resize; ink erase after rotation (#441, #442, #443, #445) by @vangel76 in https://github.com/storytold/wordcraft/pull/474
- Mail merge: SKIPIF, NEXT, IF in preview, header/footer fields (#427, #428, #429, #430) by @vangel76 in https://github.com/storytold/wordcraft/pull/478
- Options: interface size setting (#475) by @vangel76 in https://github.com/storytold/wordcraft/pull/480
- Citations: eight more bibliography styles (#383) by @vangel76 in https://github.com/storytold/wordcraft/pull/388
- Backstage: the side menu is fixed width, no dead resize handle by @vangel76 in https://github.com/storytold/wordcraft/pull/504
- CLI: a closed stdout ends quietly instead of panicking (#508) by @vangel76 in https://github.com/storytold/wordcraft/pull/510
- .doc import fixes: piece bold, section kinds, orientation, list overrides, style inheritance, alternate font names (#458–#463) by @vangel76 in https://github.com/storytold/wordcraft/pull/484
- Dialogs: switching tabs keeps the window's top edge in place (#507) by @vangel76 in https://github.com/storytold/wordcraft/pull/511
- Spelling: common words like "desktop" are recognised (#520) by @vangel76 in https://github.com/storytold/wordcraft/pull/522
- Equation fixes: numbering removal, control colour, undo for navigation edits, LaTeX text spaces (#444, #446, #447, #448) by @vangel76 in https://github.com/storytold/wordcraft/pull/487
- Import/export fixes: TXT encodings and list labels, RTF Unicode, ODT styles and cell colours, HTML borders and pre spaces, LaTeX alignment groups (#433–#440) by @vangel76 in https://github.com/storytold/wordcraft/pull/482
- i18n(es): consistent tú register, fix swapped Page Up/Page Down by @diegozpy in https://github.com/storytold/wordcraft/pull/514
- i18n: add Turkish (tr) interface translation by @PbyLoyth in https://github.com/storytold/wordcraft/pull/494
- i18n audit: full ribbon sweep, and the table style sample in the interface language (re-lands #313's last three commits) by @dkhlapov in https://github.com/storytold/wordcraft/pull/411
- Docs: collapse duplicate rows left by parallel merges by @vangel76 in https://github.com/storytold/wordcraft/pull/372
- Add Word's common keyboard shortcuts by @vangel76 in https://github.com/storytold/wordcraft/pull/338
- Field codes: show, edit, update, unlink, lock and step through fields like Word by @vangel76 in https://github.com/storytold/wordcraft/pull/349
- Move paragraphs up/down, promote/demote headings, Go Back (Shift+F5) and Alt+X Unicode toggle by @vangel76 in https://github.com/storytold/wordcraft/pull/351
- ci: refactor workflows to use storytold/craft-common-actions by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/639
- i18n: add Russian (ru) interface translation by @dkhlapov in https://github.com/storytold/wordcraft/pull/300
- Customize Keyboard dialog (#368) by @vangel76 in https://github.com/storytold/wordcraft/pull/378
- Customize Ribbon and Quick Access Toolbar (#379) by @vangel76 in https://github.com/storytold/wordcraft/pull/384
- Tight and Through text wrapping follow the object's outline by @vangel76 in https://github.com/storytold/wordcraft/pull/360
- Choose which side of an object text wraps on by @vangel76 in https://github.com/storytold/wordcraft/pull/364
- Phonetic Guide: ruby text (furigana, pinyin) over base text by @vangel76 in https://github.com/storytold/wordcraft/pull/296
- Enclose Characters: put a character in a circle, square, triangle or diamond by @vangel76 in https://github.com/storytold/wordcraft/pull/301
- Insert › Icons: a library of original icons, a searchable picker and Icon Color by @vangel76 in https://github.com/storytold/wordcraft/pull/318
- Mail merge: use Excel and OpenDocument spreadsheets as recipient lists by @vangel76 in https://github.com/storytold/wordcraft/pull/341
- Balance newspaper columns before a continuous section break by @vangel76 in https://github.com/storytold/wordcraft/pull/353
- Drawing Canvas: insert a canvas and draw shapes, pictures and text boxes inside it by @vangel76 in https://github.com/storytold/wordcraft/pull/356
- Documents keep their own footnote separators and continuation notice by @vangel76 in https://github.com/storytold/wordcraft/pull/361
- Right-to-left tables and sections by @vangel76 in https://github.com/storytold/wordcraft/pull/365
- Shape Format › Text: direction, alignment and linked text boxes (#369) by @vangel76 in https://github.com/storytold/wordcraft/pull/380
- Footnote and Endnote options per section (#385) by @vangel76 in https://github.com/storytold/wordcraft/pull/390
- Track Changes: moves (w:moveFrom/w:moveTo) (#400) by @vangel76 in https://github.com/storytold/wordcraft/pull/404
- Document grid: lines per page and characters per line (#391) by @vangel76 in https://github.com/storytold/wordcraft/pull/401
- Draw: Lasso Select, Add Pen, Ink to Shape and Ink Replay (#395) by @vangel76 in https://github.com/storytold/wordcraft/pull/408
- References dialogs: Caption, Index, Table of Contents, Create Source (#402) by @vangel76 in https://github.com/storytold/wordcraft/pull/410
- Accessibility: Alt Text pane for every object, Mark as decorative, deeper checker (#386) by @vangel76 in https://github.com/storytold/wordcraft/pull/396
- Dialogs: Line Numbers, Hyphenation, Language, Envelopes and Labels (#407) by @vangel76 in https://github.com/storytold/wordcraft/pull/414
- Insert › Chart: create and edit column, bar, line, pie, area, scatter and doughnut charts (#409) by @vangel76 in https://github.com/storytold/wordcraft/pull/415
- Content controls: keep, show and edit w:sdt (#381) by @vangel76 in https://github.com/storytold/wordcraft/pull/392
- WordArt text effects and transforms, and shape connectors (#416) by @vangel76 in https://github.com/storytold/wordcraft/pull/481
- Compare, Restrict Editing and AutoCorrect Options dialogs (#412) by @vangel76 in https://github.com/storytold/wordcraft/pull/476
- Editing fixes: Center range, undo grouping, Change Case runs and offsets, Bold undo at caret (#418, #419, #420, #421, #424) by @vangel76 in https://github.com/storytold/wordcraft/pull/477
- Layout fixes: mirrored margins, tall headers/footers push the body, endnote continuation, footnote caret on continuation pages (#452, #453, #454, #456, #457) by @vangel76 in https://github.com/storytold/wordcraft/pull/490
- Chinese interface: keep a system CJK fallback after the bundled face; find PingFang on macOS 12 (#486) by @vangel76 in https://github.com/storytold/wordcraft/pull/495
- Fixes: tracked paste marks, plain paste blank lines, paragraph marks in Replace All, Delete/Split columns and cells, Font dialog (#417, #422, #423, #431, #432, #466) by @vangel76 in https://github.com/storytold/wordcraft/pull/479
- Fixes: footnotes in table cells, NUMPAGES, bookmark link pages, bookmark around final table, INCLUDEPICTURE results by @vangel76 in https://github.com/storytold/wordcraft/pull/483
- Accessibility: the document canvas exposes its text to screen readers (#488) by @vangel76 in https://github.com/storytold/wordcraft/pull/489
- Font list: installed Chinese fonts are listed, by their Chinese names in a Chinese interface (#505) by @vangel76 in https://github.com/storytold/wordcraft/pull/506
- Paragraph dialog: mirror indents, same-style spacing, suppress line numbers, don't hyphenate (#512) by @vangel76 in https://github.com/storytold/wordcraft/pull/519
- Right-click on a picture or shape: Wrap Text submenu (#513) by @vangel76 in https://github.com/storytold/wordcraft/pull/521
- File › Options: Word's panes with working settings (#485) by @vangel76 in https://github.com/storytold/wordcraft/pull/492
- Templates and Add-ins: attached template, update styles, Organizer (#377) by @vangel76 in https://github.com/storytold/wordcraft/pull/382
- Vertical text for sections (w:textDirection) (#491) by @vangel76 in https://github.com/storytold/wordcraft/pull/496
- Outline view: Outlining tab, levels, collapse/expand, Show Level (#493) by @vangel76 in https://github.com/storytold/wordcraft/pull/499
- Insert › SmartArt: create and edit list, process, cycle, hierarchy, pyramid, radial, matrix and venn graphics (#497) by @vangel76 in https://github.com/storytold/wordcraft/pull/503
- CI: FreeBSD and Windows ARM64 nightly and on release, not per PR by @echelon in https://github.com/storytold/wordcraft/pull/530
- README: which AUR package to install (#509) by @dkhlapov in https://github.com/storytold/wordcraft/pull/616
- Windows: DX12 starts without shipped DXC DLLs (#603) by @vangel76 in https://github.com/storytold/wordcraft/pull/609
- docx: fix clippy large_enum_variant on main by @echelon in https://github.com/storytold/wordcraft/pull/779
- Styles: Update to Match Selection takes the selection's formatting (#555) by @vangel76 in https://github.com/storytold/wordcraft/pull/562
- AutoFormat: +---+ tables, arrow bullets, smileys inside words, border-line undo (#546) by @vangel76 in https://github.com/storytold/wordcraft/pull/547
- Find and Replace: special characters (^p, ^t, …) and wildcards (#543) by @vangel76 in https://github.com/storytold/wordcraft/pull/553
- Mini toolbar: every button fits, flush font box, proper dropdown arrows, dark-mode font list (#535) by @vangel76 in https://github.com/storytold/wordcraft/pull/540
- Fonts: system fallback reads each font file once (#605) by @vangel76 in https://github.com/storytold/wordcraft/pull/610
- Numbering: Chinese, Japanese and Korean number formats (一、二、三 …) (#534) by @vangel76 in https://github.com/storytold/wordcraft/pull/561
- Font dialog: separate Asian and Latin text fonts (#505) by @vangel76 in https://github.com/storytold/wordcraft/pull/536
- Chinese documents: character-unit indents, .doc indents and line spacing, floating tables, blank pages (#534) by @vangel76 in https://github.com/storytold/wordcraft/pull/550
- DOCX: theme colours and theme fonts take precedence over the fixed values, as in Word by @LloydNicholson in https://github.com/storytold/wordcraft/pull/626
- Open and save Word XML Document (Flat OPC); open Word 2003 XML (#548) by @vangel76 in https://github.com/storytold/wordcraft/pull/560
- Find: each Find Next in the dialog moves one match (#468) by @alexanderalber in https://github.com/storytold/wordcraft/pull/556
- Contributors: add my own entry (alexanderalber) by @alexanderalber in https://github.com/storytold/wordcraft/pull/566
- IME composition text uses document fallback fonts instead of boxes (#565) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/578
- Layout › Page Setup: the group launcher opens the Page Setup dialog (#471) by @alexanderalber in https://github.com/storytold/wordcraft/pull/563
- Web: a CSV picked as recipients no longer turns the next TXT drop into recipients (#472) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/579
- Zotero: a pending citation no longer edits a replacement document (#470) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/580
- Zotero: a note with a picture stays when its citation moves to body text (#469) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/581
- Pictures in headers/footers can be moved, resized and rotated by @DevCoderMax in https://github.com/storytold/wordcraft/pull/591
- Paragraph dialog: OK keeps Exactly and At Least line spacing (#467) by @alexanderalber in https://github.com/storytold/wordcraft/pull/564
- rustdoc: no links to private items in the UI crate (#665) by @dkhlapov in https://github.com/storytold/wordcraft/pull/683
- Brand licence: name WordCraft, not DesignCraft (#664) by @dkhlapov in https://github.com/storytold/wordcraft/pull/682
- Fonts: Palatino Linotype / Book Antiqua prefer Palatino look-alikes (#670) by @vangel76 in https://github.com/storytold/wordcraft/pull/677
- fix(docx): preserve omitted paragraph defaults by @OPUZZLES in https://github.com/storytold/wordcraft/pull/647
- Drag after a double/triple-click extends the selection by words/paragraphs (#549) by @dkhlapov in https://github.com/storytold/wordcraft/pull/649
- Open playlists and other text files (.m3u, .m3u8, .log, .ini, …) (#569) by @dkhlapov in https://github.com/storytold/wordcraft/pull/648
- Table: a vertical merge lays out and hit-tests as one cell (#640) by @vangel76 in https://github.com/storytold/wordcraft/pull/669
- DOCX diagrams: theme-styled shapes and connectors, arrowheads, canvases, VML lines (#611) by @dkhlapov in https://github.com/storytold/wordcraft/pull/671
- Complex scripts: shape Myanmar, Khmer and Indic text; caret and line breaks respect syllables (#604) by @dkhlapov in https://github.com/storytold/wordcraft/pull/652
- More Colors… and a Colors dialog for custom colours (#606) by @dkhlapov in https://github.com/storytold/wordcraft/pull/666
- Print: preview, page range, copies and collate on File > Print (#641) by @vangel76 in https://github.com/storytold/wordcraft/pull/674
- Print Markup: comments in PDF, print, images and text copies (#589) by @dkhlapov in https://github.com/storytold/wordcraft/pull/667
- Design tab: style set gallery gets its own box, no overlap with Colors and Fonts (#638) by @vangel76 in https://github.com/storytold/wordcraft/pull/673
- Security: pictures travel in the reply, exported links keep only safe targets (#678, #679) by @petycomp in https://github.com/storytold/wordcraft/pull/681
- docs: fix coordination error in ROADMAP.md by @lunar-me in https://github.com/storytold/wordcraft/pull/715
- Release workflow: pass the Azure signing secrets by @echelon in https://github.com/storytold/wordcraft/pull/752
- layout: make Myanmar fallback tests deterministic by @echelon in https://github.com/storytold/wordcraft/pull/807
- View: Hide White Space between pages in Print Layout (#645) by @vangel76 in https://github.com/storytold/wordcraft/pull/684
- Add fonts at run time: Add Font…, drop a font file, font.add (#582) by @dkhlapov in https://github.com/storytold/wordcraft/pull/668
- References › Table of Authorities: labelled Insert, plus Update Table (#661) by @dkhlapov in https://github.com/storytold/wordcraft/pull/693
- Input field borders reach 3:1 contrast in both themes (#657) by @dkhlapov in https://github.com/storytold/wordcraft/pull/696
- Pictures: WMF drawings fill their frame like Word plays them by @naxvog in https://github.com/storytold/wordcraft/pull/739
- Ink: draw the live pen stroke in the dark-page colour while drawing, not only after lifting the pen (#730) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/746
- Backspace still erases while Shift is held (#707) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/747
- Dark theme: readable text on the accent (#655) by @dkhlapov in https://github.com/storytold/wordcraft/pull/704
- Let dialogs be dragged by their title bar instead of pinning them to the screen centre (#732) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/748
- Layout: multiple line spacing adds its leading below the text, like Word by @naxvog in https://github.com/storytold/wordcraft/pull/719
- Web: add wordcraft.ico as favicon via Trunk by @GhostMitra in https://github.com/storytold/wordcraft/pull/717
- Track Changes: deletions in balloons (Show revisions in balloons now work) by @Matty-PW in https://github.com/storytold/wordcraft/pull/734
- Layout: a page total in the footer no longer lays the body out twice (#771) by @dkhlapov in https://github.com/storytold/wordcraft/pull/773
- speech: launch Windows PowerShell by full path for Read Aloud by @SteamSmith in https://github.com/storytold/wordcraft/pull/792
- Save As: a bare filename typed in the dialog now saves correctly (#689) by @notdezzi in https://github.com/storytold/wordcraft/pull/757
- Selection: dragging past the viewport edge auto-scrolls (#688) by @notdezzi in https://github.com/storytold/wordcraft/pull/758
- #755: Line Numbers and Hyphenation measure in the Options unit by @edurbs in https://github.com/storytold/wordcraft/pull/795
- M8.1: Bibliography DOCX round-trip: support extended fields (#410) and upstream sync (#532) by @yefan911 in https://github.com/storytold/wordcraft/pull/790
- Ruler: the horizontal scale mirrors for right-to-left paragraphs (#692) by @notdezzi in https://github.com/storytold/wordcraft/pull/756
- Ribbon and context-menu Paste insert the system clipboard's text (#584) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/593
- MacOS window close by @nusenyaw66 in https://github.com/storytold/wordcraft/pull/539
- fix: protect original files during native saves by @OPUZZLES in https://github.com/storytold/wordcraft/pull/621
- Caret: glide and fade like Word for Windows; File › Options › Advanced › Animation turns it off by @arcanii in https://github.com/storytold/wordcraft/pull/570
- Linux: open/save works without a portal file dialog (#576) by @vangel76 in https://github.com/storytold/wordcraft/pull/583
- Accessibility Options: Animation effects setting that follows the system by @JeremyYao in https://github.com/storytold/wordcraft/pull/791
- fix(docx): preserve custom XML stores through saves by @OPUZZLES in https://github.com/storytold/wordcraft/pull/612
- Tables: resize by dragging column borders, row borders and the corner handle (#217) by @rabis7575 in https://github.com/storytold/wordcraft/pull/600
- fix(docx): preserve unstyled TOC result ranges by @OPUZZLES in https://github.com/storytold/wordcraft/pull/617
- .doc import: inline pictures, floating pictures and basic shapes (#551) by @vangel76 in https://github.com/storytold/wordcraft/pull/558
- i18n: add Italian interface (it) by @fabiodalez-dev in https://github.com/storytold/wordcraft/pull/598
- Add German (de) interface language by @arekown in https://github.com/storytold/wordcraft/pull/574
- M15: Polish interface, and Polish spelling, grammar and hyphenation by @witkowski01 in https://github.com/storytold/wordcraft/pull/346
- i18n: add Czech (cs) interface translation by @DanielKnourek in https://github.com/storytold/wordcraft/pull/387
- Linux: the display theme asks the desktop, not winit by @gyurix in https://github.com/storytold/wordcraft/pull/298
- Fix CJK fallback mixing serif/sans faces within one run by @jeleesky in https://github.com/storytold/wordcraft/pull/567
- Open Word documents with WordCraft by default (file associations + Options button) by @vangel76 in https://github.com/storytold/wordcraft/pull/304
- Tests: linear-time checks measure CPU time, robust under load by @echelon in https://github.com/storytold/wordcraft/pull/850
- Linux: default to XWayland for file drag-and-drop on Wayland desktops by @dylanmtaylor in https://github.com/storytold/wordcraft/pull/220
- Preserve independent complex-script formatting during DOCX round trips by @shirizhaki in https://github.com/storytold/wordcraft/pull/366
- Numeral display modes: Arabic, Hindi, Context and System digits (view.numeral) by @abdo4312 in https://github.com/storytold/wordcraft/pull/501
- Fix bulleted list toolbar button active state by @Cyberverse-cent0 in https://github.com/storytold/wordcraft/pull/651
- web: use File System Access API showSaveFilePicker with download fallback by @GhostMitra in https://github.com/storytold/wordcraft/pull/728
- Backstage: add Save As page and close on successful save by @GhostMitra in https://github.com/storytold/wordcraft/pull/727
- Fix sentence-capitalization suggestions after ellipses by @ripdog in https://github.com/storytold/wordcraft/pull/742
- Fix paragraph alignment focus by @Osaym in https://github.com/storytold/wordcraft/pull/690
- ui-egui: fix Windows clippy in desktop_theme by @echelon in https://github.com/storytold/wordcraft/pull/872
- Interface colours come from the theme (#656) by @dkhlapov in https://github.com/storytold/wordcraft/pull/705
- Dark theme: gallery previews no longer bright white (#663) by @dkhlapov in https://github.com/storytold/wordcraft/pull/706
- Skip non-English runs in proofing instead of flagging them (#100) by @regalf in https://github.com/storytold/wordcraft/pull/741
- Added some fixes to the spanish "Info" Page on Wordcraft by @SammyL-eo in https://github.com/storytold/wordcraft/pull/695
- One drop-down marker on every ribbon button (#659) by @dkhlapov in https://github.com/storytold/wordcraft/pull/697
- Menu buttons grey out while their command is disabled (#658) by @dkhlapov in https://github.com/storytold/wordcraft/pull/698
- Ribbon: large-button labels end above the group titles (#653) by @dkhlapov in https://github.com/storytold/wordcraft/pull/699
- Layout › Paragraph: fields fit above the title and line up (#654) by @dkhlapov in https://github.com/storytold/wordcraft/pull/703
- KeyTips: Quick Access Toolbar badges, saved option and native Alt fix (#620) by @m1ssha in https://github.com/storytold/wordcraft/pull/709
- Add paginated Reading Mode with smooth column navigation by @ripdog in https://github.com/storytold/wordcraft/pull/740
- i18n: add French (fr) interface by @pechnikov2026-star in https://github.com/storytold/wordcraft/pull/729
- i18n(hu): complete the Hungarian catalog again by @Skaywalker in https://github.com/storytold/wordcraft/pull/842
- Bidi: auto-detect RTL paragraph direction when typing Kurdish, Arabic and Hebrew by @Hevarh1 in https://github.com/storytold/wordcraft/pull/713
- Layout: an inline picture wider than the text keeps its size, like Word by @naxvog in https://github.com/storytold/wordcraft/pull/745
- Fix Navigation pane expanding for long headings by @ripdog in https://github.com/storytold/wordcraft/pull/759
- i18n: complete Turkish interface catalog with 2,170 entries and full … by @yeniufuklar-com in https://github.com/storytold/wordcraft/pull/774
- MCP: confine file access with --automation-read-root and --automation-write-root (#769) by @isaac-levine in https://github.com/storytold/wordcraft/pull/798
- Persist the custom dictionary across sessions (#40) by @regalf in https://github.com/storytold/wordcraft/pull/796
- DOCX: preserve native Word ink on save by @OPUZZLES in https://github.com/storytold/wordcraft/pull/592
- AutoCorrect: TWo INitial CApitals, cAPS LOCK and table-cell capitals (#544) by @vangel76 in https://github.com/storytold/wordcraft/pull/545
- Affix engine: FLAG UTF-8, 128 flag bits, continuation classes, FORBIDDENWORD (#100) by @edurbs in https://github.com/storytold/wordcraft/pull/782
- Portuguese proofing: pt-BR spelling, suggestions, grammar and hyphenation (#100) by @edurbs in https://github.com/storytold/wordcraft/pull/797
- Hyphenation: Bulgarian text follows the Bulgarian syllable rules by @bulgariamitko in https://github.com/storytold/wordcraft/pull/826
- i18n: add Bulgarian (bg) interface translation by @bulgariamitko in https://github.com/storytold/wordcraft/pull/825
- ODT import reads page size, orientation and margins from styles.xml (#810) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/829
- Paste keeps other programs' formatting; clipboard pictures on Wayland (#687, #833) by @dkhlapov in https://github.com/storytold/wordcraft/pull/847
- New documents follow the system region: A4, centimetres and decimal comma outside the US (#838) by @dkhlapov in https://github.com/storytold/wordcraft/pull/857
- Ctrl/⌘+F focuses the Find box, so typing searches (#772) by @Yasas-Sri in https://github.com/storytold/wordcraft/pull/823
- Comment cards show the time as well as the date (#812) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/828
- fix(ui): equation gallery tiles follow the dark theme (#817) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/827
- Accept and Reject at the caret cover a tracked change split by a comment (#809) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/830
- Keep the font table and embedded fonts when saving a .docx (#770) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/831
- Zoom after One Page keeps one page per row (#768) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/832
- Tables: row borders stay apart around a vertical merge (#640) by @rabis7575 in https://github.com/storytold/wordcraft/pull/841
- PDF export: internal links in linear time by @echelon in https://github.com/storytold/wordcraft/pull/937
- fix(windows): start 32-bit builds on OpenGL so launch no longer exits by @odedigo in https://github.com/storytold/wordcraft/pull/839
- Ribbon keytip letters like Word for Windows by @echelon in https://github.com/storytold/wordcraft/pull/922
- fix(ui): draw non-Latin file names in the window caption by @odedigo in https://github.com/storytold/wordcraft/pull/840
- Table of contents entries drawn plain, as in Word by @echelon in https://github.com/storytold/wordcraft/pull/930
- Ribbon groups fit above their labels (View › Show, Developer › Controls, Layout › Paragraph) by @manucarcor in https://github.com/storytold/wordcraft/pull/910
- Alt+Q moves to "Tell me" command search (#819) by @dkhlapov in https://github.com/storytold/wordcraft/pull/849
- Spaces and tabs don't make a line taller by @echelon in https://github.com/storytold/wordcraft/pull/931
- .doc: tab stops and section breaks read correctly by @echelon in https://github.com/storytold/wordcraft/pull/925
- Word 365 cover pages: freeforms in groups, text-box margins and Resize to fit (#743) by @dkhlapov in https://github.com/storytold/wordcraft/pull/843
- Heading numbers from a style's list level (6.4.5, not 6.15) by @echelon in https://github.com/storytold/wordcraft/pull/926
- A list label raises its line, but doesn't deepen it by @echelon in https://github.com/storytold/wordcraft/pull/928
- Sorting and table numbers follow the text's language (#836, #837) by @dkhlapov in https://github.com/storytold/wordcraft/pull/844
- Hidden end-of-cell marks (hideMark) by @echelon in https://github.com/storytold/wordcraft/pull/939
- ROADMAP: progress log table renders again by @echelon in https://github.com/storytold/wordcraft/pull/947
- layout tests: fix clippy in a_hidden_cell_mark_takes_no_room by @echelon in https://github.com/storytold/wordcraft/pull/948
- Text frames placed like Word's and kept on save by @echelon in https://github.com/storytold/wordcraft/pull/935
- List indents and style indents combine like Word by @echelon in https://github.com/storytold/wordcraft/pull/927
- AutoCorrect: the English replacement list applies only to English text (#835) by @dkhlapov in https://github.com/storytold/wordcraft/pull/846
- Keep with next splits a paragraph that doesn't fit anyway by @echelon in https://github.com/storytold/wordcraft/pull/933
- Start on File › Home when launched with nothing to open (#766) by @dkhlapov in https://github.com/storytold/wordcraft/pull/853
- An empty continuous section mark takes no room by @echelon in https://github.com/storytold/wordcraft/pull/940
- Undo history list beside the Quick Access Toolbar's Undo (#701) by @dkhlapov in https://github.com/storytold/wordcraft/pull/855
- Paragraph-relative floats start above the space before by @echelon in https://github.com/storytold/wordcraft/pull/941
- i18n(es): translate the equation gallery and built-in style names by @diegozpy in https://github.com/storytold/wordcraft/pull/854
- Text after a column break uses the new column's width by @echelon in https://github.com/storytold/wordcraft/pull/934
- Space before at the top of a page like Word by @echelon in https://github.com/storytold/wordcraft/pull/932
- Tables: select, insert and move with the mouse; double-click a border to AutoFit by @rabis7575 in https://github.com/storytold/wordcraft/pull/637
- Kerning and automatic paragraph spacing like Word by @echelon in https://github.com/storytold/wordcraft/pull/923
- No automatic spacing between list items by @echelon in https://github.com/storytold/wordcraft/pull/924
- Shift+F10 opens the context menu at the caret (#821) by @echelon in https://github.com/storytold/wordcraft/pull/920
- Tables: the right-click menu offers the table's commands by @rabis7575 in https://github.com/storytold/wordcraft/pull/694
- Tables: drags and Shift+arrows over cells select whole cells by @rabis7575 in https://github.com/storytold/wordcraft/pull/722
- Rulers: table column and row markers; indents in a cell measured from it by @rabis7575 in https://github.com/storytold/wordcraft/pull/710
- Alt+Q opens Search like Word (#819) by @echelon in https://github.com/storytold/wordcraft/pull/919
- Tables: Ctrl, Alt, left-edge and selected-cells border drags by @rabis7575 in https://github.com/storytold/wordcraft/pull/720
- Ctrl+F searches in the Navigation pane; one Find and Replace dialog (#712) by @echelon in https://github.com/storytold/wordcraft/pull/921
- Fonts: documents use the craft-fonts Simplified Chinese face (fixes FreeBSD CI after #567) by @dkhlapov in https://github.com/storytold/wordcraft/pull/888
- Smooth scrolling through a very large table (#811) by @dkhlapov in https://github.com/storytold/wordcraft/pull/891
- Save Changes prompt answers from the keyboard (#861) by @dkhlapov in https://github.com/storytold/wordcraft/pull/870
- Section breaks no longer delete the selected text (#852) by @dkhlapov in https://github.com/storytold/wordcraft/pull/875
- Click in the left margin selects lines (selection bar) (#856) by @dkhlapov in https://github.com/storytold/wordcraft/pull/879
- @diegozpy made their first contribution in https://github.com/storytold/wordcraft/pull/514
- @PbyLoyth made their first contribution in https://github.com/storytold/wordcraft/pull/494
- @dylanmtaylor made their first contribution in https://github.com/storytold/wordcraft/pull/639
- @alexanderalber made their first contribution in https://github.com/storytold/wordcraft/pull/556
- @DevCoderMax made their first contribution in https://github.com/storytold/wordcraft/pull/591
- @OPUZZLES made their first contribution in https://github.com/storytold/wordcraft/pull/647
- @petycomp made their first contribution in https://github.com/storytold/wordcraft/pull/681
- @lunar-me made their first contribution in https://github.com/storytold/wordcraft/pull/715
- @GhostMitra made their first contribution in https://github.com/storytold/wordcraft/pull/717
- @Matty-PW made their first contribution in https://github.com/storytold/wordcraft/pull/734
- @SteamSmith made their first contribution in https://github.com/storytold/wordcraft/pull/792
- @notdezzi made their first contribution in https://github.com/storytold/wordcraft/pull/757
- @yefan911 made their first contribution in https://github.com/storytold/wordcraft/pull/790
- @nusenyaw66 made their first contribution in https://github.com/storytold/wordcraft/pull/539
- @arcanii made their first contribution in https://github.com/storytold/wordcraft/pull/570
- @JeremyYao made their first contribution in https://github.com/storytold/wordcraft/pull/791
- @rabis7575 made their first contribution in https://github.com/storytold/wordcraft/pull/600
- @fabiodalez-dev made their first contribution in https://github.com/storytold/wordcraft/pull/598
- @arekown made their first contribution in https://github.com/storytold/wordcraft/pull/574
- @DanielKnourek made their first contribution in https://github.com/storytold/wordcraft/pull/387
- @gyurix made their first contribution in https://github.com/storytold/wordcraft/pull/298
- @jeleesky made their first contribution in https://github.com/storytold/wordcraft/pull/567
- @shirizhaki made their first contribution in https://github.com/storytold/wordcraft/pull/366
- @abdo4312 made their first contribution in https://github.com/storytold/wordcraft/pull/501
- @Cyberverse-cent0 made their first contribution in https://github.com/storytold/wordcraft/pull/651
- @ripdog made their first contribution in https://github.com/storytold/wordcraft/pull/742
- @Osaym made their first contribution in https://github.com/storytold/wordcraft/pull/690
- @regalf made their first contribution in https://github.com/storytold/wordcraft/pull/741
- @SammyL-eo made their first contribution in https://github.com/storytold/wordcraft/pull/695
- @m1ssha made their first contribution in https://github.com/storytold/wordcraft/pull/709
- @pechnikov2026-star made their first contribution in https://github.com/storytold/wordcraft/pull/729
- @Skaywalker made their first contribution in https://github.com/storytold/wordcraft/pull/842
- @Hevarh1 made their first contribution in https://github.com/storytold/wordcraft/pull/713
- @yeniufuklar-com made their first contribution in https://github.com/storytold/wordcraft/pull/774
- @isaac-levine made their first contribution in https://github.com/storytold/wordcraft/pull/798
- @bulgariamitko made their first contribution in https://github.com/storytold/wordcraft/pull/826
- @Yasas-Sri made their first contribution in https://github.com/storytold/wordcraft/pull/823
- @odedigo made their first contribution in https://github.com/storytold/wordcraft/pull/839
- @manucarcor made their first contribution in https://github.com/storytold/wordcraft/pull/910
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.5.0...v0.6.1
WordCraft v0.5.0
- Typing parity with Word: lists, AutoFormat and AutoCorrect as you type by @echelon in https://github.com/storytold/wordcraft/pull/204
- Desktop: keep the off-screen check until the monitor size is known (#23) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/76
- DOCX: keep a line break written directly in a paragraph (#96) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/101
- Page break (Ctrl+Enter) survives ODT/TXT/Markdown/HTML export and no longer glues words (#84) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/86
- HTML import: tables without borders stay borderless in .docx (#99) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/102
- Control server closes on non-JSON input; hyperlinks follow only http/https/mailto (#34) by @dkhlapov in https://github.com/storytold/wordcraft/pull/72
- Tests: don't read the sample document aloud on every run by @goldsbd in https://github.com/storytold/wordcraft/pull/75
- Import: HTML without keeps its body; RTF pictures inside \shppict are kept by @goldsbd in https://github.com/storytold/wordcraft/pull/154
- M6: TOC follow-ups from #52 review, and a whole TOC heading in LibreOffice by @goldsbd in https://github.com/storytold/wordcraft/pull/74
- Dark page: View › Switch Modes shows the page dark with inverted colours by @gledguri in https://github.com/storytold/wordcraft/pull/194
- Reject unknown WordCraft CLI options before side effects by @cyfung1031 in https://github.com/storytold/wordcraft/pull/166
- Issue #126: Web hosting guide no longer lists the unsupported ?cpu renderer flag by @LloydNicholson in https://github.com/storytold/wordcraft/pull/177
- PDF: draw fonts krilla can't subset as outlines instead of failing by @naxvog in https://github.com/storytold/wordcraft/pull/132
- Lists: honour a list's own level definitions (w:lvlOverride/w:lvl) by @naxvog in https://github.com/storytold/wordcraft/pull/134
- Add Brazilian Portuguese (pt-br) interface translation by @edurbs in https://github.com/storytold/wordcraft/pull/128
- Desktop: send the window title only when it changes, so an idle app stops redrawing (#117) by @g1obalworlds in https://github.com/storytold/wordcraft/pull/180
- Zoom the page with Ctrl+scroll and pinch (#139) by @Geljic in https://github.com/storytold/wordcraft/pull/179
- Find/Replace skips text deleted under Track Changes (#89); a failed command keeps undo history by @goldsbd in https://github.com/storytold/wordcraft/pull/153
- Find and Replace: Replace All now respects Track Changes (#88) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/92
- #147: wire Picture Format UI for inserted pictures by @gittonyp in https://github.com/storytold/wordcraft/pull/150
- DOCX: keep a .docm's macros and signatures on save; right content types for .docm/.dotx/.dotm by @goldsbd in https://github.com/storytold/wordcraft/pull/172
- M2: styles.apply (Apply Styles) command; parity 355/405 by @StrajnarFilip in https://github.com/storytold/wordcraft/pull/114
- Tables: draw style borders when w:tblBorders is empty (#143) by @edurbs in https://github.com/storytold/wordcraft/pull/148
- Lists: a numbered list after a bulleted list keeps its numbering in ODT, RTF and Markdown (#83) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/87
- Control port: require a per-window key (split from #54) by @lpgn in https://github.com/storytold/wordcraft/pull/124
- DOCX: a style's East Asian / complex-script font no longer replaces the Latin font (#93) by @LloydNicholson in https://github.com/storytold/wordcraft/pull/111
- Issue #174: Footnotes and endnotes from Word files show their number by @LloydNicholson in https://github.com/storytold/wordcraft/pull/103
- PDF: put the shown text of fields and note numbers in the text layer by @naxvog in https://github.com/storytold/wordcraft/pull/133
- LaTeX (.tex) import and export (#7) by @DWAA1660 in https://github.com/storytold/wordcraft/pull/11
- Add Spanish interface language, and make ribbon overflow visible by @GeronimoCastano in https://github.com/storytold/wordcraft/pull/129
- Layout: place floating pictures and shapes the way Word does by @naxvog in https://github.com/storytold/wordcraft/pull/136
- Tables: Word 2013 table edge, and floating tables (w:tblpPr) by @naxvog in https://github.com/storytold/wordcraft/pull/137
- Character border (Home > Font > Character Border) by @999sian in https://github.com/storytold/wordcraft/pull/60
- Align WordCraft page rasters to physical texels by @cyfung1031 in https://github.com/storytold/wordcraft/pull/165
- Add Ukrainian (uk) interface translation by @dmatviichuk in https://github.com/storytold/wordcraft/pull/91
- Layout: picture line heights, body top below the header, table row heights by @naxvog in https://github.com/storytold/wordcraft/pull/138
- Render: draw on-screen text like macOS, on whole pixels by @ssamstudio in https://github.com/storytold/wordcraft/pull/110
- Layout: shrink spaces in justified lines like Word 2013+ (compatibility mode 15) by @ssamstudio in https://github.com/storytold/wordcraft/pull/109
- HTML import: pictures referenced by a relative path are embedded (#98) by @LloydNicholson in https://github.com/storytold/wordcraft/pull/113
- UI: keytips, mini-toolbar, ribbon overflow, macOS typography by @chiranjeevi-max in https://github.com/storytold/wordcraft/pull/43
- Desktop and web: ask to save changes before New, Open or Close; AutoSave only files you saved by @goldsbd in https://github.com/storytold/wordcraft/pull/151
- Envelopes, Labels, Finish & Merge: ask to save changes first (depends on #151) by @goldsbd in https://github.com/storytold/wordcraft/pull/171
- Hidden text: no line breaks, hyphens, wrap areas or bookmark text from text that isn't shown (builds on #152) by @goldsbd in https://github.com/storytold/wordcraft/pull/173
- Zotero integration: cite while you write, with a Zotero tab by @gledguri in https://github.com/storytold/wordcraft/pull/189
- Read Aloud: player with speed control, sentence skipping, skips citations by @gledguri in https://github.com/storytold/wordcraft/pull/190
- Import Word 97-2003 .doc files (#28) by @edurbs in https://github.com/storytold/wordcraft/pull/145
- Text boxes and floating objects: editing, drag/resize, wrapping, overflow, footnotes by @WeebLabs in https://github.com/storytold/wordcraft/pull/46
- Issue #175: Tables: cell text takes its table style's formatting; derived table styles keep their base by @LloydNicholson in https://github.com/storytold/wordcraft/pull/104
- Equations: Word (OMML) import, layout and save, plus an equation editor like Word's by @gledguri in https://github.com/storytold/wordcraft/pull/191
- Track changes: keep other authors' deletions, credit paragraph splits, exact edit snapshots (split from #54) by @lpgn in https://github.com/storytold/wordcraft/pull/125
- Right-to-left and Persian text support (bidi, shaping, RTL paragraphs, DOCX) by @saeedemperor in https://github.com/storytold/wordcraft/pull/207
- macOS: open documents from Finder, the Dock and
open -a(#27) by @LloydNicholson in https://github.com/storytold/wordcraft/pull/223 - Use the browser clock for comment and tracked-change dates on the web by @itrycodinganditsbad in https://github.com/storytold/wordcraft/pull/214
- Shift+F3 runs Change Case again, not Find Previous (#186) by @vangel76 in https://github.com/storytold/wordcraft/pull/221
- web: print straight to the system print dialog, not just export by @Dejan-Port in https://github.com/storytold/wordcraft/pull/209
- Headless: name the author of tracked changes, and list review.trackChanges' value param by @vangel76 in https://github.com/storytold/wordcraft/pull/224
- Cross-references point at real bookmarks, and Update Field refreshes them by @vangel76 in https://github.com/storytold/wordcraft/pull/227
- Tests: shapes and pictures can be clicked, resized, dragged and nudged (#142, #82) by @vangel76 in https://github.com/storytold/wordcraft/pull/228
- DOCX: absolutely positioned VML text boxes float instead of pushing the body down (#149) by @vangel76 in https://github.com/storytold/wordcraft/pull/242
- Add a System interface theme that follows the OS light/dark appearance (#115) by @vangel76 in https://github.com/storytold/wordcraft/pull/249
- Reject All removes paragraph breaks inserted with Track Changes on by @vangel76 in https://github.com/storytold/wordcraft/pull/244
- Web: use the browser clock everywhere on wasm (follow-up to #214) by @dkhlapov in https://github.com/storytold/wordcraft/pull/230
- On macOS, the window buttons sit centred in the title bar and the File back button no longer crowds them by @vangel76 in https://github.com/storytold/wordcraft/pull/255
- File ▸ Home and File ▸ New are no longer the same page (#141) by @vangel76 in https://github.com/storytold/wordcraft/pull/254
- Zoomed out, pages sit side by side in rows, like Print Layout in Word by @vangel76 in https://github.com/storytold/wordcraft/pull/251
- Windows installer: show a finish page after installing (#198) by @vangel76 in https://github.com/storytold/wordcraft/pull/257
- Font picker: build only the visible rows, cache font fallbacks (#121, #59) by @dkhlapov in https://github.com/storytold/wordcraft/pull/233
- Contributors: add dkhlapov by @dkhlapov in https://github.com/storytold/wordcraft/pull/238
- Font list offers every installed weight (Light, Medium, SemiBold, Black…), as Word does by @vangel76 in https://github.com/storytold/wordcraft/pull/239
- Chinese interface shows every character instead of boxes on Windows by @vangel76 in https://github.com/storytold/wordcraft/pull/248
- Table Layout › Text Direction turns the cell's text (#226) by @vangel76 in https://github.com/storytold/wordcraft/pull/245
- File dialogs (Open, Save As, Export) no longer freeze the window on Linux (#94) by @vangel76 in https://github.com/storytold/wordcraft/pull/246
- Select Recipients lets you type a list or pick a CSV, instead of a parameters error by @vangel76 in https://github.com/storytold/wordcraft/pull/247
- Mailings: Start Mail Merge and Rules open menus, and Match Fields and Check for Errors show what they found by @vangel76 in https://github.com/storytold/wordcraft/pull/259
- Touchpad scrolling follows your fingers and coasts after a flick; the mouse wheel scrolls further (#122) by @vangel76 in https://github.com/storytold/wordcraft/pull/252
- View tab: Zoom In/Out buttons that step from the shown zoom (#67) by @dkhlapov in https://github.com/storytold/wordcraft/pull/232
- View › Gridlines shows the page grid; Table Layout › View Gridlines outlines table cells (#69) by @vangel76 in https://github.com/storytold/wordcraft/pull/243
- Create and modify your own table styles, and they stay in the .docx (#146) by @vangel76 in https://github.com/storytold/wordcraft/pull/256
- Advanced Find: every match, Reading Highlight, search within a selection by @dkhlapov in https://github.com/storytold/wordcraft/pull/234
- Paste Special: paste as formatted text, RTF, HTML or unformatted text by @dkhlapov in https://github.com/storytold/wordcraft/pull/235
- Style Inspector: pane, styles.inspect query and per-level clearing by @dkhlapov in https://github.com/storytold/wordcraft/pull/236
- Column Selection: Alt+drag or Ctrl+Shift+F8 selects a block of text by @dkhlapov in https://github.com/storytold/wordcraft/pull/237
- i18n: add Serbian, both scripts (sr, sr-latn) by @Dejan-Port in https://github.com/storytold/wordcraft/pull/250
- Tests: layout and PDF tests no longer depend on the fonts installed on the machine; PDF text of field results keeps ligature letters by @vangel76 in https://github.com/storytold/wordcraft/pull/261
- File › Info keeps the Title, Author and other properties you type, and browser saves update the revision and modified stamps (#260, #262) by @vangel76 in https://github.com/storytold/wordcraft/pull/268
- Show/Hide ¶: paragraph mark no longer overlaps text in mixed-direction paragraphs by @vangel76 in https://github.com/storytold/wordcraft/pull/278
- Progress docs: re-measure against Word 16.113.4 (alpha, ~60% ready for real work) to the craftrules standard by @echelon in https://github.com/storytold/wordcraft/pull/277
- i18n: translate the remaining untranslated interface strings; test the font fallback cache with legacy names by @echelon in https://github.com/storytold/wordcraft/pull/276
- Desktop: File › Print opens the document in the system PDF viewer for printing by @vangel76 in https://github.com/storytold/wordcraft/pull/286
- Tables: autofit by content, and floating tables inside cells by @naxvog in https://github.com/storytold/wordcraft/pull/291
- Pictures: draw WMF and EMF pictures instead of a grey box by @naxvog in https://github.com/storytold/wordcraft/pull/293
- Tests: the floating header text box test passes on FreeBSD (no font-dependent numbers) by @vangel76 in https://github.com/storytold/wordcraft/pull/284
- Gridlines: the document's own grid spacing, and table gridlines on by default (follow-up to #243) by @dkhlapov in https://github.com/storytold/wordcraft/pull/283
- Edit comments right in their balloons, and drag page margins on the ruler by @vangel76 in https://github.com/storytold/wordcraft/pull/289
- Charts and SmartArt: draw them instead of dropping them by @naxvog in https://github.com/storytold/wordcraft/pull/292
- Table sizing: Height/Width boxes, AutoFit to contents and a Table Properties dialog by @vangel76 in https://github.com/storytold/wordcraft/pull/287
- Clipboard pane: the last 24 things you copied or cut, ready to paste again by @vangel76 in https://github.com/storytold/wordcraft/pull/264
- Table styles: format every region with a live preview, delete your own styles, and see new ones first (#146) by @vangel76 in https://github.com/storytold/wordcraft/pull/263
- Manage your styles: list, preview, delete and show or hide them in the gallery (#266) by @vangel76 in https://github.com/storytold/wordcraft/pull/270
- Paste pictures from the clipboard: screenshots, Copy Image and copied picture files (#45) by @vangel76 in https://github.com/storytold/wordcraft/pull/272
- Paragraph dialog gets an Asian Typography tab; layout honours kinsoku and mid-word Latin wrapping (#269) by @vangel76 in https://github.com/storytold/wordcraft/pull/271
- Group and ungroup pictures, shapes and text boxes (Layout › Arrange › Group) by @vangel76 in https://github.com/storytold/wordcraft/pull/267
- Shape Effects: shadow, glow and soft edges for shapes by @vangel76 in https://github.com/storytold/wordcraft/pull/280
- UI: draw icons instead of symbols the interface fonts lack (✕ ✎ 💬 ➕ 📂 ⋯ ➢) by @dkhlapov in https://github.com/storytold/wordcraft/pull/305
- AutoSave switch is greyed out, with the reason, when AutoSave can't save by @vangel76 in https://github.com/storytold/wordcraft/pull/302
- UI: hover and pressed feedback for the drawn icon buttons (follow-up to #305) by @dkhlapov in https://github.com/storytold/wordcraft/pull/314
- Re-land #264, #263, #270, #271, #267, #280 (their squash merges came out empty) by @echelon in https://github.com/storytold/wordcraft/pull/323
- Open and save password-protected Word documents (#55) by @vangel76 in https://github.com/storytold/wordcraft/pull/281
- Windows: smooth again on older graphics without a DirectX 12 driver by @vangel76 in https://github.com/storytold/wordcraft/pull/325
- System interface theme follows OS changes again, and Dark page no longer darkens the interface by @vangel76 in https://github.com/storytold/wordcraft/pull/317
- Long display equations wrap across lines like Word by @vangel76 in https://github.com/storytold/wordcraft/pull/329
- Tests: equation-wrap test passes without a math font (FreeBSD CI red) by @echelon in https://github.com/storytold/wordcraft/pull/348
- Rotate and flip pictures, shapes and text boxes freely by @vangel76 in https://github.com/storytold/wordcraft/pull/340
- Define New Multilevel List and Track Changes Options dialogs by @vangel76 in https://github.com/storytold/wordcraft/pull/342
- Equation gallery: group multi-letter operands in two templates (Yields, n×n Matrix) by @dkhlapov in https://github.com/storytold/wordcraft/pull/347
- Import: hostile Markdown and HTML no longer take quadratic time by @g1obalworlds in https://github.com/storytold/wordcraft/pull/355
- Long footnotes continue onto the next page by @vangel76 in https://github.com/storytold/wordcraft/pull/357
- Charts, SmartArt and OLE objects are no longer lost when you save a .docx by @vangel76 in https://github.com/storytold/wordcraft/pull/333
- Columns, Symbol and Field dialogs by @vangel76 in https://github.com/storytold/wordcraft/pull/335
- Tabs and Borders and Shading dialogs by @vangel76 in https://github.com/storytold/wordcraft/pull/327
- Bump quick-xml to 0.41: the namespace-declaration DoS was reachable (RUSTSEC-2026-0195) by @pkibiego in https://github.com/storytold/wordcraft/pull/363
- Draw tables and split or merge cells with a pen and eraser by @vangel76 in https://github.com/storytold/wordcraft/pull/308
- Draw tab: draw with pen, pencil and highlighter, erase ink, and hide ink by @vangel76 in https://github.com/storytold/wordcraft/pull/315
- i18n: send interface text that skipped translation through the catalog by @dkhlapov in https://github.com/storytold/wordcraft/pull/313
- Add Estonian interface translation by @henno in https://github.com/storytold/wordcraft/pull/294
- Type in the font box to find a font by @vangel76 in https://github.com/storytold/wordcraft/pull/367
- Rotated or flipped OLE objects keep their turn when saved to .docx by @vangel76 in https://github.com/storytold/wordcraft/pull/370
- Layout: a drop cap in a font over 1000 pt no longer panics by @g1obalworlds in https://github.com/storytold/wordcraft/pull/389
- Layout and render: extreme page numbers and wave borders no longer overflow or run away by @g1obalworlds in https://github.com/storytold/wordcraft/pull/393
- Tables: Delete Columns never leaves a table with no rows by @g1obalworlds in https://github.com/storytold/wordcraft/pull/397
- Track Changes: formatting revisions (w:rPrChange/w:pPrChange) (#41) by @vangel76 in https://github.com/storytold/wordcraft/pull/399
- Bump version to 0.5.0; add Linux riscv64 release build by @echelon in https://github.com/storytold/wordcraft/pull/394
- @gledguri made their first contribution in https://github.com/storytold/wordcraft/pull/194
- @cyfung1031 made their first contribution in https://github.com/storytold/wordcraft/pull/166
- @LloydNicholson made their first contribution in https://github.com/storytold/wordcraft/pull/177
- @naxvog made their first contribution in https://github.com/storytold/wordcraft/pull/132
- @edurbs made their first contribution in https://github.com/storytold/wordcraft/pull/128
- @g1obalworlds made their first contribution in https://github.com/storytold/wordcraft/pull/180
- @Geljic made their first contribution in https://github.com/storytold/wordcraft/pull/179
- @gittonyp made their first contribution in https://github.com/storytold/wordcraft/pull/150
- @StrajnarFilip made their first contribution in https://github.com/storytold/wordcraft/pull/114
- @lpgn made their first contribution in https://github.com/storytold/wordcraft/pull/124
- @GeronimoCastano made their first contribution in https://github.com/storytold/wordcraft/pull/129
- @999sian made their first contribution in https://github.com/storytold/wordcraft/pull/60
- @dmatviichuk made their first contribution in https://github.com/storytold/wordcraft/pull/91
- @ssamstudio made their first contribution in https://github.com/storytold/wordcraft/pull/110
- @chiranjeevi-max made their first contribution in https://github.com/storytold/wordcraft/pull/43
- @WeebLabs made their first contribution in https://github.com/storytold/wordcraft/pull/46
- @saeedemperor made their first contribution in https://github.com/storytold/wordcraft/pull/207
- @itrycodinganditsbad made their first contribution in https://github.com/storytold/wordcraft/pull/214
- @vangel76 made their first contribution in https://github.com/storytold/wordcraft/pull/221
- @Dejan-Port made their first contribution in https://github.com/storytold/wordcraft/pull/209
- @pkibiego made their first contribution in https://github.com/storytold/wordcraft/pull/363
- @henno made their first contribution in https://github.com/storytold/wordcraft/pull/294
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.4.0...v0.5.0
WordCraft v0.4.0
- Apply heading/Title clears a paragraph's list numbering by @justinjohn0306 in https://github.com/storytold/wordcraft/pull/13
- Layout: first-page header test no longer depends on installed fonts by @dkhlapov in https://github.com/storytold/wordcraft/pull/65
- Fix font dropdown hang caused by nested egui context lock by @DWAA1660 in https://github.com/storytold/wordcraft/pull/9
- Ctrl+-, Ctrl+= and Ctrl+0 no longer zoom the whole window (#14) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/36
- Ruler: dragging an indent marker is one undo step (#57) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/62
- Windows MSI: give WordCraft its own UpgradeCode (fixes #4) by @DWAA1660 in https://github.com/storytold/wordcraft/pull/10
- M6: footnotes no longer cite themselves in saved .docx files by @goldsbd in https://github.com/storytold/wordcraft/pull/53
- draw Symbol and Wingdings bullets as Unicode when the font is missing (#29) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/37
- Default Windows startup to DirectX 12 by @DWAA1660 in https://github.com/storytold/wordcraft/pull/50
- Options: remember the user name between runs (#32) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/35
- M6: TOC page numbers, and save the TOC as a field Word can update by @goldsbd in https://github.com/storytold/wordcraft/pull/52
- Desktop: remember the window size and position (#23) by @MarekSpodBiedry in https://github.com/storytold/wordcraft/pull/38
- macOS DMG: branded window background and icon layout by @XusBadia in https://github.com/storytold/wordcraft/pull/21
- Desktop: write log records to standard error and a rotating log file by @switch87 in https://github.com/storytold/wordcraft/pull/17
- Interface languages: follow the system language, or pick one (#8) by @DWAA1660 in https://github.com/storytold/wordcraft/pull/12
- @justinjohn0306 made their first contribution in https://github.com/storytold/wordcraft/pull/13
- @dkhlapov made their first contribution in https://github.com/storytold/wordcraft/pull/65
- @DWAA1660 made their first contribution in https://github.com/storytold/wordcraft/pull/9
- @MarekSpodBiedry made their first contribution in https://github.com/storytold/wordcraft/pull/36
- @goldsbd made their first contribution in https://github.com/storytold/wordcraft/pull/53
- @XusBadia made their first contribution in https://github.com/storytold/wordcraft/pull/21
- @switch87 made their first contribution in https://github.com/storytold/wordcraft/pull/17
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.3.0...v0.4.0
WordCraft v0.3.0
- About: contributor and model credits compiled in (grab bag + table, self-submitted names) by @echelon in https://github.com/storytold/wordcraft/pull/6
- Release: Flatpak x86_64 + aarch64, AppImage zsync auto-update, README Downloads by @echelon in https://github.com/storytold/wordcraft/pull/22
- README Downloads: where to get it, then builds (Windows first) by @echelon in https://github.com/storytold/wordcraft/pull/26
Full Changelog: https://github.com/storytold/wordcraft/compare/v0.1.0...v0.3.0